CDN Nedir, Nasıl Çalışır?

Yayın tarihi:

12 dk okuma

Acar Diveroli
Yazar: Acar Diveroli
Ortada ORIGIN sunucusu, dört uç karoya kesik hatlarla bağlı; CACHE HIT etiketli mavi EDGE IST bir dizüstüne cevap veriyor

Başka bir kıtada bulunan bir internet mağazasını açıyorsunuz ve ürün fotoğrafları yerli bir site kadar hızlı yükleniyor. Ya da bir sayfanın yanıt başlıklarına (sunucunun sayfayla birlikte gönderdiği teknik bilgi satırlarına) bakıyorsunuz ve cf-cache-status: HIT gibi bir satırla ya da cdn. ile başlayan bir betik adresiyle karşılaşıyorsunuz. Bunların hepsinde sizinle site arasında bir içerik dağıtım ağı, kısaca CDN durur.

Bu yazıda CDN'in sizi yakındaki bir sunucuya nasıl yönlendirdiğini, neyi neden önbelleğe aldığını, bir sitenin CDN kullanıp kullanmadığını nasıl anlayacağınızı ve aynı sayfanın başka bir ülkeden neden farklı göründüğünü anlatıyoruz.

CDN nedir?

CDN, bir web sitesinin içeriğini site adına ve her ziyaretçiye yakın bir noktadan sunan, birçok konuma dağılmış bir sunucu ağıdır. IETF'in içerik ağları için hazırladığı ilk terim sözlüklerinden RFC 3466, kısaltmayı "Content Delivery Network or Content Distribution Network" diye açar; iki ad da hâlâ kullanılır.

Bu konuda üç terim sık geçer. Asıl sunucu (origin), sitenin gerçek dosyalarının ve uygulamasının bulunduğu kendi sunucusudur. Uç sunucu (edge server), CDN'in ziyaretçilere doğrudan cevap veren makinesidir; bir grup uç sunucunun bulunduğu veri merkezine PoP (point of presence) denir. Önbellek (cache) ise uç sunucunun asıl sunucuya sormadan cevap verebilmek için sakladığı kopyalardır.

Bilinen CDN'ler arasında Cloudflare, Akamai, Amazon CloudFront ve Fastly sayılabilir. Özellikleri ve fiyatları farklıdır ama hepsi aynı ilkeyle çalışır.

CDN siteleri neden hızlandırır?

CDN, sayfaları esas olarak her isteğin kat ettiği mesafeyi kısaltarak hızlandırır. Sayfanın ilk baytı gelmeden önce tarayıcınız birkaç gidiş-dönüş yapar; her birinde bir mesaj gönderir ve cevabını bekler: DNS sorgusu, TCP bağlantısı, HTTPS için TLS el sıkışması ve isteğin kendisi.

Sunucu başka bir kıtadaysa bu gidiş-dönüşlerin her biri uzun sürer; uç sunucu kendi ülkenizdeyse her biri kısalır ve onlarca görsel ile betik içeren bir sayfada kazanç katlanır. Bu bekleme süresine gecikme (latency) denir; nasıl ölçüldüğünü Gecikme (Latency) Nedir? yazısında anlattık.

Önbellekten karşılanan bir istek (cache hit) asıl sunucuya hiç ulaşmaz. Böylece asıl sunucunun işi azalır ve gerçekten ona gelmesi gereken isteklere daha çabuk cevap verir.

CDN adım adım nasıl çalışır?

