Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / WEB-09.04

CDN, edge ve origin ilişkisi

Duru edge’den bir body aldığında origin her zaman çalışmış olmaz. Public MISS/HIT ve personal bypass ile iki hop’un sahipliğini ayır.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

Public MISS

  1. Request hazırlandı

    Duru representation için GET hazırlar; edge ve origin henüz bu request’i almamıştır.

    Browser / Duru
    GET /catalog ready
    Edge / public cache
    Cache: empty
    Origin / Atlas
    Request absent
  2. Edge request’i aldı

    Edge request’i alır; body seçimi ve shared storage kararı henüz gerçekleşmemiştir.

    Browser / Duru
    Waiting edge
    Edge / public cache
    GET /catalog received; cache empty
    Origin / Atlas
    Request absent
  3. Outbound request hazır

    Edge local policy ile MISS seçer ve outbound GET hazırlar; bu lookup bir network mesajı değildir.

    Browser / Duru
    Waiting edge
    Edge / public cache
    MISS; outbound GET ready
    Origin / Atlas
    Request absent
  4. Origin request’i aldı

    Origin edge’in request’ini alır; Browser bu sırada hâlâ edge response’ını bekler.

    Browser / Duru
    Waiting edge
    Edge / public cache
    MISS; waiting origin
    Origin / Atlas
    GET /catalog received
  5. Origin response hazır

    Origin örnekteki body ve cache metadata’sını local olarak hazırlar; body henüz edge’e ulaşmamıştır.

    Browser / Duru
    Waiting edge
    Edge / public cache
    MISS; waiting origin
    Origin / Atlas
    200 ready; Atlas catalog; public, max-age=60
  6. Origin response ulaştı

    Origin’in 200 body ve metadata’sı edge’e ulaşır; Browser’ın gözlenen state’i henüz değişmez.

    Browser / Duru
    Waiting edge
    Edge / public cache
    200 received; Atlas catalog; storage pending
    Origin / Atlas
    200 ready; Atlas catalog; public, max-age=60
  7. Delivery kararı hazır

    Edge, public storage eligibility kurallarına göre body’yi saklar ve browser için response hazırlar. Browser henüz response’u almamıştır.

    Browser / Duru
    Waiting edge
    Edge / public cache
    200 ready; Atlas catalog; public v1 stored
    Origin / Atlas
    200 ready; Atlas catalog; public, max-age=60
  8. Browser response aldı

    Duru son hop’ta body’yi öğrenir; bu arrival ile önceki origin→edge arrival ayrı exchange sınırlarıdır.

    Browser / Duru
    200 received; Atlas catalog
    Edge / public cache
    200 ready; Atlas catalog; public v1 stored
    Origin / Atlas
    200 ready; Atlas catalog; public, max-age=60

Public HIT

  1. Public GET hazır

    Duru public catalog GET’ini hazırlar; edge’deki entry’nin revision’ı v1, current age’i 5 olarak verilmiştir.

    Browser / Duru
    GET /catalog ready
    Edge / public cache
    Public v1; age5; lifetime60
    Origin / Atlas
    Not contacted
  2. Edge request’i aldı

    Edge public GET’i alır; reusable entry seçimi bir sonraki local karar olarak görünür.

    Browser / Duru
    Waiting edge
    Edge / public cache
    GET received; public v1; age5
    Origin / Atlas
    Not contacted
  3. HIT response hazır

    Key eşleşir ve 5 < 60 olduğu için public HIT seçilir. Origin request’i hazırlanmaz; body local entry’den alınır.

    Browser / Duru
    Waiting edge
    Edge / public cache
    HIT; 200 ready; Atlas catalog; Age5
    Origin / Atlas
    Not contacted
  4. Cached body ulaştı

    Duru edge’den public body’yi alır; bu branch origin’in yeni çalışmasını göstermez.

    Browser / Duru
    200 received; Atlas catalog; Age5
    Edge / public cache
    HIT; 200 ready; Atlas catalog; Age5
    Origin / Atlas
    Not contacted
  5. Owner farkını oku

    Browser observation tamamdır; origin actor’unun not contacted kalması kısa delivery yolunun anlamıdır.

    Browser / Duru
    Public body observed
    Edge / public cache
    Public v1 retained
    Origin / Atlas
    Not contacted

