WEB / WEB-07.01
HTTP request ve response anatomy
Browser’ın istediği URL, taşınan request ve alınan response aynı nesne değildir. HTTP mesajını control data, headers ve content üzerinden parçalarına ayır.
1. Core · Mekanizma
Hareket olmadan bütün senaryoları oku
HTTP/1.1 pair
- Browser URL’si
Fragment client’ta; henüz request oluşmadı.
- Browser / Duru
- URL ve #details
- Atlas Application
- Request yok
- Resource / yerel state
- Atlas note: hazır
- Request oluştur
Path/query seçilir; fragment target dışında kalır. HTTP/1.1 origin-form kullanılır.
- Browser / Duru
- GET target hazır; #details yerel; response bekleniyor
- Atlas Application
- Request yok
- Resource / yerel state
- Atlas note: hazır
- Request Application’a ulaştı
Application GET target’ını ve header context’ini aldı; response henüz oluşmadı.
- Browser / Duru
- GET target hazır; #details yerel; response bekleniyor
- Atlas Application
- GET target alındı
- Resource / yerel state
- Atlas note: hazır
- Representation seç
Yerel routing Atlas note temsilini seçer; dış database wire varsayılmaz.
- Browser / Duru
- Response bekleniyor
- Atlas Application
- Temsil seçildi: Atlas note
- Resource / yerel state
- Atlas note: hazır
- Response hazır
200, media metadata ve 10-byte content hazır; Browser henüz almadı.
- Browser / Duru
- Response bekleniyor
- Atlas Application
- 200 hazır; 10 byte
- Resource / yerel state
- Atlas note: hazır
- Response Browser’a ulaştı
200 ve Atlas note artık Browser’da; semantic field görünümü frame dump değildir.
- Browser / Duru
- 200 alındı; Atlas note
- Atlas Application
- 200 hazır; 10 byte
- Resource / yerel state
- Atlas note: hazır
- GET bağlamında yorumla
Content target representation olarak yorumlanır; fragment seçimi client tarafındadır.
- Browser / Duru
- GET temsili; #details yerel
- Atlas Application
- 200 hazır; 10 byte
- Resource / yerel state
- Atlas note: hazır
HTTP/2–3 semantic görünümü
- Browser URL’si
Fragment client’ta; henüz request oluşmadı.
- Browser / Duru
- URL ve #details
- Atlas Application
- Request yok
- Resource / yerel state
- Atlas note: hazır
- Request oluştur
Path/query seçilir; fragment target dışında kalır. Pseudo-header projection hazırlanır.
- Browser / Duru
- :method GET, :path hazır; #details yerel; response bekleniyor
- Atlas Application
- Request yok
- Resource / yerel state
- Atlas note: hazır
- Request Application’a ulaştı
Application GET target’ını ve header context’ini aldı; response henüz oluşmadı.
- Browser / Duru
- :method GET, :path hazır; #details yerel; response bekleniyor
- Atlas Application
- :method GET ve :path alındı
- Resource / yerel state
- Atlas note: hazır
- Representation seç
Yerel routing Atlas note temsilini seçer; dış database wire varsayılmaz.
- Browser / Duru
- Response bekleniyor
- Atlas Application
- Temsil seçildi: Atlas note
- Resource / yerel state
- Atlas note: hazır
- Response hazır
200, media metadata ve 10-byte content hazır; Browser henüz almadı.
- Browser / Duru
- Response bekleniyor
- Atlas Application
- :status 200 hazır; content 10 byte
- Resource / yerel state
- Atlas note: hazır
- Response Browser’a ulaştı
200 ve Atlas note artık Browser’da; semantic field görünümü frame dump değildir.
- Browser / Duru
- :status 200 alındı; Atlas note
- Atlas Application
- :status 200 hazır; content 10 byte
- Resource / yerel state
- Atlas note: hazır
- GET bağlamında yorumla
Content target representation olarak yorumlanır; fragment seçimi client tarafındadır.
- Browser / Duru
- GET temsili; #details yerel
- Atlas Application
- :status 200 hazır; content 10 byte
- Resource / yerel state
- Atlas note: hazır
Response ulaşmadı
- Browser URL’si
Fragment client’ta; henüz request oluşmadı.
- Browser / Duru
- URL ve #details
- Atlas Application
- Request yok
- Resource / yerel state
- Atlas note: hazır
- Request oluştur
Path/query seçilir; fragment target dışında kalır. HTTP/1.1 origin-form kullanılır.
- Browser / Duru
- GET target hazır; #details yerel; response bekleniyor
- Atlas Application
- Request yok
- Resource / yerel state
- Atlas note: hazır
- Request Application’a ulaştı
Application GET target’ını ve header context’ini aldı; response henüz oluşmadı.
- Browser / Duru
- GET target hazır; #details yerel; response bekleniyor
- Atlas Application
- GET target alındı
- Resource / yerel state
- Atlas note: hazır
- Representation seç
Yerel routing Atlas note temsilini seçer; dış database wire varsayılmaz.
- Browser / Duru
- Response bekleniyor
- Atlas Application
- Temsil seçildi: Atlas note
- Resource / yerel state
- Atlas note: hazır
- Response hazır
200, media metadata ve 10-byte content hazır; Browser henüz almadı.
- Browser / Duru
- Response bekleniyor
- Atlas Application
- 200 hazır; 10 byte
- Resource / yerel state
- Atlas note: hazır
- Yanıt gözlenmedi
Bu senaryoda response’un bütünüyle ulaşmadığı verilmiştir. Server status’u browser için unknown kalır; hazırlanmış 200’ü browser gözlemi olarak yazamayız.
- Browser / Duru
- Status unknown; response yok
- Atlas Application
- 200 hazır; 10 byte
- Resource / yerel state
- Atlas note: hazır
ROLLER · STATE · VERİ AKIŞI
HTTP hangi anlaşmayı kurar?
Duru Atlas library’de bir not açar. Browser request ile hangi resource üzerinde ne istediğini anlatır; Atlas Application request’i yorumlar ve response ile sonucu bildirir. HTTP application-level bir protocol’dür. DNS, connection ve TLS bu alışverişin taşınmasına yardım eder; notun business anlamını veya Duru’nun permission’ını kendi başlarına belirlemez.
HTTP/1.1, HTTP/2 ve HTTP/3 farklı message framing ve transport ayrıntılarına sahiptir. Method, status, field ve representation semantics’inin büyük bölümü ortaktır. Bu dersteki çizgili metin HTTP/1.1 gösterimidir. Browser’ın DevTools panelinde benzer satırlar görülmesi, HTTP/2’nin ağda metin start-line gönderdiği anlamına gelmez.
Request: niyet, target ve context
Örneğin request-line’ı GET /notes/atlas-1?view=summary HTTP/1.1 biçimindedir. GET operation intent’i, path/query request-target’ı, HTTP/1.1 ise syntax version’ı gösterir. Direct origin request’te kullanılan origin-form path ve varsa query içerir. Host: library.atlas.example ilgili authority bilgisini taşır; scheme connection context’iyle birlikte anlaşılır.
Browser URL’sindeki #details fragment’i bu request-target’a katılmaz. Fragment client’ın temsil içindeki bir bölümü seçmesine yarayabilir; server’a gönderilecek başka query değeri sayılmaz. Proxy absolute-form, CONNECT authority-form ve server-wide OPTIONS asterisk-form farklı bağlamlardır; bütün request’lerin ilk satırına tam URL yazılmaz.
Headers request’e ek context sağlar. Accept: text/plain client’ın tercihidir; zorunlu server sonucu değildir. Header bölümü boş satırla biter. Bu GET örneğinde content yoktur; bu, her request’in body’siz olduğu anlamına gelmez. Method ile body’nin anlam ilişkisini WEB-07.02, framing ve media type’ı WEB-07.03 açar.
Response: karar, metadata, content
Atlas’ın HTTP/1.1 200 OK status-line’ında numeric status asıl anlamı taşır. OK reason phrase açıklayıcıdır; application logic onu başarı anahtarı olarak kullanmamalıdır. Response headers Content-Type ve Content-Length gibi metadata verir. Boş satırdan sonraki Atlas note bu örneğin content’idir: ASCII olduğu için 10 karakter aynı zamanda 10 byte’tır.
Client response’u önceki request bağlamında yorumlar. GET için 200 content’i target representation olabilir; POST için 200 işlem sonucu olabilir. HEAD response’u GET’in başlığına benzese de representation data taşımaz. HTTP message’ı yorumlamak yalnız “boş satırdan sonra ne varsa JSON” demek değildir.
Aynı semantic request HTTP/2–3 projection’ında :method, :scheme, :authority ve :path; response ise :status alanıyla gösterilir. Bunlar control data’dır; normal headers ve content ayrıca vardır. Artifact projection bir frame dump değildir: HPACK/QPACK, stream IDs ve binary framing bu modelde çizilmez.
Server hazırladı; Browser henüz almadı
Sahne önce Browser’daki URL’yi, sonra Application’a ulaşmış request’i ve en son Browser’a ulaşmış response’u gösterir. Local route seçimi ağ paketi değildir. Resource state Application’ın içindeki öğretim fixture’ıdır; ayrı database call varsayılmaz.
Response-loss branch’te Application 200 hazırlamıştır ama Browser’a response ulaşmamıştır. Browser bu gözlemle server’ın işlemediği sonucuna varamaz; status’u da tahmin edemez. Model bütün response’un hiç ulaşmadığını varsayar; kısmi body, timeout süresi veya transport algoritması ölçmez. Çift taraflı correlation, yalnız bir taraftaki “sent” kaydından daha açıklayıcıdır.
2. Red · Güven ve etki
Hareket olmadan bütün senaryoları oku
Routing scope
- Client seçimi doğru scope’ta okundu
Browser URL notes/atlas-1?view=summary#details taşır; requestTarget fragment’sızdır. Host library.atlas.example ve Accept text/plain client context’tir, verified account veya object permission değildir.
- Protocol evidence
- Target path/query / no fragment
- Application trust gate
- Trust gate yok
- Access/format review
- Access sonucu yok
- Routing identity yerine geçirilmedi
Application routing seçimini canonical target/authority alanlarıyla yapar; protected resource için trusted permission kararı ayrıca gerekir. Host veya URL’de Atlas yazısı bu ayrı gate’i açmaz.
- Protocol evidence
- Target path/query / no fragment
- Application trust gate
- Routing fields ≠ permission
- Access/format review
- Access sonucu yok
- Gösterim protocol encoding değildir
HTTP/1.1 örneği GET start-line, headers, CRLF CRLF ve Atlas note content’ini ayırır. Aynı semantik diğer sürümlerde aynı start-line bytes’ıyla taşınmaz.
- Protocol evidence
- H1 text / CRLF boundaries
- Application trust gate
- Routing fields ≠ permission
- Access/format review
- Access sonucu yok
- Content completeness ayrı koşuldur
Headers elde edilmesi Atlas note content’inin tamamlandığını göstermez. bodyOctets=10 bu complete verilmiş pair’in alanıdır; framing ve receipt state’i display formatından bağımsız tutulur.
- Protocol evidence
- H1 text / CRLF boundaries
- Application trust gate
- Headers / complete body separate
- Access/format review
- Access sonucu yok
- 200 bütün gate’leri geçmez
Response 200 HTTP/application status bilgisidir; doğru access control, identity veya rendered view kanıtı değildir. Hangi resource’un hangi scope’ta çıktığı ayrı incelenir.
- Protocol evidence
- H1 text / CRLF boundaries
- Application trust gate
- Headers / complete body separate
- Access/format review
- Status200 / permission unknown
- Boundary claim’i dar tutuldu
Client routing ile trusted resource authority ayrılır. Inert message pair dış hedefe gönderilmez; complete notation gerçek application enforcement kanıtı değildir.
- Protocol evidence
- H1 text / CRLF boundaries
- Application trust gate
- Headers / complete body separate
- Access/format review
- Routing scope known / authz separate
Display scope
- Client seçimi doğru scope’ta okundu
Browser URL notes/atlas-1?view=summary#details taşır; requestTarget fragment’sızdır. Host library.atlas.example ve Accept text/plain client context’tir, verified account veya object permission değildir.
- Protocol evidence
- Target path/query / no fragment
- Application trust gate
- Trust gate yok
- Access/format review
- Access sonucu yok
- Routing identity yerine geçirilmedi
Application routing seçimini canonical target/authority alanlarıyla yapar; protected resource için trusted permission kararı ayrıca gerekir. Host veya URL’de Atlas yazısı bu ayrı gate’i açmaz.
- Protocol evidence
- Target path/query / no fragment
- Application trust gate
- Routing fields ≠ permission
- Access/format review
- Access sonucu yok
- Gösterim protocol encoding değildir
semanticProjection :method/:path/:status içerir; HTTP/2 ve HTTP/3 encoded frames değildir. 200/header satırlarına çevrilmiş görünüm HTTP/1.1 wire olduğunu kanıtlamaz.
- Protocol evidence
- Semantic fields / not encoded frames
- Application trust gate
- Routing fields ≠ permission
- Access/format review
- Access sonucu yok
- Content completeness ayrı koşuldur
Headers elde edilmesi Atlas note content’inin tamamlandığını göstermez. bodyOctets=10 bu complete verilmiş pair’in alanıdır; framing ve receipt state’i display formatından bağımsız tutulur.
- Protocol evidence
- Semantic fields / not encoded frames
- Application trust gate
- Headers / complete body separate
- Access/format review
- Access sonucu yok
- 200 bütün gate’leri geçmez
Response 200 HTTP/application status bilgisidir; doğru access control, identity veya rendered view kanıtı değildir. Hangi resource’un hangi scope’ta çıktığı ayrı incelenir.
- Protocol evidence
- Semantic fields / not encoded frames
- Application trust gate
- Headers / complete body separate
- Access/format review
- Status200 / permission unknown
- Boundary claim’i dar tutuldu
HTTP/2 ve HTTP/3 semantic fields doğru display context’inde yorumlanır; gerçek frame/HPACK/QPACK veya permission testi eklenmez.
- Protocol evidence
- Semantic fields / not encoded frames
- Application trust gate
- Headers / complete body separate
- Access/format review
- Display scope known / wire proof absent
VARSAYIM · SINIR · KONTROL
Protocol alanı ile trusted karar ayrı yerde oluşur
Request-target ve client headers routing veya content negotiation için girdidir. Protected resource seçimi yine Application’ın permission kararını gerektirir. Host veya URL’de Atlas yazması request’in belirli bir kullanıcıdan geldiğini kanıtlamaz; aynı şekilde 200 tek başına doğru access control kanıtı değildir.
Hata koşulu client’tan gelen routing/context alanlarının trusted identity veya permission yerine kullanılmasıdır. Etki hangi resource’un yanlış sunulduğuna bağlıdır. Kontrol, canonical routing ile resource permission değerlendirmesini açık sınırlar halinde tutmaktır; bu ders gerçek bir authorization bypass denemesi yapmaz.
Görünümün formatını gerçek wire sanma
Araç bir HTTP/2 response’u okunur status/header satırlarına çevirebilir. Bu faydalı görüntü protocol parser’ının aynısı değildir. Yanlış model, control data’yı veya body sınırını formatlar arasında hatalı taşıyan incelemelere yol açabilir.
Version, display source ve completion state birlikte kaydedilmelidir. Başlıklara ulaşılmış olması bütün representation’ın alındığını kanıtlamaz; message completeness framing’e bağlıdır. Buradaki benign pair tamdır, loss branch ise hiçbir response arrival içermediğini açıkça bildirir.
3. Blue · Güvenli geliştirme ve savunma
Hareket olmadan bütün senaryoları oku
Exchange match
- Request aynı exchange’e ait
GET /notes/atlas-1?view=summary requestObserved=true olarak verilmiştir. Fragment details browser URL’sindedir; server target evidence’ına eklenmez.
- Request evidence
- GET target observed / fragment excluded
- Server observation
- Server preparation
- Browser evidence review
- Browser receipt yok
- Server hazırlığı receipt değildir
serverPreparedStatus=200 bu observation’ın verilmiş alanıdır. Response oluşturmak veya hazır etmek browser responseObserved state’ini kendiliğinden değiştirmez.
- Request evidence
- GET target observed / fragment excluded
- Server observation
- Prepared200 / receipt separate
- Browser evidence review
- Browser receipt yok
- Browser gözlemi bağımsız seçildi
Normal observation, browser’ın 200 status’u aldığını gösterir. Bu receipt, body completeness ve UI gösterimiyle aynı observation değildir. Verilmiş content de kendi framing ve completion bağlamında okunur.
- Request evidence
- GET target observed / fragment excluded
- Server observation
- Prepared200 / receipt separate
- Browser evidence review
- Observed200 / supplied content10
- Request ve response aynı context’te eşleşir
HTTP sürümü request ile response’un connection/stream eşlemesini belirler. Bu örneğin pair’i aynı GET target’ına aittir; fragment target’ın parçası değildir. Gerçek log incelemesinde iki ölçüm noktasının context’i eşleşmeden başka response bu request’e bağlanmaz.
- Request evidence
- Same exchange scope required
- Server observation
- Prepared200 / receipt separate
- Browser evidence review
- Observed200 / supplied content10
- Inconsistent fixture ile gap farklı
Selector requestObserved=false, responseObserved=true satırını işaretler. Missing field veya missing response sıfır eşleşme verse bile correct runtime davranışı kanıtı değildir; coverage ayrıca kaydedilir.
- Request evidence
- Same exchange scope required
- Server observation
- Inconsistency predicate ≠ complete coverage
- Browser evidence review
- Observed200 / supplied content10
- Completion verdict’i kanıtla sınırlı
Normal pair’de GET ve 200/content eşleşir. Gerçekte server hazırlığı server HTTP implementation’ından, receipt/completion ise client veya kapsamı bilinen capture’dan gelir. Body completeness ve UI gösterimi ayrıca ölçülür; bu verilmiş çift gerçek capture veya permission testi değildir.
- Request evidence
- Same exchange scope required
- Server observation
- Inconsistency predicate ≠ complete coverage
- Browser evidence review
- Exchange consistent / other gates separate
Response eksik
- Request aynı exchange’e ait
GET /notes/atlas-1?view=summary requestObserved=true olarak verilmiştir. Fragment details browser URL’sindedir; server target evidence’ına eklenmez.
- Request evidence
- GET target observed / fragment excluded
- Server observation
- Server preparation
- Browser evidence review
- Browser receipt yok
- Server hazırlığı receipt değildir
serverPreparedStatus=200 bu observation’ın verilmiş alanıdır. Response oluşturmak veya hazır etmek browser responseObserved state’ini kendiliğinden değiştirmez.
- Request evidence
- GET target observed / fragment excluded
- Server observation
- Prepared200 / receipt separate
- Browser evidence review
- Browser receipt yok
- Browser gözlemi bağımsız seçildi
response-loss case’inde responseObserved false, browserStatus null olur. Server’ın 200 response hazırlaması, browser’ın 200 aldığını veya network loss’un nedenini göstermez.
- Request evidence
- GET target observed / fragment excluded
- Server observation
- Prepared200 / receipt separate
- Browser evidence review
- No observed response / browserStatus=null
- Request ve response aynı context’te eşleşir
HTTP sürümü request ile response’un connection/stream eşlemesini belirler. Bu örneğin pair’i aynı GET target’ına aittir; fragment target’ın parçası değildir. Gerçek log incelemesinde iki ölçüm noktasının context’i eşleşmeden başka response bu request’e bağlanmaz.
- Request evidence
- Same exchange scope required
- Server observation
- Prepared200 / receipt separate
- Browser evidence review
- No observed response / browserStatus=null
- Inconsistent fixture ile gap farklı
Selector requestObserved=false, responseObserved=true satırını işaretler. Missing field veya missing response sıfır eşleşme verse bile correct runtime davranışı kanıtı değildir; coverage ayrıca kaydedilir.
- Request evidence
- Same exchange scope required
- Server observation
- Inconsistency predicate ≠ complete coverage
- Browser evidence review
- No observed response / browserStatus=null
- Completion verdict’i kanıtla sınırlı
Server 200 hazırlamıştır fakat browserStatus=null ve responseObserved=false verilmiştir. Gerçekte server kaydı ile client receipt/completion kaydı aynı request context’ine bağlanır. Eksik client kaydı network loss nedenini veya hiç işlenmediğini kanıtlamaz; bu örnekte cause bilinmez.
- Request evidence
- Same exchange scope required
- Server observation
- Inconsistency predicate ≠ complete coverage
- Browser evidence review
- UNKNOWN: response receipt/cause
UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA
Request ve response’u aynı exchange içinde oku
İlk inceleme sırası method, target, status, relevant headers ve completion’dır. Request context’i olmadan HEAD body’sini veya POST 200 content’ini yanlış yorumlayabilirsin. Gerçek HTTP eşlemesi sürümün connection/stream kurallarına dayanır; application gözlemlerinde method, target, işlem zamanı ve ölçüm noktası da aynı exchange’e bağlanmalıdır. Bu artifact kendi request/response pair’ini verir; özel bir correlation header’ı tanımlamaz.
Artifact XML seçimi responseObserved=true ama requestObserved=false satırını bulur. Normal fixture sıfır, kasıtlı inconsistent pozitif fixture bir satır verir. Sıfır sonuç server güvenliği ölçümü değildir; kayıp kayıt, eksik exchange veya farklı capture scope için veri toplama gerekir.
Manual okuma: sınırları işaretle, sonra anlam ver
Inert pair’de ilk satırı, her header field’ını ve CRLF CRLF sınırını işaretle. Request tarafında body olup olmadığını belirt; response content’inin hangi method/status bağlamında geldiğini söyle. Browser URL’sindeki fragment ile target’taki query’yi ayrı not et.
Ardından aynı pair’i semantic projection ile karşılaştır: GET ve 200 kalır, metin start-line kalkar. Bu çalışma byte stream göndermeden yapılır. Gerçek traffic incelemesinde transport güvenliği, proxy davranışı, cache ve izin kontrolü kendi kapsamlarında doğrulanmalıdır.
Bu public note’u gösteren consumer, response’u ilgili GET’e bağlamalı ve tam içerik bekleyen UI güncellemesini message completion’dan ayırmamalıdır. Örnekte Content-Length 10, Atlas note’un 10 byte’ını tanımlar; ilk header’ı görmek bu content’in geldiği anlamına gelmez. Response-loss dalında serverPreparedStatus 200 olsa da browserStatus null kalır. Bu nedenle UI’da alınmış 200 sonucu üretme; server hazırlığı, client receipt ve tam content kullanımı için ayrı beklenen sonuçlar yaz.
ŞİMDİ VAKAYA UYGULA
Routing, display format ve receipt hangi farklı iddiaları destekler?
Atlas note için GET target’ı path ve query taşır; fragment browser’da kalır. Server’ın 200 response hazırlaması, browser’ın onu aldığını kanıtlamaz. HTTP/2 ve HTTP/3 semantic projection ise encoded frame değildir.
Vakadaki 200, media type ve parse error kayıtlarını ayrı değerlendir. Bu dersteki representation kurallarıyla usable data için henüz hangi koşulun gerektiğini açıkla.
Bağlı vaka dosyasını aç ↗ÖRNEĞİ BİRLİKTE OKUYALIM
Atlas note: bir pair, iki gösterim
Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.
Ham kaydı ve alan açıklamalarını oku
{
"browserUrl": "https://library.atlas.example/notes/atlas-1?view=summary#details",
"requestTarget": "/notes/atlas-1?view=summary",
"fragment": "details",
"http11": {
"request": "GET /notes/atlas-1?view=summary HTTP/1.1\r\nHost: library.atlas.example\r\nAccept: text/plain\r\n\r\n",
"response": "HTTP/1.1 200 OK\r\nDate: Thu, 08 Oct 2026 00:00:00 GMT\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Length: 10\r\n\r\nAtlas note",
"lineEnding": "CRLF",
"body": "Atlas note",
"bodyOctets": 10,
"dateIsSynthetic": true
},
"semanticProjection": {
"scope": "HTTP/2 and HTTP/3 shared semantic fields, not encoded frames",
"request": {
":method": "GET",
":scheme": "https",
":authority": "library.atlas.example",
":path": "/notes/atlas-1?view=summary",
"headers": {
"accept": "text/plain"
},
"content": null
},
"response": {
":status": "200",
"headers": {
"content-type": "text/plain; charset=utf-8",
"content-length": "10"
},
"content": "Atlas note"
}
},
"observations": [
{
"case": "normal",
"requestObserved": true,
"serverPreparedStatus": 200,
"responseObserved": true,
"browserStatus": 200
},
{
"case": "semantic-fields",
"requestObserved": true,
"serverPreparedStatus": 200,
"responseObserved": true,
"browserStatus": 200
},
{
"case": "response-loss",
"requestObserved": true,
"serverPreparedStatus": 200,
"responseObserved": false,
"browserStatus": null
}
],
"selector": {
"language": "XPath",
"xml": "<observations><exchange requestObserved=\"true\" responseObserved=\"true\"/></observations>",
"xpath": "count(/observations/exchange[@requestObserved=\"false\" and @responseObserved=\"true\"])",
"expected": 0,
"positiveFixtureXml": "<observations><exchange requestObserved=\"false\" responseObserved=\"true\"/></observations>",
"positiveExpected": 1,
"scope": "Only authored protocol-decision observations, not product log field names or a live HTTP capture.",
"missingFieldBehavior": "Missing observation is insufficient evidence; zero matches is not proof of correct runtime behavior."
}
}- http11
- CRLF ile ayrılmış özgün inert request/response; replay komutu değildir.
- semanticProjection
- H2/3 semantic alanları; binary frames içermez.
- browserStatus
- Response ulaşmadığında unknown/null; serverPreparedStatus’tan kopyalanmaz.
- selector
- Yalnız öğretim observation ilişkisinin tutarlılık seçimi.
Sentetik HTTPS origin; TLS, proxy, stream framing ve access control runtime’ı yok. Date sabittir, capture veya gerçek server saati değildir.
İki yanlış kanı
Adres çubuğundaki URL aynen request-line’a gider.
Direct origin HTTP/1.1 örneğinde target path/query’dir; authority Host’tadır, fragment client tarafında kalır. Diğer target biçimleri bağlama bağlıdır.
Server 200 hazırladıysa Browser kesin 200 görür.
Response arrival ayrıca gerekir. Yanıt ulaşmadığında Browser server’ın status’unu veya işlem sonucunu bu gözlemden bilemez.
SIRA SENDE
Bu hikâyeyi sen çöz.
Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.
Response-loss branch’inde server 200 hazırladı, fakat responseObserved=false. Browser hangi status’u bilir?
- Browser 200 bilir; server state otomatik aktarılır.
- browserStatus=null; 200’ün alındığına dair kanıt yok.
Gerekçeli cevabı oku
browserStatus=null; 200’ün alındığına dair kanıt yok. — Response oluşturulması teslimi garanti etmez. Browser status bilgisi client gözleminden kurulmalıdır.
Atlas note body’si ve request target hangi iki ayrı HTTP alanıdır?
Dersten seçilen artifact alanları; öğretim örneği
- requestTarget
- /notes/atlas-1?view=summary
- http11.body
- Atlas note
- http11.bodyOctets
- 10
- Target istenen resource’u; 10 octet body response content’i gösterir.
- Body browser fragment’idir ve request target’a eklenir.
Gerekçeli cevabı oku
Target istenen resource’u; 10 octet body response content’i gösterir. — Path/query request-line tarafındadır. Atlas note content’i ise response headers’tan boş CRLF satırıyla ayrılır.
Aynı GET ve 200 neden HTTP/2–3’te HTTP/1.1 start-line byte’ları olmadan temsil edilebilir?
Gerekçeli cevabı oku
Method, authority, path ve status semantics farklı sürümlerde korunabilir. Artifact H2/H3 için :method/:path/:status alanlarını gösterir, fakat encoded frame üretmez. CRLF text çifti HTTP/1.1 representation’ıdır. Bu alan gösteriminden gerçek HPACK, QPACK veya frame byte’ları çıkarılmaz.
□ Semantics ile framing’i ayırdım.
□ Alan gösterimini packet capture saymadım.
Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç
Kaynaklar ve kapsam
- RFC 9110 — HTTP Semantics1.3 Core Semantics · 6 Message Abstraction · 6.1 Framing and Completeness · 6.2 Control Data · 6.4.1 Content Semantics · 7.1 Determining the Target Resource
- RFC 9112 — HTTP/1.12.1 Message Format · 3 Request Line · 3.2.1 origin-form · 4 Status Line
- MDN — HTTP messagesHTTP/1.1 messages · HTTP/2 messages · Pseudo-headers