Awalnya hanya ada 302
| Response | What browsers should do |
|------------------------|---------------------------|
| 302 Found | Redo request with new url |
Idenya adalah:
- jika Anda melakukan
GET
di beberapa lokasi, Anda akan mengulangiGET
ke URL baru
- jika Anda melakukan
POST
di beberapa lokasi, Anda akan mengulangiPOST
ke URL baru
- jika Anda melakukan
PUT
di beberapa lokasi, Anda akan mengulangiPUT
ke URL baru
- jika Anda melakukan
DELETE
di beberapa lokasi, Anda akan mengulangiDELETE
ke URL baru
- dll
Sayangnya setiap browser melakukan kesalahan. Saat mendapatkan 302
, mereka akan selalu beralih ke GET
URL baru, alih-alih mencoba kembali permintaan dengan kata kerja yang sama ( misalnya , POST
):
- Mosaic melakukan kesalahan
- Netscape menyalin bug di Mosaic; jadi mereka salah
- Internet Explorer menyalin bug di Netscape; jadi mereka salah
Itu menjadi salah secara de facto .
Semua browser 302
salah. Jadi 303
dan 307
diciptakan.
| Respon | Browser apa yang harus dilakukan | Apa yang sebenarnya dilakukan browser | | ------------------------ | ------------------------ --- | --------------------------- | | 302 Ditemukan | Ulangi permintaan dengan url baru | DAPATKAN dengan url baru | | 303 Lihat Lainnya | DAPATKAN dengan url baru | DAPATKAN dengan url baru | | 307 Redirect Sementara | Ulangi permintaan dengan url baru | Ulangi permintaan dengan url baru |
Dalam bentuk bagan
5 jenis pengalihan yang berbeda:
╔═══════════╤════════════════════════════════════════════════╗
║ │ Switch to GET? ║
║ Temporary │ No │ Yes ║
╠═══════════╪════════════════════════╪═══════════════════════╣
║ No │ 308 Permanent Redirect │ 301 Moved Permanently ║
╟───────────┼────────────────────────┼───────────────────────╢
║ Yes │ 307 Temporary Redirect │ 303 See Other ║
║ │ 302 Found (intended) │ 302 Found (actual) ║
╚═══════════╧════════════════════════╧═══════════════════════╝
Kalau tidak:
| Response | Switch to get? | Temporary? |
|--------------------------|----------------|------------|
| 301 Moved Permanently | No | No |
| 302 Found (intended) | No | Yes |
| 302 Found (actual) | Yes | Yes |
| 303 See Other | Yes | Yes |
| 307 Temporary Redirect | No | Yes |
| 308 Permanent Redirect | No | No |