Personal bypass

  1. Request hazırlandı

    Duru representation için GET hazırlar; edge ve origin henüz bu request’i almamıştır.

    Browser / Duru
    GET /notes/mine ready
    Edge / public cache
    Cache: public v1 retained
    Origin / Atlas
    Request absent
  2. Edge request’i aldı

    Edge request’i alır; body seçimi ve shared storage kararı henüz gerçekleşmemiştir.

    Browser / Duru
    Waiting edge
    Edge / public cache
    GET /notes/mine received; cache public v1 retained
    Origin / Atlas
    Request absent
  3. Outbound request hazır

    Edge local policy ile bypass seçer ve outbound GET hazırlar; bu lookup bir network mesajı değildir.

    Browser / Duru
    Waiting edge
    Edge / public cache
    bypass; outbound GET ready
    Origin / Atlas
    Request absent
  4. Origin request’i aldı

    Origin edge’in request’ini alır; Browser bu sırada hâlâ edge response’ını bekler.

    Browser / Duru
    Waiting edge
    Edge / public cache
    bypass; waiting origin
    Origin / Atlas
    GET /notes/mine received
  5. Origin response hazır

    Origin örnekteki body ve cache metadata’sını local olarak hazırlar; body henüz edge’e ulaşmamıştır.

    Browser / Duru
    Waiting edge
    Edge / public cache
    bypass; waiting origin
    Origin / Atlas
    200 ready; Duru reading note; no-store
  6. Origin response ulaştı

    Origin’in 200 body ve metadata’sı edge’e ulaşır; Browser’ın gözlenen state’i henüz değişmez.

    Browser / Duru
    Waiting edge
    Edge / public cache
    200 received; Duru reading note; storage pending
    Origin / Atlas
    200 ready; Duru reading note; no-store
  7. Delivery kararı hazır

    Edge no-store nedeniyle personal body’yi saklamaz; public entry korunur ve Browser response hazır olur.

    Browser / Duru
    Waiting edge
    Edge / public cache
    200 ready; Duru reading note; not stored; public v1 retained
    Origin / Atlas
    200 ready; Duru reading note; no-store
  8. Browser response aldı

    Duru son hop’ta body’yi öğrenir; bu arrival ile önceki origin→edge arrival ayrı exchange sınırlarıdır.

    Browser / Duru
    200 received; Duru reading note
    Edge / public cache
    200 ready; Duru reading note; not stored
    Origin / Atlas
    200 ready; Duru reading note; no-store

ROLLER · STATE · VERİ AKIŞI

Duru hangi server’a bağlanıyor?

Atlas kitap kataloğunun public URL’si books.example olsun. Duru bu URL’ye giderken seçilmiş mimaride connection’ın server peer’i Atlas’ın application process’i değil, CDN edge’idir. URL’nin public authority’si değişmeden delivery yolu araya başka bir owner eklemiştir. CDN, içeriğin kullanıcılara dağıtımını birden fazla konumdan sağlayan bir ağdır; çizimdeki tek edge bu ağın tamamı değildir.

Burada “yakın” fiziksel mesafe veya her zaman en hızlı node garantisi değildir. Edge’in nasıl bulunduğu önceki DNS ve routing derslerinin sorusudur. Bu örnek edge seçildikten sonra başlar; bir topology çizimi Anycast kararını, kapasiteyi veya dünya çapındaki cache hit oranını ölçmez. Çizilen kısa yol, gecikmenin ölçülmüş kanıtı değildir.

Origin rolünü makine adıyla karıştırma

Atlas origin bu örnekte public catalog representation’ını üretir. Response’un kaynağı olmak ile her browser request’inde doğrudan socket peer olmak farklı rollerdir. Origin tek process, load balancer arkasındaki uygulamalar veya Atlas’ın başka bir service’i olabilir. Burada v1 revision’ını üreten tek bir mantıksal origin vardır.

Edge, origin’e request gönderirken HTTP client rolündedir; Duru’ya response dönerken HTTP server rolündedir. İki hop’un connection, error ve response arrival sınırları ayrıdır. Browser’ın edge’den bir body alması, aynı anda origin’e bağlandığını veya origin’in o request için çalıştığını kanıtlamaz.