CDN sitenin adresini üstlenir, her ziyaretçiyi yakındaki bir uç sunucuya gönderir ve mümkün olan her durumda önbelleğinden cevap verir.

  1. Site sahibi CDN'i sitenin önüne koyar. Alan adının DNS kayıtları, www.example.com gibi bir ad asıl sunucuyu değil CDN'i gösterecek şekilde değiştirilir.
  2. İsteğiniz yakındaki bir uç sunucuya yönlendirilir. Bunun için DNS ile yönlendirme, anycast ya da ikisi birlikte kullanılır (ayrıntısı bir sonraki bölümde).
  3. Uç sunucu HTTPS bağlantısını üstlenir. Sitenin alan adı için bir sertifikası vardır ve tarayıcınızla TLS el sıkışmasını o tamamlar. CDN ile asıl sunucu arasında ikinci, ayrı bir bağlantı kurulur.
  4. Saklanmış bir kopya arar. Arama, önbellek anahtarıyla (cache key) yapılır: dosyanın adresi, bazen dil ya da ülke gibi bilgilerle birlikte.
  5. Cache hit olursa uç sunucu hemen cevap verir. Kopya hâlâ taze olduğu için asıl sunucuya hiç gidilmez.
  6. Cache miss olursa uç sunucu asıl sunucuya sorar. Dosyayı geldikçe size iletir ve asıl sunucunun başlıkları izin veriyorsa bir sonraki ziyaretçi için bir kopyasını saklar; Amazon bu sırayı How CloudFront delivers content sayfasında adım adım anlatır.
  7. Kopya bayatlayınca uç sunucu asıl sunucuyla kontrol eder. Dosyanın değişip değişmediğini sorar; dosya değişmemişse yeniden indirilmeden sunulmaya devam eder.

CDN size hangi sunucunun cevap vereceğini nasıl seçer?

CDN, size cevap verecek uç sunucuyu ya kendi DNS yanıtıyla ya da internet yönlendirmesine dayanan anycast yöntemiyle seçer.

DNS ile yönlendirmede CDN'in DNS sunucusu, sizin için seçilmiş bir uç noktanın adresini döndürür; bu genellikle sorgunuzun geldiği yere gecikmesi en düşük olan noktadır. Aynı adı farklı ülkelerde sorgulayan kişiler bu yüzden farklı IP adresleri alır.

Anycast'te CDN aynı IP adreslerini birçok veri merkezinden aynı anda duyurur ve internetin yönlendirmesi paketlerinizi bunlardan birine ulaştırır. IETF'in anycast rehberi RFC 4786'ya göre her isteği hangi düğümün karşılayacağına yönlendirme sistemi karar verir. Bu genellikle yakın bir konumdur ama haritadaki en yakın nokta olmayabilir, çünkü Cloudflare'in belgelerinin belirttiği gibi kararı internet sağlayıcınızın yönlendirmesi verir.

CDN neyi önbelleğe alır, neyi almaz?

CDN, her ziyaretçi için aynı olan içeriği önbelleğe alır; kişiye özel ya da sürekli değişen içeriği asıl sunucuya bırakır. Görseller, stil dosyaları, betikler, yazı tipleri, indirme dosyaları ve video parçaları önbelleğe alınır. Hesap sayfası, sepet ya da ödeme adımı ise asıl sunucuya gider, çünkü ortak bir kopya bir kişinin bilgilerini bir sonraki ziyaretçiye gösterirdi.

Kuralları çoğunlukla asıl sunucu, HTTP önbellekleme standardı RFC 9111'de tanımlanan Cache-Control yanıt başlığıyla belirler. CDN paylaşılan bir önbellektir, yani yanıtları birçok kullanıcı için saklar; tarayıcınızın önbelleği ise yalnız size aittir. Bazı yönergeler bu ikisine farklı davranır:

YönergeCDN'e ne söyler?
max-age=3600Kopya 3.600 saniye (bir saat) taze kalır
s-maxage=86400Paylaşılan önbellekte bir gün taze kalır; orada max-age değerinin yerine geçer
privateSaklanmaz: yanıt yalnız bir kullanıcıya aittir
no-storeTarayıcı dâhil hiçbir yerde saklanmaz
no-cacheSaklanabilir ama her kullanımdan önce asıl sunucuya sorulur

CDN'ler bunun üstüne kendi varsayılan ayarlarını ekler: örneğin Cloudflare, site sahibi bir kural eklemedikçe HTML ve JSON yanıtlarını önbelleğe almaz.

Statik dosyaların, yani herkese aynı giden görsel, betik ve stil dosyalarının adına genellikle bir sürüm numarası ya da özet (hash) eklenir, örneğin app.v42.js. Böylece dosya aylarca önbellekte kalabilir, yeni sürüm ise yeni bir adla yayımlanır; MDN'in HTTP önbellekleme rehberi de bu yöntemi önerir. Bir dosyanın aynı adla değişmesi gerekiyorsa site sahibi önbelleği temizler (purge), yani panelden ya da API üzerinden CDN'e saklanan kopyayı silmesini söyler.

CDN'in faydaları nelerdir?

