Tinjauan tentang 301
, 302
dan307
The RFC 7231 , referensi saat ini untuk semantik dan isi HTTP / 1.1 protokol, mendefinisikan 301
(Dipindahkan Secara Permanen) dan 302
(Ditemukan) kode status, yang memungkinkan metode permintaan akan berubah dari POST
ke GET
. Spesifikasi ini juga menentukan 307
kode status (Pengalihan Sementara) yang tidak mengizinkan metode permintaan diubah dari POST
menjadi GET
.
Lihat detail selengkapnya di bawah ini:
6.4.2. 301 Pindah Secara Permanen
The 301
(Dipindahkan Secara Permanen) kode status menunjukkan bahwa sumber daya sasaran telah ditetapkan URI permanen baru dan masa depan setiap referensi untuk sumber daya ini harus menggunakan salah satu dari URI tertutup. [...]
Catatan: Karena alasan historis, agen pengguna DAPAT mengubah metode permintaan dari POST
menjadi GET
untuk permintaan berikutnya. Jika perilaku ini tidak diinginkan, 307
kode status (Pengalihan Sementara) dapat digunakan sebagai gantinya.
6.4.3. 302 Ditemukan
The 302
(Ditemukan) kode status menunjukkan bahwa sumber daya sasaran berada sementara di bawah URI yang berbeda. Karena pengalihan terkadang dapat diubah, klien harus terus menggunakan URI permintaan yang efektif untuk permintaan di masa mendatang. [...]
Catatan: Karena alasan historis, agen pengguna DAPAT mengubah metode permintaan dari POST
menjadi GET
untuk permintaan berikutnya. Jika perilaku ini tidak diinginkan, 307
kode status (Pengalihan Sementara) dapat digunakan sebagai gantinya.
6.4.7. 307 Pengalihan Sementara
The 307
(Temporary Redirect) kode status menunjukkan bahwa Resides sumber daya sasaran sementara di bawah URI yang berbeda dan agen pengguna TIDAK HARUS mengubah metode permintaan jika melakukan suatu pengalihan otomatis untuk URI. Karena pengalihan dapat berubah seiring waktu, klien harus terus menggunakan URI permintaan efektif asli untuk permintaan di masa mendatang. [...]
Catatan: Kode status ini mirip dengan 302
(Ditemukan), kecuali kode status ini tidak mengizinkan perubahan metode permintaan dari POST
menjadi GET
. Spesifikasi ini tidak mendefinisikan mitra yang setara untuk 301
(Pindah Permanen) ( RFC 7238 , bagaimanapun, mendefinisikan kode status 308
(Pengalihan Permanen) untuk tujuan ini).
Kebutuhan untuk 308
The RFC 7238 telah dibuat untuk menentukan 308
(Permanent Redirect) kode status, yang mirip dengan 301
(Dipindahkan Secara Permanen) tetapi tidak memungkinkan metode permintaan akan berubah dari POST
ke GET
.
The 308
kode status sekarang didefinisikan oleh RFC 7538 (yang usang tersebut RFC 7238 ).
3. 308 Pengalihan Permanen
The 308
(Permanent Redirect) kode status menunjukkan bahwa sumber daya sasaran telah ditetapkan URI permanen baru dan masa depan setiap referensi untuk sumber daya ini harus menggunakan salah satu dari URI tertutup. Klien dengan kemampuan pengeditan tautan harus secara otomatis menautkan ulang referensi ke URI permintaan efektif ke satu atau beberapa referensi baru yang dikirim oleh server, jika memungkinkan. [...]
Catatan: Kode status ini mirip dengan 301
(Dipindahkan Secara Permanen), kecuali kode status ini tidak mengizinkan perubahan metode permintaan dari
POST
menjadi GET
.
Se kita memiliki yang berikut:
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn't allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
Memilih kode status yang paling sesuai
Michael Kropat menyusun serangkaian bagan keputusan yang membantu menentukan kode status terbaik untuk setiap situasi. Lihat berikut untuk 2xx
dan 3xx
kode status: