Durum kodları · 1xx–5xx
3xx: yönlendirmeler ve 304 doğrulama
301/302/303/307/308 seçimleri method ve kullanıcı akışını değiştirir.
Kavramı anlayalım
301 kalıcı, 302 geçici yönlendirmedir. Tarihsel istemci davranışları nedeniyle POST isteği bu kodlarla GET’e dönüşebilir. 307 ve 308 method ile gövdeyi korur; 307 geçici, 308 kalıcıdır. Bir POST formu sonrasında sonucu GET ile göstermek için 303 See Other uygun desen olabilir. Bu, sayfa yenilemede yanlışlıkla yeniden POST yapılmasını azaltır; ödeme gibi işlemlerde yine idempotency gerekir.
304 Not Modified yönlendirme değildir ve Location zorunlu değildir. Koşullu GET veya HEAD sonrasında cache’deki temsil kullanılabilir. 304 gövdesizdir; istemci yeni bir JSON belge beklememelidir. İlgili validator ve cache metadata alanlarını doğru taşımak gerekir. “3xx = yeni sayfa aç” yaklaşımı bu yüzden eksiktir.
Yönlendirme zinciri gecikme üretir, döngü ise isteği bitiremez. Hassas Authorization alanının başka origin’e taşınacağını varsayma; istemci güvenlik politikası değişebilir. Kullanıcı girdisinden sınırsız redirect hedefi üretmek açık yönlendirme riski doğurur. Kalıcı kodları cache ve arama motoru etkisi düşünülmeden kullanma. 300 birden çok tercih, 305 tarihsel/deprecated proxy mekanizması, 306 kullanılmayan koddur.
Form gönderimleri, URL değişimleri ve cache doğrulamasında.
API POST’unu 302 ile taşıyıp gövdenin korunacağını varsaymak.
Aynı konu. Üç farklı derinlik.
HTTP/1.1 303 See Other
Location: /orders/42Form sonucunu GET ile oku.
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.
POST korunarak kalıcı yeni endpoint’e gitsin. Hangi kod?
Çözümü ve açıklamasını göster
HTTP/1.1 308 Permanent Redirect
Location: /api/v2/orders308 method ve gövdeyi koruyan kalıcı yönlendirmedir.