Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / WEB-22.01

URL’den güvenli connection’a

URL, DNS bilgisi, route, transport ve peer identity kararlarını tek public read planında ilişkilendir.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

Yeni connection

  1. Navigation niyeti

    Browser https://public.example.invalid/notes/tea?view=compact#details URL’sini bilir. Resolver henüz soru almadı; bu ilk state DNS query veya HTTP request göndermez.

    Browser
    URL girdisi hazır
    Resolver
    Soru henüz yok
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  2. URL parçaları

    Browser host ve target’ı ayırır, fragment’i target dışında bırakır ve resolver sorusunu hazırlar.

    Browser
    Host biliniyor; DNS sorusu hazır
    Resolver
    Soru henüz yok
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  3. Resolver sorusu

    Kavramsal DNS sorusu resolver’a ulaştı; browser önceki prepared state’ini korur.

    Browser
    Host biliniyor; DNS sorusu hazır
    Resolver
    Hostname sorusu alındı
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  4. Adres cevabı hazır

    Resolver supplied local kayıttan documentation address cevabını hazırlar; henüz browser bilmez.

    Browser
    Host biliniyor; DNS sorusu hazır
    Resolver
    203.0.113.10 cevabı hazır
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  5. Adres browser’da

    Kavramsal DNS cevabı browser’a ulaştı; resolver ve diğer owner’lar aynı kalır.

    Browser
    Parsed host ve adres biliniyor
    Resolver
    203.0.113.10 cevabı hazır
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  6. Transport bağlamı

    Supplied route=true ve selected TCP/H2 bağlamı değerlendirilir; burada socket veya handshake yürütülmez.

    Browser
    Parsed host ve adres biliniyor
    Resolver
    203.0.113.10 cevabı hazır
    Connection context
    Route true; TCP/H2 supplied
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  7. Peer identity bağı

    Supplied trust/path=true ve intended ASCII hostname match=true birleşir; gerçek X.509 validation değildir.

    Browser
    Parsed host ve adres biliniyor
    Resolver
    203.0.113.10 cevabı hazır
    Connection context
    Route true; TCP/H2 supplied
    Peer identity
    Peer predicate accepted
    HTTP planner
    HTTP planı yok
  8. HTTP planı hazır

    Bağımlılıkları geçen plan host/path/query taşır; fragment ve application permission bu sonuçtan çıkmaz.

    Browser
    Parsed host ve adres biliniyor
    Resolver
    203.0.113.10 cevabı hazır
    Connection context
    Route true; TCP/H2 supplied
    Peer identity
    Peer predicate accepted
    HTTP planner
    GET target planı hazır; gönderilmedi

Peer bağı farklı

  1. Peer kontrol niyeti

    Connection context supplied’dır; sonraki karar trust/path ve intended name bağını ayrı değerlendirecek.

    Browser
    Parsed host biliniyor
    Resolver
    Adres supplied
    Connection context
    Transport supplied
    Peer identity
    Peer bekleniyor
    HTTP planner
    Plan bekleniyor
  2. Chain varsayımı

    Trust/path=true verilen predicate’tir; certificate dosyası veya cryptographic validation çalıştırılmaz.

    Browser
    Parsed host biliniyor
    Resolver
    Adres supplied
    Connection context
    Transport supplied
    Peer identity
    Trust/path true; name bilinmiyor
    HTTP planner
    Plan bekleniyor
  3. Name bağı farklı

    other.example.invalid ile public.example.invalid aynı değildir; exact ASCII fixture match=false olur.

    Browser
    Parsed host biliniyor
    Resolver
    Adres supplied
    Connection context
    Transport supplied
    Peer identity
    Name match false; peer rejected
    HTTP planner
    Plan bekleniyor
  4. Plan durduruldu

    Peer accepted=false olduğunda selected plan hazır sayılmaz ve uydurma HTTP status oluşturulmaz.

    Browser
    Parsed host biliniyor
    Resolver
    Adres supplied
    Connection context
    Transport supplied
    Peer identity
    Name match false; peer rejected
    HTTP planner
    Plan false; HTTP status yok