MISS: iki exchange, üç owner

İlk senaryo boş edge cache ile başlar. Duru public /catalog için GET hazırlar. Edge request’i alınca eşleşen response bulamaz; kendi outbound GET’ini hazırlayıp origin’e gönderir. Origin, Atlas catalog body’sini ve cache metadata’sını hazırlar. Hazırlık adımları local işlemdir; wire yalnız message karşı aktöre ulaştığında gösterilir.

Origin response’u edge’e ulaştığında Duru henüz sonucu öğrenmez. Edge, örnekte verilen storage eligibility kurallarına göre public representation’ı saklar ve Duru için response hazırlar. Son edge→browser aktarımıyla body Duru’ya ulaşır. Aynı body iki hop’ta taşınsa da bunlar tek bir uçtan uca socket alışverişi değildir.

HIT: origin’in sessiz kalması anlamlıdır

İkinci senaryo, ilgili key için yeniden kullanılabilir public v1 entry ile başlar. Edge response’u local entry’den hazırlar; origin’e yeni request göndermez. Origin’in “not contacted” kalması, response’un edge’deki kopyadan geldiğini gösterir. Browser’ın gördüğü body bu senaryoda origin’in yeniden çalışmasının sonucu değildir.

Örnekte current_age = 5 ve freshness_lifetime = 60 verilmiştir. 5 < 60 olduğu için entry fresh’tir. Age, origin timestamp’i veya uygulama verisinin iş açısından doğruluğuna dair garanti değildir. Entry seçimi, storage eligibility ve freshness ayrı kararlardır. current_age’ın nasıl hesaplandığı önceki cache dersinde açıklanır.

Personal response’ı public entry yapma

Üçüncü senaryo Duru’nun /notes/mine representation’ını kullanır. Bu route shared cache’i baştan bypass eder; origin response’u da no-store taşır. Edge response’u iletir ama public cache’e yazmaz. Duru/Atlas context’ine izin verilmiş olması örneğin başlangıç koşuludur; burada login veya permission enforcement çalıştırılmaz.

Bu konservatif tasarım, bütün authenticated response’ların HTTP tarafından asla cache edilemeyeceği iddiası değildir. Authorization taşıyan request, cookie tabanlı session ve uygulamaya özel identity aynı mekanizma değildir. Bu Atlas örneğinde ihtiyaç public catalog reuse ile sınırlı olduğu için personal route shared storage’a hiç girmiyor.

Her TLS hop’u ayrı güven sınırıdır

TLS-terminating edge seçilmişse Browser↔edge ile edge↔origin ayrı güven sınırlarıdır. İlk hop’un güvenli olması ikinci hop’un encryption ve peer verification durumunu tek başına açıklamaz. Cloudflare Full (strict) belgesi, origin certificate verification’ın ayrıca uygulandığı bir vendor örneğidir; bu ders hiçbir Cloudflare setting değiştirmez.

Sahnede HTTP message’ın hangi aktöre ulaştığı izlenir; certificate, TLS record ve gerçek CDN routing gösterilmez. Public MISS/HIT ile personal bypass ayrımı, body’nin nereden geldiğini ve shared store’a girip girmediğini açıklar. Gerçek CDN için bu akışa TLS peer verification, routing ve service configuration gibi ayrı sorumluluklar eklenir.

2. Red · Güven ve etki

Hareket olmadan bütün senaryoları oku

