WEB / WEB-10.06
Developer Tools ile gözlem yapmak
Network, DOM, Console ve Storage farklı evidence yüzeyleridir. Observation’ın sınırını request, context ve capture zamanıyla birlikte kur.
1. Core · Mekanizma
Hareket olmadan bütün senaryoları oku
Observe HTTP 404
- Capture başladı
Observation recording action’dan önce açıktır; selected context top ve public-note filter’dır.
- Page / Duru
- DOM Loading; request ready
- Origin
- No request
- Observation view
- Recording; no row yet
- Client state
- theme dark; no result
- GET arrival
Origin benign GET /notes/missing’i alır; browser result hâlâ pending durumundadır.
- Page / Duru
- DOM Loading; pending
- Origin
- GET received
- Observation view
- Recording; request visible
- Client state
- theme dark; result pending
- 404 prepared
Origin normal 404 response ve Not found text’ini hazırlar; network error değildir.
- Page / Duru
- DOM Loading; pending
- Origin
- 404 Not found ready
- Observation view
- Recording; status pending
- Client state
- theme dark; result pending
- Response arrival
404 ve tam content page’e ulaşır; Fetch Response için status=404, ok=false’dur.
- Page / Duru
- Response404; Not found received
- Origin
- 404 delivered
- Observation view
- Recording; response available
- Client state
- theme dark; body read pending
- Local DOM/log
Page body’yi tüketir, DOM’u Not found yapar ve application request completed mesajını üretir.
- Page / Duru
- DOM Not found
- Origin
- Exchange complete
- Observation view
- 404 row available
- Client state
- theme dark; application log completed
- Cross-surface check
Observation original Loading HTML, live Not found DOM ve 404 field’lerini birlikte kaydeder.
- Page / Duru
- DOM Not found
- Origin
- No new mutation
- Observation view
- HTML≠DOM; status404; initiator script
- Client state
- Log completed ≠ HTTP200
- Bounded conclusion
TTFB server DB duration sayılmaz; request completion business success veya permission kararı değildir.
- Page / Duru
- Missing note shown
- Origin
- Internal durations unobserved
- Observation view
- Evidence bounded; no fake ms
- Client state
- theme dark; no backend authority
Local DOM edit
- Observed state
Verilen önceki response HTML’i Loading, live DOM text’i Not found ve originTitle Atlas note’dur.
- Page / Duru
- DOM Not found
- Origin
- Title Atlas note
- Observation view
- HTML Loading; current DOM Not found
- Client state
- theme dark
- Local text edit
Harmless local edit yalnız active document result text’ini Preview yapar; request gönderilmez.
- Page / Duru
- DOM Preview
- Origin
- Title Atlas note
- Observation view
- Previous observation retained
- Client state
- theme dark
- Elements view
Elements-equivalent observation active DOM Preview değerini okur; response HTML değişmez.
- Page / Duru
- DOM Preview
- Origin
- Title Atlas note
- Observation view
- DOM Preview; original HTML Loading
- Client state
- theme dark
- Storage view
Selected origin storage theme dark değerini taşır; server session store’a dönüşmez.
- Page / Duru
- DOM Preview
- Origin
- Title Atlas note
- Observation view
- Client storage observed
- Client state
- theme dark; server session unobserved
- Compare ownership
Local DOM evidence’i server mutation claim’ine bağlamak için exchange yoktur; authoritative title aynı kalır.
- Page / Duru
- DOM Preview
- Origin
- Title Atlas note
- Observation view
- No server mutation evidence
- Client state
- Client-only state
- Bounded conclusion
Observation local presentation change sonucunu verir; backend permission veya mutation ispatı üretmez.
- Page / Duru
- DOM Preview
- Origin
- Title Atlas note
- Observation view
- Local edit only; server claim false
- Client state
- Client-only state
Late recording
- Recording kapalı
Action öncesi selected Network capture kapalıdır; table daha sonra history’yi oluşturamaz.
- Page / Duru
- GET public note ready
- Origin
- No request
- Observation view
- Recording off; empty
- Client state
- Result pending
- GET arrival
Origin benign public note GET’ini alır; observation table bu selected exchange’i toplamamaktadır.
- Page / Duru
- Waiting response
- Origin
- GET received
- Observation view
- Recording off; empty
- Client state
- Result pending
- Response arrival
Public response status 200 ile page’e ulaşır; bu sırada capture hâlâ kapalıdır.
- Page / Duru
- Response200 public note
- Origin
- Response delivered
- Observation view
- Recording off; empty
- Client state
- Result available
- Late capture starts
Observation şimdi recording açar; geçmiş exchange için captured request row üretilmez.
- Page / Duru
- Public note shown
- Origin
- Exchange complete
- Observation view
- Recording on; prior row absent
- Client state
- Result available
- Missing evidence
Empty table geçmiş request yoktu sonucunu vermez; bu branch explicit capture gap taşır.
- Page / Duru
- Public note shown
- Origin
- Historical GET occurred
- Observation view
- Historical request unobserved
- Client state
- No no-request proof
- Scope recorded
Rapor selected action’ın network evidence’ini missing yazar; yeni ölçüm eskisini retroaktif değiştirmez.
- Page / Duru
- Public note shown
- Origin
- Historical GET occurred
- Observation view
- Capture gap documented
- Client state
- No compromise claim
ROLLER · STATE · VERİ AKIŞI
Önce capture contract’ı
Developer Tools observation aracıdır; otomatik application correctness veya vulnerability hükmü değildir. Network panel açık ve recording aktifken yapılan request’leri gösterir. İlgili action’dan önce aç, recording ve filter seçimini kaydet; navigation boyunca zinciri korumak istiyorsan Preserve log seçimini explicit tut. Paneli action’dan sonra açıp boş table görmen request yapılmadığını kanıtlamaz. Cached veya Service Worker response da kayıtta görünebilir; her satır yeni origin round trip değildir.
Method, target, status, headers ve body’yi farklı field’ler olarak oku. Response status404 ile Fetch fulfillment birlikte mümkündür. Artifact’in /notes/missing GET’i HTTP404/body Not found üretir; client buna rağmen Console’a request completed yazabilir. Initiator parser, script veya başka request ilişkisini açıklayabilir; business actor identity veya permission kararı vermez. Stack trace request’in nasıl başlatıldığına bağlanır, server’ın iç çağrı zincirini göstermez.
Timing fazlarını aynı toplam süreye indirgeme. Queueing/Stalled browser resource scheduling ile, DNS/connect başlangıç bağlantısıyla, Waiting (TTFB) round-trip ve server response hazırlığıyla ilişkili olabilir. TTFB yalnız database duration değildir; Content Download sırasında network ve browser consumption koşulları rol oynar. Connection reuse veya cache yüzünden fazlar absent olabilir. Bu örnek fake millisecond sayı üretmez; gözlenen phase bilgisi ile ölçülmeyen server sürelerini ayırır.
Response HTML ve live DOM aynı artifact değildir
Elements aktif DOM tree’sini gösterir. Response HTML başlangıç content’idir; browser parsing’i tree oluşturur, script sonradan node/text değiştirebilir. Artifact’te başlangıç p#result Loading iken client 404 content’i okuduktan sonra Not found olur. Bu fark server’ın HTML’ini sonradan değiştirdiğinin kanıtı değildir. View Source veya document response body’si ile live Elements gözlemini ayrı zamanda ve aynı navigation’a bağla.
Console selected JavaScript context’i gösterir; top document ile iframe context’i farklı olabilir. Filter edilmiş message list’i eksiksiz trace değildir. Application’ın request completed log’u o uygulamanın ifadesidir; HTTP status veya server audit sonucu yerine geçmez. Local DOM text’ini Preview yapmak sadece bu document’in presentation state’ini değiştirir; server mutation claim’i için ayrıca gerçekten yapılmış exchange ve server davranışı gerekir.
Application/Storage altında doğru origin’in localStorage key/value ve Cache Storage entries’ini incelersin. Bu yüzeyler server session store’u değildir. Local theme=dark tercihi, identity/tenant permission veya response authorization kanıtı olamaz. Cache Storage view, browser HTTP cache ile aynı yönetim tablosu değildir; refresh seçimi ve cached resource content’i de gözlem zamanına bağlıdır. Bir ekranda görünen eski state’i güncel backend state’i diye etiketleme.
Evidence paylaşırken kapsam ve hassas alanlar
HAR, captured exchange’leri belirli JSON formatında export edebilir. Chrome’un varsayılan sanitized seçimi Cookie, Set-Cookie ve Authorization gibi headers’i dışarıda bırakır. Bu, URL query, request/response body veya application identifier’larının her durumda anonimleştirildiği garantisi değildir. Paylaşılacak content’i ayrıca incelemek ve yalnız gerekli bounded observation’ı tutmak gerekir.
Buradaki bundle gerçek HAR değildir; benign request ve selected DOM/storage observation’larını gösteren inert projection’dır. İçerikte yalnız public path ve harmless text tutulur; excludedHeaderNames dışarıda bırakılan field türlerini listeler. Capture gaps açık yazılır. Bir export’u okumak, capture sırasında görünmeyen exchange’leri geri getirmez. Browser instrumentation’dan elde edilen field ile paneldeki filtrelenmiş görünümü karşılaştırırken hangi observation’ın gerçekten toplandığını koru.
2. Red · Güven ve etki
Hareket olmadan bütün senaryoları oku
Local DOM
- Original response ve current DOM ayrıldı
Original HTML result node’u Loading taşır; script sonrası Not found olur. Local edit Preview yapar. Üç snapshot farklı stages’e aittir; current serialization original response bytes diye sunulmaz.
- Browser observation bundle
- Source Loading / script Not found / local Preview
- Provenance/privacy gate
- Review bekliyor
- Server/evidence boundary
- Verdict yok
- Local edit server mutation kanıtı sayılmadı
serverTitleBefore ve serverTitleAfterLocalEdit Atlas note kalır; serverMutationObserved false’tur. Elements görünümü client presentation’dır. Local UI değişimini authoritative object update’i gibi yorumlamak yanlış boundary kurar.
- Browser observation bundle
- Source Loading / script Not found / local Preview
- Provenance/privacy gate
- Server Atlas note unchanged / mutation false
- Server/evidence boundary
- Verdict yok
- Client preference backend authority olmadı
localStorage theme dark’tır; serverSessionStoreObserved false kalır. Preference field’ını role, session veya resource grant’i yerine kullanmak doğru değildir. Cache Storage observation’ı da HTTP cache engine evidence değildir.
- Browser observation bundle
- Source Loading / script Not found / local Preview
- Provenance/privacy gate
- Server Atlas note unchanged / mutation false
- Server/evidence boundary
- Theme dark / server session unobserved
- Completed log HTTP status ile karşılaştırıldı
Console request completed metnini application yazmıştır; GET /notes/missing 404 ve ok false döner. Fulfilled Response, logger label’ının HTTP 200 kanıtı olmadığını açıklar. Seçilen context top’tur.
- Browser observation bundle
- Application log completed / HTTP404 ok=false
- Provenance/privacy gate
- Server Atlas note unchanged / mutation false
- Server/evidence boundary
- Theme dark / server session unobserved
- Provenance oracle normal ve positive control ile incelendi
Normal XML local-dom evidence için serverMutationClaim false verir; count sıfırdır. Positive XML true verir ve count bir olur. Bu observation rule local edit’ten server claim üreten yanlış inference’ı seçer; gerçek log schema’sı değildir.
- Browser observation bundle
- Application log completed / HTTP404 ok=false
- Provenance/privacy gate
- Normal inference count0 / positive count1
- Server/evidence boundary
- Theme dark / server session unobserved
- Control original source ile observed effect’i bağladı
Response, active DOM, application outcome ve authoritative server state ayrı kaydedilir. Bu inert bundle gerçek DevTools UI veya full HAR capture değildir. Server değişimi için scoped server evidence gerekir; local Preview yeterli değildir.
- Browser observation bundle
- Application log completed / HTTP404 ok=false
- Provenance/privacy gate
- Normal inference count0 / positive count1
- Server/evidence boundary
- Local effect known / authority requires server evidence
Export scope
- Minimal paylaşım full HAR’dan ayrıldı
Sharing format minimal observation projection’dır. Cookie, Set-Cookie ve Authorization excludedHeaderNames’dadır; retainedQuery none, body yalnız public Not found’dur. Bu seçilmiş bundle gerçek user journey export’u değildir.
- Browser observation bundle
- Minimal public projection / credential headers excluded
- Provenance/privacy gate
- Review bekliyor
- Server/evidence boundary
- Verdict yok
- Header filtering full anonymization sayılmadı
fullAnonymizationProven false’tur. Header’ları çıkarmak query/body içinde sensitive data kalmadığını genel olarak kanıtlamaz. Export scope ve field inspection ayrı control’dür; filtered table bütün journey’yi kapsamayabilir.
- Browser observation bundle
- Minimal public projection / credential headers excluded
- Provenance/privacy gate
- Header filtering only / anonymization not proven
- Server/evidence boundary
- Verdict yok
- Paylaşım ihtiyacı authority kararından ayrıldı
Observation bundle başka reader’a data taşır; minimum needed fields seçilir. Account veya private response eklemek bu public fixture’ın kapsamı değildir. Exact fields’in excluded olması bütün future captures’ın güvenli olduğu sonucu vermez.
- Browser observation bundle
- Minimal public projection / credential headers excluded
- Provenance/privacy gate
- Header filtering only / anonymization not proven
- Server/evidence boundary
- Share only scoped fields / future captures need review
- Timing phase names cause verdict’i taşımadı
Phase names Waiting (TTFB) ve Content Download’dur; inventedDurationMs null ve serverDatabaseDurationKnown false’tur. TTFB label’ı slow database proof değildir. Initiator script de trusted actor identity vermez.
- Browser observation bundle
- Timing names only / DB duration unknown
- Provenance/privacy gate
- Header filtering only / anonymization not proven
- Server/evidence boundary
- Share only scoped fields / future captures need review
- Observation ile hypothesis ayrı tutuldu
Script initiation browser provenance bilgisi, database cause ise ayrı hypothesis’tir. Gözlenmeyen duration veya server process eklenmez. Cause için yetkili scope’ta ayrıca application/server evidence gerekir.
- Browser observation bundle
- Timing names only / DB duration unknown
- Provenance/privacy gate
- Browser initiation known / server cause separate
- Server/evidence boundary
- Share only scoped fields / future captures need review
- Privacy verdict bounded projection’da kaldı
Bu bundle public placeholders ve seçilen alanların çıkarılmasını kullanır. Gerçek HAR format/export veya bütün anonymization process ölçülmez. Paylaşım review’ü capture scope ve required fields’i açık tutarak full-journey claim’inden kaçınır.
- Browser observation bundle
- Timing names only / DB duration unknown
- Provenance/privacy gate
- Browser initiation known / server cause separate
- Server/evidence boundary
- Minimal projection scoped / full HAR unmeasured
VARSAYIM · SINIR · KONTROL
Görünür state’i authority sayma
Local DOM text veya storage value backend permission’ın yerine konursa gözlem karar sınırını aşar. Preview yazan bir node application response’unu farklı gösterebilir; bu normal client edit’inin server object’i değiştirildiğini kanıtladığı söylenemez. Condition local presentation ve authoritative state’in aynı kabul edilmesidir; impact bunu kullanan application decision’a bağlıdır. Bu ders server policy bypass deneyi üretmez.
Console’un yeşil veya sakin görünmesi de request’lerin successful olduğu anlamına gelmez. Logger, filter, context ve capture zamanı bazı olayları dışarıda bırakabilir. 404/fulfilled Fetch/result text’i yan yana okuyunca completed log’unun tam olarak ne söylediği görülür. Kontrol original response, active DOM ve application outcome’u request/navigation identity’siyle bağlamak; eksik evidence’i açık bırakmaktır.
Export yeni veri paylaşımıdır
Sanitized HAR header filtering’i bütün content privacy’si gibi yorumlanırsa query/body’de kalan hassas application data istemeden taşınabilir. Ayrıca filtered table’dan export bütün journey’yi kapsamayabilir. Condition export scope ve field inspection’ın atlanmasıdır; burada yalnız public note path’i ve harmless text paylaşılır, credentials/cookies/account data capture edilmez.
Timing veya Initiator’tan gözlenmeyen server behavior türetmek yanlış incident narrative yaratabilir. TTFB tek başına slow database ispatı, script initiator tek başına trusted actor kanıtı değildir. Kontrol measured phase ile inferred hypothesis’i ayrı tutmak, gerekirse application/server evidence’i yetkili kapsamda ayrıca edinmektir. Browser observation failure’ı compromise ilan etmek yerine hangi field’in gerçekten bulunduğunu kaydet.
3. Blue · Güvenli geliştirme ve savunma
Hareket olmadan bütün senaryoları oku
Correlated review
- Capture scope action öncesi seçildi
Bu bundle bir authored gözlem projection’ıdır; yeni DevTools capture’ı değildir. Network satırı browser’ın request/response gözlemine, Elements current DOM’a, Console mesajı application logger’ına, theme kaydı ise origin-scoped localStorage’a karşılık gelir. Capture-gap dalında sayfanın sonuç göstermesi, geç açılan panelin eski request’i kaydettiğini göstermez; server session store burada gözlenmez. openedBeforeAction ve recording true, context top ve filter public-note’tur. Preserve log false olarak verilmiştir. Scope bilinmeden visible rows bütün historical exchange’leri kapsıyor diye kabul edilmez.
- Capture observations
- Before action / recording / top / public-note
- Correlation review
- Review bekliyor
- Evidence conclusion
- Verdict yok
- Network row aynı exchange’in fields’iyle eşleşti
GET /notes/missing, status 404, body Not found ve bodyComplete true’dur. Initiator script ve fulfilled Response ayrı fields’dir. Body completion ile HTTP acceptance ok false aynı observation’da beraber bulunabilir.
- Capture observations
- Before action / recording / top / public-note
- Correlation review
- GET missing / 404 / complete Not found
- Evidence conclusion
- Verdict yok
- Elements ve Console aynı success event’i olmadı
Live DOM Not found, Console request completed taşır. Logger application’dır; local Preview ayrı edit’tir. Context top seçimi frame log’larını temsil etmez. UI text ve log label’ı network status yerine konmaz.
- Capture observations
- DOM Not found / application completed log / local Preview
- Correlation review
- GET missing / 404 / complete Not found
- Evidence conclusion
- Verdict yok
- Storage record authoritative server record’dan ayrıldı
Theme dark client preference’tır; serverTitle Atlas note korunur ve server mutation false’tur. Storage originAlias local-fixture-origin’dir. Başka context’in storage değerini silmek otomatik olarak server düzeltmesi değildir.
- Capture observations
- DOM Not found / application completed log / local Preview
- Correlation review
- Client theme dark / authoritative title unchanged
- Evidence conclusion
- Verdict yok
- Observation sonucu en küçük evidence scope’uyla verildi
Public GET 404, local DOM update ve client preference kaydı bilinir. Backend session veya DB duration bilinmez. Bu synthetic projection, DevTools panel UI veya HAR export testinin tamamı değildir; surfaces’ın farkını öğretir.
- Capture observations
- DOM Not found / application completed log / local Preview
- Correlation review
- Client theme dark / authoritative title unchanged
- Evidence conclusion
- Exchange/client effects known / backend scope unknown
- Reproducibility fields’leri minimum scope’ta tutuldu
Method/path/status, capture start, filter/context ve bodyComplete review için kaydedilir. Full query, cookie veya private body taşınmaz. Yeni observation başka seçilen context’teyse correlation yeniden kontrol edilmelidir.
- Capture observations
- DOM Not found / application completed log / local Preview
- Correlation review
- Client theme dark / authoritative title unchanged
- Evidence conclusion
- Retain scoped capture/context/status/body state
Late capture
- Recording başlangıcı historical action’dan ayrıldı
Bu bundle bir authored gözlem projection’ıdır; yeni DevTools capture’ı değildir. Network satırı browser’ın request/response gözlemine, Elements current DOM’a, Console mesajı application logger’ına, theme kaydı ise origin-scoped localStorage’a karşılık gelir. Capture-gap dalında sayfanın sonuç göstermesi, geç açılan panelin eski request’i kaydettiğini göstermez; server session store burada gözlenmez. captureGap openedBeforeAction false ve visibleRequestRows 0 verir. Empty table, capture başlamadan önceki exchange’i göstermeyebilir. Bu zero rows normal no-request observation’ıyla aynı evidence değildir.
- Capture observations
- Late capture / visible rows0
- Correlation review
- Review bekliyor
- Evidence conclusion
- Verdict yok
- Filter ve context coverage gate’inde kaldı
Recording time, seçilen context ve filter historical request coverage’ını etkiler. Event yokken guessed network failure veya successful no-op üretilmez. Before-action capture record’u yeni trace’in boşluğunu doldurmaz.
- Capture observations
- Late capture / visible rows0
- Correlation review
- Historical coverage incomplete
- Evidence conclusion
- Verdict yok
- DOM sonucu missing network event’i yaratmadı
Not found veya Preview text’i local DOM’da görülebilir. Bu text’in hangi exchange’den geldiği eksik network observation olmadan kesinleştirilmez. Current DOM, original response provenance’ın bütününü sağlamaz.
- Capture observations
- DOM text exists / historical exchange source unknown
- Correlation review
- Historical coverage incomplete
- Evidence conclusion
- Verdict yok
- Yeni capture historical kanıt sayılmadı
Benign action yeniden gözlense yeni exchange oluşur; eski missing event geriye dönük yaratılmaz. Source/version ve action identity farkı korunur. New result, önceki unknown outcome’un birebir ölçümü gibi yazılmaz.
- Capture observations
- DOM text exists / historical exchange source unknown
- Correlation review
- New capture ≠ reconstructed historical event
- Evidence conclusion
- Verdict yok
- Historical request verdict unknown kaldı
Bu late capture için historical exchange unobserved olur. No request, successful response veya compromise sonucu çıkarılmaz. Missing row’un cause’u logging/capture policy’den de kaynaklanabilir; evidence olmadan birine bağlanmaz.
- Capture observations
- DOM text exists / historical exchange source unknown
- Correlation review
- New capture ≠ reconstructed historical event
- Evidence conclusion
- UNKNOWN: historical exchange
- Yeni evidence capture contract’ına bağlandı
İlerlemek için scoped capture timing, filters, context ve gerekiyorsa server request association gerekir. Full user journey veya private logs toplamak şart değildir. Minimal projection limits başka reader’ın unknown sonucu doğru yorumlamasını sağlar.
- Capture observations
- DOM text exists / historical exchange source unknown
- Correlation review
- New capture ≠ reconstructed historical event
- Evidence conclusion
- Needed: capture timing/filter/context/request association
UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA
Tek request için karşılaştırma defteri
Bu bundle bir authored gözlem projection’ıdır; yeni DevTools capture’ı değildir. Network satırı browser’ın request/response gözlemine, Elements current DOM’a, Console mesajı application logger’ına, theme kaydı ise origin-scoped localStorage’a karşılık gelir. Capture-gap dalında sayfanın sonuç göstermesi, geç açılan panelin eski request’i kaydettiğini göstermez; server session store burada gözlenmez. Harmless local note action’ından önce Network recording’i aç ve filter/context seçimini kaydet. Method GET, path /notes/missing, status404 ve content Not found’un aynı exchange’e ait olduğunu kontrol et. Fetch fulfillment’ın status check’ini otomatik yapmadığını ve Console message’ının application tarafından üretildiğini gözle. Response body henüz complete değilse absent content’i boş successful result gibi raporlama.
Elements’te result node’unun Loading’dan Not found’a geçişini original document response’u ile karşılaştır. Console top/frame seçimini ve Application Storage origin’ini kaydet. Local edit Preview, localStorage theme=dark ve serverTitle Atlas note ayrı owner’lara bağlıdır. Server mutation veya permission değişimi gözlenmediyse bunları “kanıtlandı” diye yazma. Bir state’i düzeltmek için başka context’in değerini silmek de otomatik çözüm değildir.
Observation sınırını teslimde koru
Network Timing’de görülen phase’leri isimleriyle tut; server database duration için değeri absent bırak. Initiator script ise bunun browser initiation evidence’i olduğunu belirt. Recording geç açılmış branch’te empty table yalnız capture gap’tir. Tekrar observation yapılıyorsa action’ın benign ve local kaldığını, yeni capture’ın önceki missing evidence’i geriye dönük yaratmadığını koru.
Paylaşılacak observation bundle’ında excludedHeaderNames ile incelenen URL/body alanlarını açık tut. Public local örneğin minimal projection’ı, full HAR’ın format ve content kontrolüyle aynı iş değildir. Başkasının gerçek journey’sini eklemek yerine gereken field’leri izinli kapsamda seç; account bilgisi veya özel response’u taşımamaya dikkat et. Raporda selected context, capture başlangıcı, filter ve body completion durumunu yaz. Bu ayrıntılar başka bir okuyucunun empty table veya farklı DOM sonucunu doğru yorumlamasına yardım eder.
ŞİMDİ VAKAYA UYGULA
Network, live DOM, Console ve Storage farklı authority ve coverage sorularını nasıl yanıtlar?
Bir not isteği 404 ve Not found döndürüyor, fakat application Console’a request completed yazıyor. Elements’te yapılan yerel değişiklik Preview metnini gösterirken server’daki Atlas note başlığı korunuyor. Bu farkı açıklamak için Network, DOM ve server kayıtlarının hangi aşamayı gösterdiğini birlikte okuyacağız.
Vakadaki response receipt, parsing, callback ve görünür DOM sonucunu sıraya koy. Eski başlığın kalmasını bu dersteki browser state ayrımlarıyla açıklamayı dene.
Bağlı vaka dosyasını aç ↗ÖRNEĞİ BİRLİKTE OKUYALIM
Bir request, dört evidence yüzeyi
Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.
Ham kaydı ve alan açıklamalarını oku
{
"capture": {
"openedBeforeAction": true,
"recording": true,
"preserveLogSupplied": false,
"selectedContext": "top",
"filterScope": "public-note"
},
"network": {
"method": "GET",
"path": "/notes/missing",
"status": 404,
"body": "Not found",
"bodyComplete": true,
"initiator": "script",
"fetchPromiseOutcome": "fulfilled-response",
"ok": false,
"timing": {
"phaseNamesOnly": [
"Waiting (TTFB)",
"Content Download"
],
"inventedDurationMs": null,
"serverDatabaseDurationKnown": false
}
},
"document": {
"responseHTML": "<p id=\"result\">Loading</p>",
"liveDOMAfterScript": "<p id=\"result\">Not found</p>",
"liveDOMAfterLocalEdit": "<p id=\"result\">Preview</p>",
"serverTitleBefore": "Atlas note",
"serverTitleAfterLocalEdit": "Atlas note",
"serverMutationObserved": false
},
"console": {
"selectedContext": "top",
"message": "request completed",
"messageAuthor": "application",
"provesHTTP200": false
},
"storage": {
"originAlias": "local-fixture-origin",
"localStorage": {
"theme": "dark"
},
"serverSessionStoreObserved": false,
"cacheStorageIsHTTPCache": false
},
"sharing": {
"format": "minimal observation projection; not full HAR",
"excludedHeaderNames": [
"Cookie",
"Set-Cookie",
"Authorization"
],
"retainedQuery": "none",
"retainedBody": "public Not found text only",
"fullAnonymizationProven": false
},
"captureGap": {
"openedBeforeAction": false,
"visibleRequestRows": 0,
"conclusion": "historical exchange unobserved; not proof of no request"
},
"selector": {
"language": "XPath",
"xml": "<observations><decision evidence=\"local-dom\" serverMutationClaim=\"false\"/></observations>",
"xpath": "count(/observations/decision[@evidence=\"local-dom\" and @serverMutationClaim=\"true\"])",
"expected": 0,
"positiveFixtureXml": "<observations><decision evidence=\"local-dom\" serverMutationClaim=\"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."
}
}- network / capture
- Exchange field’leri capture kapsamıyla okunur; invented timing yok.
- document / console
- Original HTML, live DOM ve application log farklı observation’dır.
- storage
- Client preference backend session/permission kanıtı değildir.
- sharing / captureGap
- Minimal projection ve missing evidence sınırları explicit.
Inert synthetic projection; gerçek HAR/log veya secret içermez. Native CDP observation, DevTools panel UI/HAR export test’i değildir.
İki yanlış kanı
Elements’te text’i değiştirince server data değişmiştir.
Elements live DOM’u gösterir; local text edit’i original response veya backend mutation kanıtı değildir.
Sanitized HAR bütün application data’yı anonimleştirir.
Hassas headers dışarıda kalabilir; retained query/body ve export scope ayrıca incelenmelidir.
SIRA SENDE
Bu hikâyeyi sen çöz.
Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.
DevTools action’dan sonra açıldı; visibleRequestRows=0. Hiç request olmadığını söyleyebilir miyiz?
- Hayır. Önceki exchange gözlenmemiş olabilir.
- Evet. Boş Network tab bütün geçmiş request’leri dışlar.
Gerekçeli cevabı oku
Hayır. Önceki exchange gözlenmemiş olabilir. — openedBeforeAction=false gözlem boşluğunu gösterir. Sıfır row, event’in hiç olmadığını kanıtlamaz.
Yerel DOM Preview edit’i server’daki title’ı değiştirdi mi?
Dersten seçilen artifact alanları; öğretim örneği
- document.liveDOMAfterLocalEdit
- <p id="result">Preview</p>
- document.serverTitleBefore
- Atlas note
- document.serverTitleAfterLocalEdit
- Atlas note
- document.serverMutationObserved
- false
- Evet. Görünen text bütün persistence state’ini günceller.
- Hayır. Server title Atlas note kalır; mutation gözlenmez.
Gerekçeli cevabı oku
Hayır. Server title Atlas note kalır; mutation gözlenmez. — Elements panelindeki yerel edit yalnız bu browser tree’yi değiştirir. Server write kanıtı sağlamaz.
Console’daki request completed mesajı ile Network 404 birlikte ne öğretir? Cookie’leri çıkarmak neden tam anonimleştirme değildir?
Gerekçeli cevabı oku
Console mesajı application completion bildirimidir; HTTP 200 kanıtı değildir. 404 Response fulfilled olabilir ve ok=false kalır. Paylaşılacak gözlem yalnız public body ve dar metadata içerebilir. Cookie/Authorization alanlarını çıkarmak kapsamı azaltır, fakat query, body veya diğer identifier’larda kalan bilgiyi kendiliğinden anonimleştirmez.
□ Console mesajını HTTP status yerine kullanmadım.
□ Veri minimization ile tam anonimleştirmeyi ayırdım.
Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç
Kaynaklar ve kapsam
- Chrome DevTools — Network features referenceRecord network requests · Save requests across page loads · View a log of requests · Timing breakdown phases explained · View initiators and dependencies · Save all network requests to a HAR file
- Chrome DevTools — Viewing and changing the DOMView DOM nodes · Edit DOM nodes · HTML versus the DOM
- Chrome DevTools — Console features referenceFilter out messages from different contexts · Select JavaScript context
- Chrome DevTools — View and edit local storageView localStorage keys and values · Edit localStorage keys or values · Interact with localStorage from the Console
- Chrome DevTools — View cache dataView cache data · Refresh a resource
- MDN — Using the Fetch APICanceling a request · Handling the response · Checking response status · Reading the response body