Adres eksik

  1. Adres ihtiyacı

    Parsed host supplied’dır ama usable answer yoktur; bu ordinary fixture gerçek NXDOMAIN teşhisi değildir.

    Browser
    Parsed host; adres eksik
    Resolver
    Soru henüz yok
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  2. Eksik resolver data

    Resolver observation usable address=false olarak supplied’dır; timeout veya offline nedeni uydurulmaz.

    Browser
    Parsed host; adres eksik
    Resolver
    Usable answer yok
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  3. Transport başlamadı

    Adres dependency’si eksik olduğundan transport attempted=false kalır; route hakkında yeni kanıt üretilmez.

    Browser
    Parsed host; adres eksik
    Resolver
    Usable answer yok
    Connection context
    Transport attempted false
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  4. Plan eksik kaldı

    TLS kontrolü not-evaluated ve HTTP status absent kalır; application handler’a ulaşılmış sayılmaz.

    Browser
    Parsed host; adres eksik
    Resolver
    Usable answer yok
    Connection context
    Transport attempted false
    Peer identity
    Peer bilinmiyor
    HTTP planner
    Plan false; peer not-evaluated

Connection reuse

  1. Tekrar okuma niyeti

    Aynı supplied origin için yeni public read planlanır; mevcut connection seçeneği henüz değerlendirilmez.

    Browser
    Aynı origin parsed
    Resolver
    Soru henüz yok
    Connection context
    Connection yok
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  2. Pool bağlamı uygun

    Existing connection uygun origin/partition/credential context için supplied’dır; gerçek browser pool okunmaz.

    Browser
    Aynı origin parsed
    Resolver
    Soru henüz yok
    Connection context
    Suitable existing H2 connection
    Peer identity
    Peer bilinmiyor
    HTTP planner
    HTTP planı yok
  3. Yeni handshake yok

    Bu branch verified existing context’i varsayar; fresh DNS veya TLS handshake stage’i tekrar çalışmış gösterilmez.

    Browser
    Aynı origin parsed
    Resolver
    Soru henüz yok
    Connection context
    Suitable existing H2 connection
    Peer identity
    Existing verified context supplied
    HTTP planner
    HTTP planı yok
  4. Reused plan hazır

    Uygun mevcut H2 connection seçilir; yeni DNS lookup veya TLS handshake gerekmeden HTTP planı hazır olur. Request henüz gönderilmedi.

    Browser
    Aynı origin parsed
    Resolver
    Soru henüz yok
    Connection context
    Suitable existing H2 connection
    Peer identity
    Existing verified context supplied
    HTTP planner
    Plan ready; fresh DNS/handshake false

ROLLER · STATE · VERİ AKIŞI

Adresin parçaları farklı sahiplerde anlam kazanır

https://public.example.invalid/notes/tea?view=compact#details adresini düşün. Scheme, hostname, port, path, query ve fragment tek bir server komutu değildir. URL parser bu parçaları bir record’a ayırır; HTTPS’in varsayılan portu canonical serialization’da görünmeyebilir. /notes/tea?view=compact HTTP target’a girer, #details client-side seçim olarak kalır. Bu örnekte browser adres çubuğu, history veya document navigation çalıştırılmaz. Aynı standart ailesindeki URL API ile adres record’u incelenir.

İlk bilgi browser’dadır: hangi origin’e ulaşmak istediğini bilir, fakat destination address henüz bilinmeyebilir. Resolver sorusu bütün URL’yi değil hostname ve seçilen record türünü taşır. Resolver local/cache bilgisinden yanıtlayabilir veya başka name server’lara danışabilir. Verilen 203.0.113.10 bir documentation address’tir. Resolver’ın answer hazırlaması ile browser’ın onu alması ayrı aşamalardır; browser bilgisi answer ona ulaştığında değişir.

DNS answer, network route ve server identity aynı doğrulama değildir. IP forwarding next-hop kararlarıyla destination’a ulaşmayı dener. DNS record bulunması route’un erişilebilir veya application’ın çalışır olduğunu kanıtlamaz. Route-unavailable dalı connection kurulmadan durabilir. routeAvailable burada verilen predicate’tir; gerçek hop listesi, latency veya packet capture yoktur. WEB-06 ve WEB-11 mekanizmaları birleşirken her bilginin geldiği layer korunur.

Transport seçimi ile güvenilen peer’i ayır

HTTPS request her seferinde yeni TCP handshake gerektirmez. Uygun existing connection kullanılabilir; cache veya service worker daha erken cevap verebilir. Yeni HTTP/1.1 ve HTTP/2 connection’da TCP ile TLS ayrı katmanlardır. HTTP/3 QUIC kullanır; QUIC v1 transport ve TLS cryptographic handshake’i birlikte yürütür, ayrıca TCP handshake yapmaz. Protocol selection, pooling ve resumption implementation policy’sine bağlıdır. Tek sahne bütün browser’lar için zorunlu zaman sırası değildir.

TLS certificate-based server authentication içinde certificate chain, CertificateVerify ve Finished farklı görevler taşır. Certificate alınması tek başına verification değildir. Trust/path/time ve intended reference identity kontrolleri gerekir. Hostname, URL’den kurulan beklenen identity’ye göre değerlendirilir; DNS’in başka adrese işaret etmesi bu identity’yi otomatik değiştirmez. TLS application user’ını veya note owner’ını yetkilendirmez; WEB-14 ve WEB-15 application kararları devam eder.

Normal defter URL parsing’i, verilen resolution’ı, route/transport seçimini ve peer-validation sonucunu HTTP planına bağlar. Yerel URL parse gerçekten çalışır; DNS lookup, socket, TLS veya X.509 validation çalıştırılmaz. Exact-name predicate yalnız basit ASCII alias’ları karşılaştırır; wildcard, IDNA veya IP-ID matcher değildir. HTTP planı seçilen dependency koşulları true olduğunda hazırdır. Sahne request gönderilmeden biter; peer-failed ve no-address dalları successful connection gibi gösterilmez.

2. Red · Güven ve etki

Hareket olmadan bütün senaryoları oku

Peer adı

  1. Intended host’u koru

    URL public.example.invalid origin’ini seçiyor. Resolution address 203.0.113.10 verilmiş; address discovery intended hostname’i veya onun güven bağını değiştirmiyor.

    URL ve resolver ledger
    Reference public.example.invalid / address supplied
    Peer kabul gate’i
    Henüz değerlendirilmedi
    Request plan sonucu
    Henüz değerlendirilmedi
  2. İki peer koşulu

    PeerFailed trustPath true, peerName other.example.invalid ve nameMatch false. Path koşulunun geçmesi reference hostname eşleşmesini telafi etmiyor.

    URL ve resolver ledger
    Reference public.example.invalid / address supplied
    Peer kabul gate’i
    Trust path true / name match false
    Request plan sonucu
    Henüz değerlendirilmedi
  3. HTTP planını durdur

    PeerAccepted false olduğunda requestPlanReady false ve httpStatus null. Henüz HTTP response yok; connection rejection’ı server 404 veya 500 diye göstermiyoruz.

    URL ve resolver ledger
    Reference public.example.invalid / address supplied
    Peer kabul gate’i
    Trust path true / name match false
    Request plan sonucu
    Peer rejected / plan stopped / no HTTP status
  4. Fragment’i ayır

    Parsed hash details client navigation bilgisi; target /notes/tea?view=compact fragment içermiyor. URL parse başarısı DNS, socket veya certificate validation kanıtı değildir.

    URL ve resolver ledger
    Target excludes #details
    Peer kabul gate’i
    Trust path true / name match false
    Request plan sonucu
    Peer rejected / plan stopped / no HTTP status
  5. Channel ile yetki

    Normal peerAccepted true ve requestPlanReady true olabilir; applicationAuthorized false kalır. Encrypted channel özel note yetkisi, session validity veya object ownership sağlamaz.

    URL ve resolver ledger
    Target excludes #details
    Peer kabul gate’i
    Accepted peer ≠ application grant
    Request plan sonucu
    Peer rejected / plan stopped / no HTTP status
  6. Plan ile gönderim

    Normal requestSent false; iyi plan HTTP delivery değildir. Bu kaynakta boolean peer koşulları verilmiş, X509 veya TLS handshake çalıştırılmamış; sonuç bu bağımlılık düzeyinde kalır.

    URL ve resolver ledger
    Target excludes #details
    Peer kabul gate’i
    Accepted peer ≠ application grant
    Request plan sonucu
    Ready plan / request unsent / crypto unmeasured

