COMPUTER ENGINEER

Örneklere git
Blog
HTTP / HTTPS / TLS6 dk çalışma
53/ 70

Cache ve koşullu istekler

ETag, Last-Modified ve 304

Değişmeyen içerik için tekrar gövde indirme.

AnlaÖrneği inceleKendin uygula

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.

NERESİNDE KULLANIRSIN?

Gövde transferini azaltırken güncelliği korumak için.

SIK YAPILAN HATA

304 yanıtını JSON olarak parse etmek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

HTTP / temsili örnek
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.

02 / SIRA SENDE

Önce kendin dene.

304 yeni blog metnini gövde olarak taşır mı?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
304 → reuse stored representation

Hayır; geçerli saklanan temsil gerekir.