Cache ve koşullu istekler
ETag, Last-Modified ve 304
Değişmeyen içerik için tekrar gövde indirme.
Kavramı anlayalım
ETag seçilen temsilin opaque version belirtecidir; her zaman dosya hash’i veya veritabanı rowversion olmak zorunda değildir. Client If-None-Match ile doğrular. Temsil değişmediyse GET/HEAD için 304 Not Modified gövdesiz yanıtı ve cache metadata’sı döner; client saklanan temsili kullanır.
Last-Modified/If-Modified-Since zaman bazlı doğrulamadır, zaman hassasiyeti ve clock gibi sınırları vardır. ETag ile birlikte kullanıldığında koşul öncelik kuralları önemlidir. Weak ETag semantik eşdeğerlik için kullanılabilir; güçlü byte eşitliğiyle aynı değildir.
Compression ve dil varyasyonları validator tasarımını etkiler. Tek ETag ile farklı body’leri aynı gibi göstermek doğrulama hatası üretir. 304 yanıtını boş başarılı JSON sanıp JSON parser çalıştırma. DevTools birleştirilmiş cache görünümü gösterdiğinde wire yanıtıyla kullanılabilir temsilin ayrı olduğunu hatırla.
Gövde transferini azaltırken güncelliği korumak için.
304 yanıtını JSON olarak parse etmek.
Aynı konu. Üç farklı derinlik.
HTTP/1.1 200 OK
ETag: "v1"
Cache-Control: max-age=0İlk yanıt validator verir.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
304 yeni blog metnini gövde olarak taşır mı?
Çözümü ve açıklamasını göster
304 → reuse stored representationHayır; geçerli saklanan temsil gerekir.