Public HIT

  1. Stored public body kendi metadata’sıyla seçildi

    GET /catalog için body Atlas catalog, allowedAudience public ve Cache-Control public, max-age=60’tır. selectedKey GET /catalog’dur. Bu key yalnız seçilmiş public route’a aittir; genel HTTP cache key parser’ı değildir.

    Route/delivery ledger
    Public catalog / key GET /catalog
    Audience/reuse gate
    Policy bekliyor
    Recipient boundary
    Hüküm yok
  2. Fresh public copy HIT için eligible oldu

    HIT currentAge 5 ve freshnessLifetime 60 verir. Body storage ve reuse koşulları bu public contract’ta sağlanır. Body’nin aynı görünmesi tek başına HIT kanıtı değildir; originContacted kararına da bakılır.

    Route/delivery ledger
    Public catalog / key GET /catalog
    Audience/reuse gate
    Age5 < lifetime60 / public reuse eligible
    Recipient boundary
    Hüküm yok
  3. Başarılı reader response origin health sayılmadı

    originContacted false’tur. Stored catalog’ın teslim edilebilmesi origin’in o an reachable veya healthy olduğunu kanıtlamaz. Edge ve origin ayrı owners’dır; HIT’in normal oluşu origin log’unda event yokluğunu açıklayabilir.

    Route/delivery ledger
    Public catalog / key GET /catalog
    Audience/reuse gate
    Age5 < lifetime60 / public reuse eligible
    Recipient boundary
    Public HIT / current origin health unknown
  4. Personal target farklı route class taşıdı

    GET /notes/mine body Duru reading note ve no-store metadata’sı taşır. Route class bypass-before-lookup’tır. Public catalog’ın cache key’i personal response için kullanılmaz; URL görünümü classification yerine geçmez.

    Route/delivery ledger
    Personal /notes/mine / bypass-before-lookup
    Audience/reuse gate
    Age5 < lifetime60 / public reuse eligible
    Recipient boundary
    Public HIT / current origin health unknown
  5. Personal policy shared lookup’tan önce uygulandı

    Personal branch shared body’yi seçmeden origin policy yoluna gider; cacheKeysAfter yalnız GET /catalog içerir. Authorization allowed olarak verilmiştir, hesaplanmaz. Cache bypass user/object permission’ın yerine geçmez.

    Route/delivery ledger
    Personal /notes/mine / bypass-before-lookup
    Audience/reuse gate
    Personal bypass / cache keys unchanged
    Recipient boundary
    Public HIT / current origin health unknown
  6. Delivery contract tenant isolation claim’i olmadı

    Bu public reuse ve personal bypass contract’ı öğrenme örneğidir. Gerçek CDN, TLS, authenticated user veya bütün route isolation’ı ölçülmez. Classification ile business authority farklı gate’ler olarak tutulur.

    Route/delivery ledger
    Personal /notes/mine / bypass-before-lookup
    Audience/reuse gate
    Personal bypass / cache keys unchanged
    Recipient boundary
    Route delivery scoped / user policy separate

Hop evidence

  1. MISS origin exchange gereksinimiyle seçildi

    Independent sequence’in ilk catalog MISS’i originCalls 0’dan 1’e çıkarır. Origin response’tan sonra cache key eklenir. Bu local ledger’daki counts benchmark veya vendor access-log alanları değildir.

    Route/delivery ledger
    MISS: origin calls0→1 / catalog key added
    Audience/reuse gate
    Policy bekliyor
    Recipient boundary
    Hüküm yok
  2. Stored state origin receipt’ten önce oluşmadı

    Edge ancak response aldıktan ve storage kararı verdikten sonra reusable copy tutabilir. Cache lookup local işlemdir; origin transfer ayrı exchange’dir. Bu review sıralama kuralını inceler, yeni network ölçümü yapmaz.

    Route/delivery ledger
    MISS: origin calls0→1 / catalog key added
    Audience/reuse gate
    Receive response before storage decision
    Recipient boundary
    Hüküm yok
  3. İlk hop sonucu bütün deployment’a genişlemedi

    Public response başarısı DNS, TLS peer veya tüm CDN availability kanıtı değildir. MISS failure da bütün edge ağı outage demek değildir. Gözlenen en küçük hop ve owner kararı ayrı yazılmalıdır.

    Route/delivery ledger
    MISS: origin calls0→1 / catalog key added
    Audience/reuse gate
    Receive response before storage decision
    Recipient boundary
    Selected hop known / deployment availability unknown
  4. HIT ile BYPASS count değişimleri ayrıldı

    İkinci catalog HIT originCalls 1’de kalır. Personal BYPASS 1’den 2’ye çıkar; catalog key korunur. Aynı final status iki request’in aynı intermediate owner’lardan geçtiğini göstermez.

    Route/delivery ledger
    HIT 1→1 / BYPASS 1→2
    Audience/reuse gate
    Receive response before storage decision
    Recipient boundary
    Selected hop known / deployment availability unknown
  5. Connection security her hop için ayrı kanıt istedi

    TLS-terminating deployment’ta browser-edge ve edge-origin peer doğrulamaları ayrı değerlendirilir. Buradaki loopback HTTP native sınırı certificate testine dönüşmez. Origin access restriction veya failover davranışı bu ledger’da yoktur.

    Route/delivery ledger
    HIT 1→1 / BYPASS 1→2
    Audience/reuse gate
    Per-hop TLS verification not measured
    Recipient boundary
    Selected hop known / deployment availability unknown
  6. Control hedefi route contract’ında kaldı

    Kontrol public response classification, origin-call ilişkisi ve personal cache bypass’tır. Purge, failover ve gerçek provider behavior için kendi config ve runtime evidence’ı gerekir. Bu bounded ledger bunları yapılmış saymaz.

    Route/delivery ledger
    HIT 1→1 / BYPASS 1→2
    Audience/reuse gate
    Per-hop TLS verification not measured
    Recipient boundary
    Check classification/calls/bypass; provider scope separate