Stage sınırı

  1. Address bulunmuyor

    NoAddress usableAddress false; transportAttempted ve peerEvaluated false. Burada hangi resolver hatasının yaşandığı verilmediğinden timeout veya NXDOMAIN teşhisi eklemiyoruz.

    URL ve resolver ledger
    No address / transport and peer unevaluated
    Peer kabul gate’i
    Henüz değerlendirilmedi
    Request plan sonucu
    Henüz değerlendirilmedi
  2. Failed ile not-evaluated

    Peer check hiç değerlendirilmemişse failed diye kaydetmek başka gate’e neden atar. Bu branch’e application status veya certificate error yerleştirilmiyor.

    URL ve resolver ledger
    No address / transport and peer unevaluated
    Peer kabul gate’i
    Unevaluated peer ≠ rejected peer
    Request plan sonucu
    Henüz değerlendirilmedi
  3. Request hazırlığı yok

    NoAddress requestPlanReady false ve httpStatus null. Browser’ın sonuç görememesi server request receipt’i veya note absence kanıtı değil; önceki stage durmuştur.

    URL ve resolver ledger
    No address / transport and peer unevaluated
    Peer kabul gate’i
    Unevaluated peer ≠ rejected peer
    Request plan sonucu
    No plan / no inferred server event
  4. Suitable reuse

    Reuse suitable true, freshDns false ve freshHandshake false verir. Fresh aşamaların olmaması bu branch’te failure değil; mevcut context’in uygunluğu verilmiş.

    URL ve resolver ledger
    Suitable reuse / no fresh DNS or handshake
    Peer kabul gate’i
    Unevaluated peer ≠ rejected peer
    Request plan sonucu
    No plan / no inferred server event
  5. Transport türü ayrımı

    Seçilen H1/H2 HTTPS yolu TCP+TLS; H3 QUIC v1 over UDP ve TCP kullanmıyor. Bu alternatives protokol açıklaması; quicExecuted false actual transport kanıtını sınırlıyor.

    URL ve resolver ledger
    Suitable reuse / no fresh DNS or handshake
    Peer kabul gate’i
    H1/H2 TCP+TLS / H3 QUIC-over-UDP
    Request plan sonucu
    No plan / no inferred server event
  6. Boundary’yi seçili tut

    NoAddress, peer rejection ve suitable reuse üç farklı sonuç. Hepsini retry failure veya taze handshake başarı kutusuna dönüştürmek connection lifecycle bilgisini kaybettirir.

    URL ve resolver ledger
    Suitable reuse / no fresh DNS or handshake
    Peer kabul gate’i
    H1/H2 TCP+TLS / H3 QUIC-over-UDP
    Request plan sonucu
    Discovery / identity / reuse distinct

VARSAYIM · SINIR · KONTROL

Çözülmüş adresi güvenilmiş servis sanmak

Normal amaç URL’de seçilen origin’e ulaşmaktır; gereken güven bağı connection’ın intended server identity için doğrulanmasıdır. DNS answer veya erişilebilir transport bu bağın yerine konursa yanlış peer’e application data gönderilebilir. Bozulan varsayım address discovery’nin endpoint authentication yaptığı düşüncesidir. Örnekte other.example.invalid için nameMatch=false verilir. Bu sıradan alias karşılaştırması gerçek server bağlantısı veya certificate verification ölçümü değildir.

Kontrol intended hostname’i connection boyunca korur, trust/path ile name kontrolünü ayrı değerlendirir ve peer predicate başarısızsa HTTP planını durdurur. Bu sonuç certificate parser testine eşit değildir. Connection başarılı olduğunda bile application authorization ayrı kalır. Encrypted channel, public response veya session cookie özel object için hak vermez. Buradaki risk connection identity boundary’sine aittir; her DNS sorunu account compromise kanıtı değildir.

Eksik stage’i tamamlanmış göstermek

No-address dalında resolver’ın bu örnek için usable answer’ı yoktur. Bunun gerçek NXDOMAIN, timeout veya offline durumundan kaynaklandığı söylenmez; yalnız usable answer bulunmadığı bilinir. Route ve TLS aşamaları başlamaz. Bu sonucu HTTP 500 veya application 404 diye sunmak request server’a ulaşmadan server sonucu üretmek olur. Connection failure ile application response farklı kanıt taşır.

Reuse dalında uygun mevcut connection verilmiştir; yeni DNS lookup veya handshake yapılmaması failure değildir. Hangi connection context’inin origin ve credential/partition kapsamına uygun olduğu değerlendirilir. Her request için bütün aşamaları zorla yeniden oynatmak runtime davranışını yanlış anlatır. Browser policy, cache ve connection management kaynakları alternatifleri açıklar; model yalnız seçilen dalın koşullarını gösterir.

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

Hareket olmadan bütün senaryoları oku

