Perbedaan antara berbagai kode pengalihan HTTP 3XX tidak jelas bagi saya. Ya, saya sudah membaca speknya, tetapi tampaknya ada beberapa perbedaan antara praktik standar dan aktual di sini.
The 301
kode redirect tampaknya cukup jelas: Ini berarti sumber daya secara permanen dipindahkan ke URI lain, dan permintaan masa depan harus menggunakan URI.
Dan 307
kode redirect juga tampak jelas: itu berarti redirect bersifat sementara, dan permintaan di masa depan masih harus menggunakan URI asli.
Tapi saya tidak tahu apa perbedaan antara 302
dan 303
, atau mengapa keduanya benar-benar berbeda 301
. Tampaknya 302
awalnya dimaksudkan sebagai pengalihan sementara , (seperti 307
), tetapi dalam praktiknya, sebagian besar peramban memperlakukannya seperti a 303
. Tapi apa perbedaan antara a 303
dan a 301
? Apakah 301
seharusnya redirect lebih permanen?
sumber
Perbedaan antara 303 dan 307 adalah ini:
303 : Lihat lainnya. Permintaan diterima dengan benar, tetapi hasilnya harus diambil menggunakan GET pada url redirect.
307 : Pengalihan sementara. Seluruh permintaan harus diarahkan ke url baru. Setiap data posting harus diposting kembali.
Perhatikan bahwa 302 dimaksudkan untuk memiliki perilaku 307, tetapi sebagian besar browser menerapkannya sebagai perilaku 303 (keduanya tidak ada saat itu). Oleh karena itu, kedua kode baru diperkenalkan untuk menggantikan 302.
Perbedaan antara 301 dan 303:
301 : Dokumen dipindahkan. Permintaan di masa mendatang harus menggunakan url baru. Url ini sudah usang.
Catatan: Hati-hati dengan kode ini. Peramban dan proksi cenderung menerapkan caching yang sangat agresif, jadi jika Anda membalas dengan 301, mungkin perlu waktu lama bagi seseorang untuk mengunjungi kembali url itu.
303 : Permintaan diterima dengan benar. Setiap permintaan PUT diproses. The dokumen yang dihasilkan dapat diambil dari url redirect. Permintaan di masa mendatang harus tetap ke url asli.
sumber