VARSAYIM · SINIR · KONTROL

Bir body’nin hangi owner’dan geldiğini sor

Bir review’da Duru’nun gördüğü response ile origin access log’unu aynı event sayma. Public HIT branch’inde origin log’u hiç oluşmayabilir; bu normaldir. Edge request, origin request ve Browser observation için ayrı correlation sınırı gerekir. Bu dersin ledger’ındaki originContacted boolean’ı yalnız selected fixture’ın kararıdır; gerçek bir log alanı veya vendor header ismi değildir.

Cache’ten alınan doğru public catalog, personal endpoint için uygun delivery kanıtı olmaz. Görselde HIT görüldü diye bütün route’ların edge’den güvenle sunulabileceğini çıkarma. Representation’ın hedef kitlesi, route class ve reuse koşulları birlikte incelenir; CSS dosyasıyla kullanıcıya ait notun aynı uzantıya veya status’a sahip olması aynı policy’yi gerektirmez.

Başarılı ilk hop bütün zinciri doğrulamaz

Edge public body’yi önceden tutuyorsa başarılı Browser response, origin’in o an healthy veya reachable olduğunu göstermez. Tersine bir MISS failure da bütün CDN ağına dair outage ölçümü değildir. İnceleme sorusunu küçük tut: bu request için hangi hop çalıştı, hangi owner karar verdi, hangi state gözlendi?

Edge’in uygulama sınırına eklenmesi, origin-side authorization veya safe output gereksinimini kaldırmaz. Public cache sınıflandırması ile authenticated business kararını ayrı değerlendir. Bu workbook’ta kişisel veri yerine fixed bir reading note kullanılır; sonuçlardan başka kullanıcıya erişim, bypass veya gerçek ağ keşfi çıkarılmaz.

3. Blue · Güvenli geliştirme ve savunma

Hareket olmadan bütün senaryoları oku