Plan controls

  1. URL alanlarını karşılaştır

    Raw input, normalized origin, target ve hash ayrı hesaplanır. Explicit default port origin’i değiştirmez; query target’a katılır, fragment katılmaz.

    Plan fact ledger
    Origin/target/hash distinct
    Dependency comparison
    Henüz değerlendirilmedi
    Evidence sonucu
    Henüz değerlendirilmedi
  2. Reference ve answer bağı

    QuestionName intended host, answer address ise verilen resolver sonucudur. ActualDnsQuery false; name discovery kaydını observed DNS exchange diye raporlamıyoruz.

    Plan fact ledger
    Origin/target/hash distinct
    Dependency comparison
    Supplied address / query unexecuted
    Evidence sonucu
    Henüz değerlendirilmedi
  3. Olumlu peer kontrolü

    Normal trustPath ve nameMatch true ile peerAccepted true. Bu conjunction requestPlanReady’yi destekler; applicationAuthorized ve requestSent false ayrı kalır.

    Plan fact ledger
    Origin/target/hash distinct
    Dependency comparison
    Supplied address / query unexecuted
    Evidence sonucu
    Peer accepted / plan ready / app grant false
  4. Üç branch evidence

    PeerFailed evaluated reject, noAddress not-evaluated ve reuse suitable context’tir. Evidence stage’i aynı generic status label’ından önce belirtilir.

    Plan fact ledger
    Rejected / unevaluated / reused contexts
    Dependency comparison
    Supplied address / query unexecuted
    Evidence sonucu
    Peer accepted / plan ready / app grant false
  5. Selector coverage sınırı

    Selector peerAccepted false ve ready true contradiction’ını arar. Zero normal match, positive inconsistent one match; missing observation güvenli channel kanıtı değildir.

    Plan fact ledger
    Rejected / unevaluated / reused contexts
    Dependency comparison
    Contradiction controls / missing coverage separate
    Evidence sonucu
    Peer accepted / plan ready / app grant false
  6. Bir sonraki owner’a geçiş

    Bu ledger hazır planın hangi bağımlılıkları geçtiğini söyler. HTTP receiver ve handler sonraki capstone’un alanı; onların sonuçları connection planına geriye eklenmez.

    Plan fact ledger
    Rejected / unevaluated / reused contexts
    Dependency comparison
    Contradiction controls / missing coverage separate
    Evidence sonucu
    Plan evidence only / HTTP owner separate

Peer evidence gap

  1. Yalnız address kaydı

    Review yalnız 203.0.113.10 adresini görüyor; route ve peer acceptance kaydı yok. Address bulunması endpoint identity veya encrypted channel başarı kanıtı değildir.

    Plan fact ledger
    Address known / route and peer missing
    Dependency comparison
    Henüz değerlendirilmedi
    Evidence sonucu
    Henüz değerlendirilmedi
  2. Normal sonucu kopyalama

    Normal nameMatch true başka fixture branch’ine ait. Bu eksik olayda intended name ve peer check bilinmeden accepted true yazılamaz.

    Plan fact ledger
    Address known / route and peer missing
    Dependency comparison
    Expected peer acceptance ≠ observed result
    Evidence sonucu
    Henüz değerlendirilmedi
  3. HTTP sonucunu üretme

    RequestPlanReady ve requestSent UNKNOWN; httpStatus gözlenmiyor. Endpoint name failure veya application404 aynı boş address kaydından çıkarılamaz.

    Plan fact ledger
    Address known / route and peer missing
    Dependency comparison
    Expected peer acceptance ≠ observed result
    Evidence sonucu
    Plan/send/HTTP outcome UNKNOWN
  4. Gerekli dependency fields

    Reference hostname, address source, selected transport, suitable reuse ve peer result gerekli. Connection error ile server receipt kayıtları ayrı kaynaklardan gelir.

    Plan fact ledger
    Needed: reference/context/peer/recipient
    Dependency comparison
    Expected peer acceptance ≠ observed result
    Evidence sonucu
    Plan/send/HTTP outcome UNKNOWN
  5. Parser evidence sınırı

    URL API normalized origin’i hesaplar, X509 validation yapmaz. Native parser başarısı certificate trust, socket reachability veya browser navigation kontrolünün yerine geçmez.

    Plan fact ledger
    Needed: reference/context/peer/recipient
    Dependency comparison
    URL computation ≠ connection verification
    Evidence sonucu
    Plan/send/HTTP outcome UNKNOWN
  6. Unknown sonucu koru

    Yeni observation connection context’i ve peer gate’ini ayrı yanıtlamalı. Bu kayıt sadece address bilgisini korur; hazır HTTP planı veya application yetkisi iddiası eklemez.

    Plan fact ledger
    Needed: reference/context/peer/recipient
    Dependency comparison
    URL computation ≠ connection verification
    Evidence sonucu
    Retain address / collect scoped peer evidence

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