Başlıca faydaları, uzaktaki ziyaretçiler için daha hızlı sayfalar, asıl sunucu için daha az yük ve trafik saldırılarına karşı daha fazla dayanıklılıktır.

FaydaCDN bunu nasıl sağlar?Kim fark eder?
Daha düşük gecikmeZiyaretçiye yakın uç sunucudan cevap verirAsıl sunucudan uzaktaki ziyaretçiler
Asıl sunucunun yükünü almaCache hit istekleri asıl sunucuya ulaşmazSitenin sunucuları
DDoS saldırısını karşılamaSaldırı trafiği birçok konuma dağılırSite erişilebilir kalır
Uçta TLSHTTPS el sıkışması ziyaretçiye yakın yerde biterZiyaretçiler ve site yöneticileri

Dağıtık hizmet engelleme (DDoS) saldırısı, bir siteyi aynı anda birçok makineden gelen trafikle boğmaya çalışır; anycast kullanan bir CDN'in arkasında bu trafik tek bir sunucuya değil, birçok veri merkezine dağılır. Birçok CDN ayrıca bir web uygulama güvenlik duvarı (WAF) çalıştırır: bilinen saldırı kalıplarını asıl sunucuya ulaşmadan durduran bir filtre.

Bu düzenin bedelleri de vardır. CDN, HTTPS bağlantısını kendisi sonlandırdığı için taşıdığı trafiği okuyabilir; büyük bir CDN kesinti yaşadığında da arkasındaki birçok site aynı anda erişilemez olur.

CDN bir reverse proxy midir?

Evet. CDN, küresel ölçekte çalışan bir reverse proxy'dir: bir web sitesinin önünde durup ziyaretçilere site adına cevap veren sunucu. Forward proxy ise bunun tersidir; kullanıcının önünde durur ve istekleri onun adına gönderir. İkisini Forward Proxy ve Reverse Proxy Arasındaki Fark yazısında yan yana karşılaştırdık.

CDN sitenin görünen yüzü olduğu için sizin değil, asıl sunucunun IP adresini gizler. Sizin adresinizi ise X-Forwarded-For ya da Cloudflare'in CF-Connecting-IP gibi başlıklarla asıl sunucuya iletir.

Bir sitenin CDN kullandığı nasıl anlaşılır?