Call sequence

  1. Bağımsız sequence before/after ile işaretlendi

    Örnekte edge adapter’ı cache kararını ve key listesini, origin server’ı ise call sayacını üretir. independentSequence her request öncesi ve sonrası bu iki kaydı eşleştirir: MISS 0→1, HIT 1→1, BYPASS 1→2. HIT sırasında oluşmayan origin request’i için event beklenmez; başka bir trace’te eksik log aynı kararın kanıtı değildir. MISS, HIT ve BYPASS ayrı request observations’dır. Origin counts sırasıyla 0→1, 1→1 ve 1→2’dir. Üç response’un body’sine bakmak yerine her request’in origin-contact scope’u ayrı incelenir.

    Delivery observations
    MISS +1 / HIT +0 / BYPASS +1
    Call/cache comparison
    Policy bekliyor
    Evidence conclusion
    Hüküm yok
  2. HIT correlation current request’e bağlandı

    HIT stored Atlas catalog’ı seçer ve originContacted false verir. Earlier MISS’in origin event’i bu HIT request’inin yeni origin event’i değildir. Correlation request sınırını korumadan counts yanlış yorumlanabilir.

    Delivery observations
    MISS +1 / HIT +0 / BYPASS +1
    Call/cache comparison
    HIT request has no new origin call
    Evidence conclusion
    Hüküm yok
  3. Cache key retention personal body’den ayrıldı

    Personal response Duru reading note 17 UTF-8 byte’tır; catalog 13 byte’tır. BYPASS sonrasında keys yalnız GET /catalog kalır. Body count ile storage membership farklı evidence alanlarıdır.

    Delivery observations
    Catalog13 / personal17 / only catalog stored
    Call/cache comparison
    HIT request has no new origin call
    Evidence conclusion
    Hüküm yok
  4. Normal negative control cache membership’i korudu

    Public MISS key ekler; personal BYPASS eklemez. Bu normal karşılaştırma shared store sınırını gösterir. Authenticated user hesaplanmadığı için successful bypass gerçek tenant enforcement sonucuna çevrilmez.

    Delivery observations
    Catalog13 / personal17 / only catalog stored
    Call/cache comparison
    Public stored / personal not stored
    Evidence conclusion
    Hüküm yok
  5. Native sınırı local policy behavior olarak tutuldu

    Dersin native fixture’ı iki owned plaintext loopback server için seçilmiş reuse/bypass davranışını ölçebilir. Authored scene yeni çalışmış test değildir. CDN routing, DNS, TLS ve purge/failover bundan ayrı evidence ister.

    Delivery observations
    Catalog13 / personal17 / only catalog stored
    Call/cache comparison
    Public stored / personal not stored
    Evidence conclusion
    Selected local policy / CDN runtime unmeasured
  6. Regression source ve body association’ı birlikte kontrol etti

    Decision reason, origin call delta, route class ve cache membership birlikte yeniden kontrol edilir. Equal body tek başına HIT ölçütü değildir. Sensitive note body’sini loglamak yerine bounded metadata ile correlation kurulabilir.

    Delivery observations
    Catalog13 / personal17 / only catalog stored
    Call/cache comparison
    Public stored / personal not stored
    Evidence conclusion
    Recheck decision/call delta/route/cache membership

Origin gap

  1. Absent origin event için iki normal açıklama ayrıldı

    Örnekte edge adapter’ı cache kararını ve key listesini, origin server’ı ise call sayacını üretir. independentSequence her request öncesi ve sonrası bu iki kaydı eşleştirir: MISS 0→1, HIT 1→1, BYPASS 1→2. HIT sırasında oluşmayan origin request’i için event beklenmez; başka bir trace’te eksik log aynı kararın kanıtı değildir. Origin log’da request event’i görünmeyebilir: normal HIT origin’e gitmemiş olabilir veya log coverage eksik olabilir. Artifact HIT kararını sağlar; yeni trace için bu değer otomatik aktarılmaz.

    Delivery observations
    No origin event: possible HIT or coverage gap
    Call/cache comparison
    Policy bekliyor
    Evidence conclusion
    Hüküm yok
  2. Edge decision kaydı ayrıca arandı

    Decision HIT ve originContacted false gözlenirse yokluk seçilmiş route contract’ıyla açıklanabilir. Decision record yoksa body Atlas catalog görünmesi origin’in kullanılmadığını kanıtlamaz. Observer scope ayrıca gerekir.

    Delivery observations
    No origin event: possible HIT or coverage gap
    Call/cache comparison
    HIT evidence needed independently of body
    Evidence conclusion
    Hüküm yok
  3. Alternatif review missing decision’ı korudu

    Bu review’de edge decision ve origin observer coverage bilinmez. Normal sequence’in 1→1 count’u eksik trace yerine kopyalanmaz. Event yokluğu request’in hiç olmadığı, origin’in healthy olduğu veya outage yaşandığı sonucunu vermez.

    Delivery observations
    Edge decision and origin coverage unknown
    Call/cache comparison
    HIT evidence needed independently of body
    Evidence conclusion
    Hüküm yok
  4. Correlation farklı owners için ayrıldı

    Edge request, origin request ve browser observation aynı event değildir. HIT’te origin request olmayabilir. Review, parent/request ilişkisini ve observation noktasını belirlemeden bütün timeline’ı tek success field’ına indirmez.

    Delivery observations
    Edge decision and origin coverage unknown
    Call/cache comparison
    Separate edge/origin/browser observation scopes
    Evidence conclusion
    Hüküm yok
  5. Origin-contact verdict unknown kaldı

    Bu eksik trace için origin contacted UNKNOWN kalır. Normal HIT’in açıklayıcı olması her missing log’un HIT olduğunu göstermez. Negative event ve unreliable observation ayrı belirsizlik kaynaklarıdır.

    Delivery observations
    Edge decision and origin coverage unknown
    Call/cache comparison
    Separate edge/origin/browser observation scopes
    Evidence conclusion
    UNKNOWN: origin contact for this request
  6. Hedefli yeni evidence minimum scope’ta seçildi

    İlerlemek için request-scoped edge decision, origin call association ve bounded coverage gerekir. Full body, credential veya bütün network inventory gerekli değildir. Yeni evidence gelmeden healthy/unhealthy verdict’i verilmez.

    Delivery observations
    Edge decision and origin coverage unknown
    Call/cache comparison
    Separate edge/origin/browser observation scopes
    Evidence conclusion
    Needed: decision/request association/coverage

UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA

Public delivery contract’ını açık yaz

Örnekte edge adapter’ı cache kararını ve key listesini, origin server’ı ise call sayacını üretir. independentSequence her request öncesi ve sonrası bu iki kaydı eşleştirir: MISS 0→1, HIT 1→1, BYPASS 1→2. HIT sırasında oluşmayan origin request’i için event beklenmez; başka bir trace’te eksik log aynı kararın kanıtı değildir. Atlas için iki route class tanımla: public catalog reusable; personal note bypass ve no-store. Bu bir örnek policy’dir, otomatik URL extension tahmini değildir. Her response’ın body ve cache metadata’sı aynı classification’dan üretilir; public response’ın freshness süresi veya key’i değiştiğinde ilgili fixture beklentisi de değişir.

Origin’den gelen response’ı edge’e ulaşmadan stored diye işaretleme. Edge’te storage kararı verildikten sonra Browser response prepared olur; Browser bilgisi ancak arrival’da ilerler. Hareketsiz mod aynı completed state’leri göstermelidir. Böylece model, network transfer’ı ile cache lookup gibi local işlemi farklılaştırır.

Kontrolü owner sınırında yap

Bağımsız expected observation’da ilk catalog MISS bir origin request, ikinci catalog HIT sıfır ek origin request, personal GET bir ek origin request üretir. Personal response cache state’ini değiştirmemelidir. Body eşitliği tek başına HIT kanıtı değildir; origin call count ve karar kaydıyla birlikte değerlendirilir.

Gerçek TLS-terminating deployment review’unda iki peer’in doğrulamasını ayrı kanıtla; native loopback HTTP sonucunu certificate testi diye sunma. Origin access restriction, cache purge ve failover gibi operational kararlar kendi konfigürasyonuna bağlıdır. Bu dersteki küçük test bunları ölçmeden public reuse ve bypass sınırını doğrular.

ŞİMDİ VAKAYA UYGULA

HIT, MISS ve personal BYPASS hangi owner ve evidence farklarını oluşturur?

Public /catalog ilk request’te origin’den alınır, sonra fresh HIT ile edge’deki Atlas catalog kullanılır. Personal /notes/mine shared lookup’tan önce bypass edilir ve no-store taşır. Origin log’unda event olmaması tek başına request veya health hükmü vermez.

Vakadaki representation hangi cache owner’dan geliyor? Key kapsamı, freshness ve kullanıcının context’ini birlikte değerlendir; hit olması doğru viewer’a ait olduğunu kanıtlamaz.

Bağlı vaka dosyasını aç ↗

ÖRNEĞİ BİRLİKTE OKUYALIM

Edge delivery karar ve origin-call defteri

Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.