Bir request planının bağımlılıklarını izle

Defterde raw input’u, parsed origin/target’ı, reference hostname’i, address kaynağını ve transport mode’u ayrı tut. Parser output’undan fragment’in request-target’a eklenmediğini kontrol et. Normal URL’ye açık :443 eklemek veya query value değiştirmek hangi record alanını etkiliyor karşılaştır. Bu kontrol URL API kapsamındadır; document navigation, mixed content policy veya certificate verification kanıtı değildir.

Observation’ları typed sonuçlarla bağla: usable address, verilen route predicate’i, seçilen protocol, peerValidation ve requestPlanReady. Eksik alanlara true default verme. Resolver answer’ı hazırken browser’ın henüz almadığı adım sınırını koru. Peer validation sonucu application authorization’a taşınmaz. Sonraki capstone aynı planı handler’a götürür; böylece tek success label yerine her aşamadaki bilinen ve bilinmeyen koşullar görünür olur.

Failure reason ile güven sınırını kaydet

Peer-failed örneğinde trustPath=true ile nameMatch=false birlikte kalır; chain koşulunun olumlu olması name mismatch’i kaldırmaz. No-address durumunda peer check not-evaluated’dır, failed değildir. Reused context’te freshHandshake=false ile selectedSuitable=true birlikte açıklanır. Bu sonuçlar aynı retry veya error sınıfına zorlanmaz; yerel predicate yalnız verilen ASCII name ve boolean input’lar için karar verir.

XML selector peerAccepted=false iken requestPlanReady=true yazılan çelişkiyi arar. Durdurulmuş plan 0, bilerek tutarsız hazırlanmış kayıt 1 eşleşme verir. Eksik kayıt güvenli connection kanıtı değildir. Selector time correlation veya TLS transcript çözmez. Gerçek incelemede browser timing, connection error ve server access evidence farklı kaynaklardan gelir; bu örnek onların yerine output üretmeden karar bağımlılığını gösterir.

ŞİMDİ VAKAYA UYGULA

DNS answer HTTPS request için hangi güveni sağlar?

Public note URL’sinin fragment’i client’ta kalıyor; request target path ve query’den oluşuyor. Verilen DNS answer bir adres gösteriyor, fakat other.example.invalid peer adı intended host ile uyuşmuyor. Bir başka branch uygun connection’ı yeniden kullanıyor; her request için yeni DNS ve handshake şart değil.

Vaka kayıtlarından request’in geçtiği owner zincirini yeniden kur. Her observation’ı gerçekten desteklediği sonuca bağla; eksik hop için başka request’in başarısını kullanma.

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

ÖRNEĞİ BİRLİKTE OKUYALIM

URL ve connection karar kaydı

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