En hızlı yol yanıt başlıklarına bakmaktır; çoğu CDN buraya kendi adını ve önbellek sonucunu bildiren satırlar ekler. Windows'ta Komut İstemi'ni açın ve curl -I komutunu sitenin adresiyle birlikte çalıştırın (PowerShell'de curl.exe -I yazın, çünkü orada yalın curl başka bir komutu çalıştırır). -I seçeneği yalnız başlıkları ister. Test bilgisayarımızın example.com'dan aldığı cevap, kısaltılmış hâliyle şöyle:

bash
HTTP/1.1 200 OK
Date: Sun, 15 Nov 2026 13:46:55 GMT
Content-Type: text/html; charset=utf-8
Server: cloudflare
last-modified: Thu, 12 Nov 2026 21:56:22 GMT
Age: 14266
cf-cache-status: HIT
CF-RAY: a5aeb470a9822346-IST
  • Server: cloudflare sitenin önündeki CDN'in adını verir.
  • cf-cache-status: HIT uç sunucunun önbelleğinden cevap verdiğini gösterir. Cloudflare'in önbellek durumları listesinde MISS (asıl sunucudan alındı) ve DYNAMIC (önbelleğe uygun değil) gibi başka değerler de vardır.
  • Age: 14266 kopyanın 14.266 saniye, yani dört saate yakın bir süre önce asıl sunucudan alındığını ya da orada doğrulandığını gösterir. Aynı komut birkaç dakika sonra Age: 41 gösterdi; bu kez kopya 41 saniye önce yenilenmişti.
  • CF-RAY isteği işleyen veri merkezini gösteren üç harfli bir havalimanı koduyla biter; test bilgisayarımıza İstanbul'daki (IST) veri merkezi cevap verdi.

Diğer CDN'ler başka adlar kullanır: HIT ya da MISS değeri taşıyan X-Cache, X-Served-By ya da Via gibi. RFC 9211 de bu iş için standart bir Cache-Status başlığı tanımlar.

Komut satırıyla uğraşmak istemiyorsanız tarayıcıya bakın. Chrome'da F12 tuşuyla geliştirici araçlarını (DevTools) açın, Network (ağ) panelini seçin ve sayfayı yenileyin. Name (ad) sütunundan bir dosyaya tıklayın, Headers (başlıklar) sekmesini açın ve Response Headers (yanıt başlıkları) bölümünü okuyun.

CDN hata sayfası ne anlama gelir?

CDN hata sayfası genellikle isteğinizin CDN'e ulaştığını ama CDN'in asıl sunucudan düzgün bir cevap alamadığını gösterir. Tarayıcınızın bağlandığı sunucu CDN olduğu için karşınıza CDN'in kendi sayfası çıkar. En sık görülen örnek Cloudflare'in 520-526 arası hata sayfalarıdır; her kodu Cloudflare 520, 521, 522 ve 524 Hataları Nedir? yazısında anlattık.

Güncellemeden sonra hâlâ eski sürümü gösteren bir site ise hata değil, önbellek belirtisidir: saklanan kopyanın süresi dolmamış ya da kopya henüz temizlenmemiştir.

CDN'lerle nerelerde karşılaşırsınız?

  • Haber siteleri, mağazalar ve bloglar: görseller ve stil dosyaları, çoğu zaman alan adının önüne cdn. ya da static. eklenmiş bir adresten gelir.
  • Yazılım ve uygulama güncellemeleri: çok sayıda cihazın aynı anda indirdiği büyük dosyalar.
  • Çevrim içi video: oynatıcılar videoyu kısa parçalar hâlinde indirir; uç sunucu bu parçaları diğer dosyalar gibi önbelleğe alır.
  • Web sayfalarındaki "CDN linkleri": bir kütüphaneyi ya da yazı tipini sitenin kendi sunucusu yerine herkese açık bir CDN'den yükleyen <script> ya da <link> etiketi.

CDN neden farklı ülkelerde farklı içerik gösterir?

CDN farklı ülkelerde farklı içerik gösterir, çünkü uç sunucu her ziyaretçinin konumunu IP adresinden tahmin eder ve site bu bilgiyle dili, para birimini, fiyatları ya da reklamları seçer. Örneğin Amazon CloudFront, IP adresinden belirlediği ülkeyi CloudFront-Viewer-Country başlığıyla asıl sunucuya iletebilir; Cloudflare de benzer bir CF-IPCountry başlığı gönderir. Site ülkeyi önbellek anahtarına ekleyebilir; böylece her ülke için önbellekte ayrı bir kopya tutulur.

Bu, başka bir ülkedeki müşterilerin ne gördüğünü kontrol eden herkes için önemlidir: Almanya'ya yönelik sayfada fiyatların euro ile göründüğünü doğrulayan bir ekip ya da bir kampanyayı başka bir şehirde kontrol eden bir pazarlamacı. Tarayıcının dilini değiştirmek aynı sonucu vermez, çünkü CDN bağlantının IP adresine bakar. İsteğin o ülkeden gelmesi gerekir; lokalizasyon proxy sayfamızda anlattığımız iş akışı da tam olarak budur.

Burada iki tür proxy buluşur. CDN, site için çalışan bir reverse proxy'dir; Residential Proxy ise sizin için çalışan bir forward proxy'dir. İsteğinizi seçtiğiniz ülke ve şehirdeki bir ev bağlantısından çıkarır, bu yüzden CDN onu oradaki yerel bir ziyaretçinin isteği gibi görür. Bunu sorumlusu olduğunuz sayfaları ve kampanyaları kontrol etmek için kullanın, bir sitenin bölgesel kısıtlamalarını aşmak için değil.

Sık yapılan hatalar

  • Kişisel bilgi içeren sayfaları önbelleğe almak. private ya da no-store olmadan gönderilen bir hesap sayfası bir sonraki ziyaretçiye gösterilebilir.
  • Adı değişmeyen dosyalara uzun önbellek süresi vermek. Ziyaretçiler süre dolana kadar eski dosyayı alır; dosya adına sürüm ekleyin ya da önbelleği temizleyin.
  • Asıl sunucuyu herkese açık bırakmak. IP adresini bulan herkes CDN'i atlayabilir; asıl sunucuya yalnız CDN'in adreslerinden erişilebilsin.
  • CDN'in ziyaretçiyi gizlemesini beklemek. CDN asıl sunucuyu gizler; site sizin IP adresinizi yine de alır.
  • Bölgesel içeriği yalnız ofisten test etmek. CDN tek bir ülke görür ve o ülkenin kopyasını sunar.

Karar rehberi

DurumunuzNe yapmalı?
Ziyaretçiler sunucunuza yakın, sayfalar hafifCDN şart değil; önce ölçün
Ziyaretçiler birden fazla kıtadaSitenin önüne bir CDN koyun
Çok sayıda görsel, video ya da indirme dosyasıStatik dosyaları sürümlü adlarla aylarca önbellekte tutun
Kullanıcıya göre değişen sayfalarOnları private olarak işaretleyin; statik kısımları önbelleğe alın
Ziyaretçiler hâlâ eski dosyayı görüyorÖnbelleği temizleyin ya da dosyanın adını değiştirin
Başka bir ülkedeki ziyaretçinin ne gördüğünü görmekİsteği o ülkedeki bir IP adresinden gönderin

Sıkça sorulan sorular

CDN'in açılımı nedir?

CDN, content delivery network (içerik dağıtım ağı) sözcüklerinin kısaltmasıdır. Content distribution network biçimine de rastlarsınız; RFC 3466 ikisini de sayar ve ikisi de aynı uç sunucu sistemini anlatır.

CDN ile hosting aynı şey mi?

Hayır. Hosting, asıl sunucuyu, yani sitenin gerçek dosyalarını, veritabanını ve kodunu barındıran sunucuyu çalıştırır; CDN onun önünde durur ve kopyaları ziyaretçilere yakın tutar. Bazı firmalar ikisini birlikte sattığı için ikisi kolayca karıştırılır.

CDN benim IP adresimi gizler mi?

Hayır. CDN, asıl sunucunun IP adresini ziyaretçilerden gizler; sizin adresinizi siteden gizlemez. Uç sunucu IP adresinizi X-Forwarded-For gibi başlıklarla asıl sunucuya iletir ve ülkenizi tahmin etmek için de kullanır. İstekleri başka bir IP adresinden göndermek için forward proxy ya da VPN gerekir.

Cloudflare bir CDN mi?

Evet. Cloudflare bir CDN işletir; DDoS koruması ve web uygulama güvenlik duvarı (WAF) dâhil DNS ve güvenlik hizmetleri de sunar. Hata ve doğrulama sayfalarında adının geçmesi bu yüzdendir: tarayıcınızın bağlandığı reverse proxy odur.

CDN ile önbellek (cache) arasındaki fark nedir?

Önbellek, aynı şeyi iki kez getirmemek için saklanan kopyaların genel adıdır; tarayıcınızın da bir önbelleği vardır. CDN ise birçok konuma dağılmış paylaşılan önbelleklerden oluşan bir ağdır; her ziyaretçiyi bunlardan birine yönlendiren sistemi ve site sahibinin kural koyup kopyaları temizlemesini sağlayan araçları da içerir.

Küçük bir web sitesi için CDN gerekir mi?

Her zaman değil. Ziyaretçilerin çoğu sunucunuza yakınsa ve sayfalar hafifse kazanç küçük olabilir; ziyaretçiler farklı ülkelere dağılmışsa ya da site çok sayıda görsel veya büyük dosya sunuyorsa CDN genellikle işe yarar. Ziyaretçilerinizin bulunduğu yerden ölçüm yapın ve hosting hizmetinizin zaten bir CDN seçeneği sunup sunmadığına bakın.

Özet

CDN, bir web sitesinin kopyalarını ziyaretçilere yakın tutan ve sitenin kendi sunucusu, yani asıl sunucu adına cevap veren bir uç sunucu ağıdır. DNS ile yönlendirme ya da anycast sizi yakındaki bir uç sunucuya gönderir; uç sunucu, sitenin Cache-Control kurallarına uyarak cache hit olduğunda önbellekten cevap verir, cache miss olduğunda asıl sunucuya sorar. cf-cache-status ve Age gibi başlıklar bu işleyişi gösterir. CDN içeriği ülkeye göre seçmek için IP adresinize baktığından, başka bir pazarın sayfalarını kontrol etmek için isteği o pazardan göndermeniz gerekir. Bunun için gereken konum seçeneklerini proxy ürünleri sayfamızda bulabilirsiniz.

ChatGPT'ye sorClaude'a sor