Ham kaydı ve alan açıklamalarını oku
{
  "public": {
    "method": "GET",
    "target": "/catalog",
    "body": "Atlas catalog",
    "bodyOctets": 13,
    "originCacheControl": "public, max-age=60",
    "selectedKey": "GET /catalog",
    "allowedAudience": "public"
  },
  "personal": {
    "method": "GET",
    "target": "/notes/mine",
    "body": "Duru reading note",
    "bodyOctets": 17,
    "cacheControl": "no-store",
    "routeClass": "bypass-before-lookup",
    "authorization": "supplied allowed; not computed"
  },
  "hit": {
    "currentAge": 5,
    "freshnessLifetime": 60,
    "originContacted": false,
    "storedBody": "Atlas catalog"
  },
  "independentSequence": [
    {
      "case": "miss",
      "originCallsBefore": 0,
      "originCallsAfter": 1,
      "cacheKeysAfter": [
        "GET /catalog"
      ]
    },
    {
      "case": "hit",
      "originCallsBefore": 1,
      "originCallsAfter": 1,
      "cacheKeysAfter": [
        "GET /catalog"
      ]
    },
    {
      "case": "bypass",
      "originCallsBefore": 1,
      "originCallsAfter": 2,
      "cacheKeysAfter": [
        "GET /catalog"
      ]
    }
  ],
  "scope": "Owned selected policy; not a general RFC cache implementation or deployed CDN."
}
selectedKey
Yalnız public catalog için seçilen local cache key; bütün HTTP cache key kurallarının parser’ı değildir.
originContacted
Bu request için outbound origin exchange var mı? Body eşitliği tek başına bu bilgiyi vermez.
originCallsBefore / After
Bağımsız seçilmiş sequence’in expected sayacı; benchmark veya üretim log alanı değildir.
routeClass
Personal response shared lookup’tan önce bypass edilir ve no-store ile relay edilir.

Sayısal age ve cache state supplied fixture’dır. Native check iki owned plaintext loopback HTTP server’ında seçilmiş public reuse/bypass davranışını gözler. CDN, DNS/routing, TLS/certificate, authenticated user veya purge/failover çalıştırılmaz.

İki yanlış kanı

CDN’de başarılı response, origin’in bu request’i işlediğini kanıtlar.

Reusable HIT, origin exchange olmadan tamamlanabilir. Edge ve origin observation’ları ayrı tutulur.

Browser’daki HTTPS, edge→origin hop’unun da doğrulandığını gösterir.

TLS-terminating mimaride her hop’un encryption ve peer verification sınırı ayrıdır.

SIRA SENDE

Bu hikâyeyi sen çöz.

Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.

Public catalog cache hit’inde age=5 ve lifetime=60. Origin call kayıtları ne gösteriyor?

  1. Bu hit yeni origin call üretmez.
  2. Her CDN response için origin’e yeni request gider.
Gerekçeli cevabı oku

Bu hit yeni origin call üretmez. — originCallsBefore=1 ve originCallsAfter=1; originContacted=false. Public body edge’den yeniden kullanılır.

Personal /notes/mine neden public cache key listesine eklenmiyor?

Dersten seçilen artifact alanları; öğretim örneği

personal.cacheControl
no-store
personal.routeClass
bypass-before-lookup
independentSequence[2].cacheKeysAfter
["GET /catalog"]
  1. CDN bütün personalized body’leri tek public GET key’inde saklar.
  2. Bu personal route cache lookup ve store yolunu atlar.
Gerekçeli cevabı oku

Bu personal route cache lookup ve store yolunu atlar. — Bypass origin call yapar, fakat cacheKeysAfter yalnız GET /catalog içerir. Permission sonucu ayrıca verilen girdidir.

Browser CDN’den response aldı. Origin’in o anda sağlıklı olduğu ve TLS’nin tek end-to-end connection olduğu çıkarılır mı?

Gerekçeli cevabı oku

Fresh hit origin’e gitmeden body döndürebilir; browser delivery origin health ölçümü değildir. CDN termination kullanılıyorsa browser–edge ve edge–origin TLS context’leri ayrıdır. Örnek cache kararlarını açıklar; gerçek CDN deployment veya certificate ölçümü yapmaz.

□ Edge hit’i origin health kanıtı saymadım.

□ İki hop’un TLS context’ini tek connection saymadım.

Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç

Kaynaklar ve kapsam