Ham kaydı ve alan açıklamalarını oku
{
  "input": "https://public.example.invalid/notes/tea?view=compact#details",
  "parsed": {
    "protocol": "https:",
    "hostname": "public.example.invalid",
    "port": "",
    "origin": "https://public.example.invalid",
    "pathname": "/notes/tea",
    "search": "?view=compact",
    "hash": "#details",
    "target": "/notes/tea?view=compact"
  },
  "resolution": {
    "questionName": "public.example.invalid",
    "address": "203.0.113.10",
    "source": "supplied local resolver answer",
    "actualDnsQuery": false
  },
  "normal": {
    "routeAvailable": true,
    "transport": "tcp",
    "httpVersion": "h2",
    "trustPath": true,
    "peerName": "public.example.invalid",
    "nameMatch": true,
    "peerAccepted": true,
    "requestPlanReady": true,
    "applicationAuthorized": false,
    "requestSent": false
  },
  "peerFailed": {
    "trustPath": true,
    "peerName": "other.example.invalid",
    "nameMatch": false,
    "peerAccepted": false,
    "requestPlanReady": false,
    "httpStatus": null
  },
  "noAddress": {
    "usableAddress": false,
    "transportAttempted": false,
    "peerEvaluated": false,
    "requestPlanReady": false,
    "httpStatus": null
  },
  "reuse": {
    "origin": "https://public.example.invalid",
    "suitable": true,
    "freshDns": false,
    "freshHandshake": false,
    "httpVersion": "h2",
    "requestPlanReady": true
  },
  "transportAlternatives": {
    "h1h2": "TCP plus TLS for selected HTTPS path",
    "h3": "QUIC v1 over UDP integrates TLS handshake; no TCP",
    "quicExecuted": false
  },
  "limits": {
    "browserNavigation": false,
    "dnsQuery": false,
    "socketRouteProbe": false,
    "tcpQuicTlsHandshake": false,
    "x509Validation": false,
    "httpDelivery": false,
    "realCredentials": false
  },
  "selector": {
    "language": "XPath",
    "xml": "<audit><plan peerAccepted=\"false\" ready=\"false\"/></audit>",
    "xpath": "count(/audit/plan[@peerAccepted='false' and @ready='true'])",
    "expected": 0,
    "positiveFixtureXml": "<audit><plan peerAccepted=\"false\" ready=\"true\"/></audit>",
    "positiveExpected": 1,
    "scope": "Own inert decision observations, not real vendor logs.",
    "missingFieldBehavior": "Missing observation is insufficient evidence, not a proven healthy or authorized result."
  }
}
parsed
URL API ile incelenen origin, path, query ve client fragment.
normal
Verilen dependency sonuçları; application yetkisi değildir.
peerFailed
Trust/path ile name match ayrı koşullardır.
reuse
Yeni handshake gerektirmeyen, uygun olduğu verilen connection context’i.

Sabit sentetik URL yerel parse edilir; name ve dependency koşulları verilen sınırlı predicate’lerdir. Gerçek DNS, socket, TLS/X.509 verification veya browser navigation çalıştırılmaz; sahnedeki protocol ilişkileri kavramsaldır.

İki yanlış kanı

Her HTTPS request yeni DNS lookup, TCP ve TLS handshake yapar.

Cache ve uygun connection reuse farklı dallardır; HTTP/3 ayrıca TCP yerine QUIC kullanır.

Adres bulundu ve TLS şifreli; artık note’a yetkim var.

Service identity ve channel koruması, application authorization’dan ayrı değerlendirilir.

SIRA SENDE

Bu hikâyeyi sen çöz.

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

Certificate path güvenilen, fakat peerName=other.example.invalid ve nameMatch=false. Bu URL için request plan hazır olur mu?

  1. Hayır. peerAccepted=false; requestPlanReady=false.
  2. Evet. Güvenilen path, hostname kontrolüne gerek bırakmaz.
Gerekçeli cevabı oku

Hayır. peerAccepted=false; requestPlanReady=false. — Güvenilen path başka service adını bu URL için geçerli yapmaz. Bu branch’te HTTP response alınmadığından httpStatus=null kalır.

Bu URL’den HTTP request target’a hangi bileşenler geçer?

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

parsed.pathname
/notes/tea
parsed.search
?view=compact
parsed.hash
#details
parsed.target
/notes/tea?view=compact
  1. Fragment de HTTP target’a eklenir; server details route’unu seçer.
  2. /notes/tea?view=compact gider; #details gitmez.
Gerekçeli cevabı oku

/notes/tea?view=compact gider; #details gitmez. — target path ve query’den oluşur. Fragment browser context’inde kalır; TLS veya DNS aşamasına resource path olarak eklenmez.

Reuse için freshDns=false ve freshHandshake=false, fakat requestPlanReady=true. Neden bu mümkündür? Hazır plan neden application izni veya HTTP delivery değildir?

Gerekçeli cevabı oku

Uygun connection yeniden kullanılabilir; her request için yeni DNS sorgusu ve handshake zorunlu değildir. Bu örnek origin ve suitability koşullarını girdi olarak verir. Normal branch’te requestSent=false ve applicationAuthorized=false kalır: transport plan hazır olsa da request gönderilmemiştir ve application izni verilmemiştir. H3 alternatifi QUIC/UDP kullanır, TCP değildir. Burada gerçek DNS, socket, TLS veya HTTP delivery çalıştırılmaz.

□ Connection reuse’u her request için yeni handshake zorunluluğundan ayırdım.

□ Plan readiness’i application izni veya delivery saymadım.

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

Kaynaklar ve kapsam