Tinjauan tentang 301, 302dan307
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 POSTke GET. Spesifikasi ini juga menentukan 307kode status (Pengalihan Sementara) yang tidak mengizinkan metode permintaan diubah dari POSTmenjadi 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 POSTmenjadi GETuntuk permintaan berikutnya. Jika perilaku ini tidak diinginkan, 307kode 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 POSTmenjadi GETuntuk permintaan berikutnya. Jika perilaku ini tidak diinginkan, 307kode 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 POSTmenjadi 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 POSTke GET.
The 308kode 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
POSTmenjadi 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 2xxdan 3xxkode status:
