Önbelleklenebilen HTTP Durum Kodları

HTTP 200 OK

1 aydır yazmıyorum. Bu yazıda HTTP durum kodlarına değineceğim. Bu durum kodları önbelleklenebilir durum kodlarıdır. Çoğu HTTP durum kodunu zaten biliyoruz. Kimileri buna HTTP hata kodları demeyi tercih ediyor.

/images/posts/http200.jpg

Bu konuyu aslında @heartsmagic ile başlattığımız bir thread üzerine yazma kararı aldım. Gerçekten faydalı birçok bilgiyi de öğrendim. Konuya girmeden önce konu RFC 7231 altında yayınlı tanımlamalara dayanan bilgiler içeriyor.

Açıklamalar

Bazı HTTP durum kodları aksi belirtilmediği sürece varsayılan olarak önbelleklenmiş yanıtlar döndürürler. Ayrıca bir diğer açıklama ise kaynak sunucu daima önbellek süresinin ne zaman sona ereceğini size söylemez. Açık bir şekilde önbellek sonlanma zamanı belirtilmemişse heuristic(sezgisel) bir şekilde önbelleğe sonlanma zamanı atanıyor.

Önbelleğin ne zaman sona ereceği, Last Modified gibi başlık üst bilgileri kullanılarak tahmin edilebiliyor. Yani eğer bilinçli olarak bir sona eriş tarihi yoksa, sezgisel olarak bi zaman atanıyor. Burada en önemli bilinmesi gereken ZORUNLULUK eğer HTTP önbelleklemesi açık bir şekilde tanımlanmamışsa, heuristic sonlanma zamanı atanabilir olmalı. Eğer HTTP önbelleklemesi belirtilmişse heuristic tanımlama olamaz.

Durum Kodları

/images/posts/http404.jpg

Bölüm 6.1 der ki;

200, 203, 204, 206, 300, 301, 404, 405, 410, 414 ve 501

nolu durum kodları aksi belirtilmediği sürece varsayılan olarak önbelleklidir. Diğer tüm durum kodları varsayılan olarak önbelleklenebilir değildir.

Durum Kodları

200 OK

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

203 Non-Authoritative Information

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

204 No Content

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

206 Partial Content

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

300 Multiple Choices

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

301 Moved Permanently

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

404 Not Found

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

405 Method Not Allowed

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

410 Gone

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

414 URI Too Long

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

501 Not Implemented

Aksi belirtilmediği taktirde varsayılan olarak önbelleklidir 7234 – 4.2.2

Post İsteğinin Önbelleklenmesi

POST isteği açık bir şekilde belirtildiği taktirde önbelleklenebilir. Aslında istek değil, verilen yanıtlar. Bu karmaşayı en sonda ortadan kaldırmak iyi olur diye düşündüm.

Normalde POST isteğinden dönen yanıtın önbelleklenebilirliğinden çok fazla faydalanılmıyor. Bir post isteğine dönen yanıtın, bu istekten sonra gelecek get tarafından tekrar kullanılabileceği durumlarda nadiren de olsa bu tip önbelleklemeler kullanılabiliyor.