Beberapa artikel yang saya baca pernah mengatakan bahwa itu berarti melompat (dari satu URI ke URI lainnya), tetapi saya mendeteksi "302" ini bahkan ketika sebenarnya tidak ada lompatan sama sekali!
Beberapa artikel yang saya baca pernah mengatakan bahwa itu berarti melompat (dari satu URI ke URI lainnya), tetapi saya mendeteksi "302" ini bahkan ketika sebenarnya tidak ada lompatan sama sekali!
Jawaban:
Pengalihan 302 berarti halaman dipindahkan sementara, sedangkan 301 berarti dipindahkan secara permanen.
301 baik untuk nilai SEO, sedangkan 302 bukan karena 301 menginstruksikan klien untuk melupakan nilai URL asli, sedangkan 302 menyimpan nilai asli dan dengan demikian berpotensi mengurangi nilai dengan membuat dua, URL yang secara logis berbeda yang masing-masing menghasilkan konten yang sama (mesin telusur melihatnya sebagai duplikat berbeda, bukan sebagai sumber daya tunggal dengan dua nama).
Pertanyaan ini sudah lama ditanyakan, saat RFC 2616 masih berkeliaran. Beberapa jawaban atas pertanyaan ini didasarkan pada dokumen yang sudah tidak relevan lagi saat ini. Mengutip Mark Nottingham yang, pada saat penulisan, memimpin bersama Kelompok Kerja HTTP dan QUIC IETF:
Jangan gunakan RFC2616 . Hapus dari hard drive, bookmark, dan bakar (atau daur ulang secara bertanggung jawab) setiap salinan yang dicetak.
RFC 2616 lama telah digantikan oleh dokumen berikut yang, bersama-sama, menentukan protokol HTTP / 1.1:
Jadi saya bertujuan untuk memberikan jawaban berdasarkan RFC 7231 yang merupakan referensi saat ini untuk kode status HTTP / 1.1.
302
kode statusTanggapan dengan 302
adalah cara umum melakukan pengalihan URL. Bersama dengan 302
kode status, respons harus menyertakan Location
header dengan URI berbeda. Header tersebut akan diurai oleh agen pengguna dan kemudian melakukan pengalihan:
Browser web dapat berubah dari POST
menjadi GET
dalam permintaan berikutnya. Jika perilaku ini tidak diinginkan, 307
kode status (Pengalihan Sementara) dapat digunakan sebagai gantinya.
Ini adalah bagaimana 302
kode status didefinisikan di RFC 7231 :
Itu
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.Server HARUS membuat
Location
kolom header dalam respons yang berisi referensi URI untuk URI yang berbeda. Agen pengguna DAPAT menggunakan nilaiLocation
bidang untuk pengalihan otomatis. Muatan respons server biasanya berisi catatan hypertext pendek dengan hyperlink ke URI yang berbeda.Catatan: Karena alasan historis, agen pengguna DAPAT mengubah metode permintaan dari
POST
menjadiGET
untuk permintaan berikutnya. Jika perilaku ini tidak diinginkan,307
kode status (Pengalihan Sementara) dapat digunakan sebagai gantinya.
Menurut dokumen web MDN dari Mozilla , kasus penggunaan tipikal untuk 302
adalah:
Halaman Web untuk sementara tidak tersedia karena alasan yang tidak terduga. Dengan begitu, mesin telusur tidak memperbarui tautannya.
The RFC 7231 mendefinisikan kode status berikut untuk pengalihan:
The RFC 7238 diciptakan untuk mendefinisikan kode status lain untuk pengalihan:
308
(Pengalihan Permanen)Lihat jawaban ini untuk detail lebih lanjut.
Location
header adalah hal yang membantu saya). Ternyata saya menelepon layanan dengan http
dan mereka pindah ke https
, yang saya dapatkan sebagai tanggapan adalah 302
, segera setelah saya membaca Location
header di sini, saya melihat http/https
perbedaannya. Terima kasih!
Cara sederhana untuk melihat pengalihan HTTP 301 vs. 302 adalah:
Misalkan Anda memiliki bookmark ke " http://sample.com/sample ". Anda menggunakan browser untuk pergi ke sana.
Pengalihan 302 ke URL yang berbeda pada saat ini berarti Anda harus menyimpan bookmark Anda ke " http://sample.com/sample ". Ini karena URL tujuan mungkin berubah di masa mendatang.
Pengalihan 301 ke URL yang berbeda berarti bahwa bookmark Anda harus berubah untuk mengarah ke URL baru karena ini adalah pengalihan permanen.
Dari RFC 2616 (Spesifikasi Protokol Transfer Hiperteks) :
10.3.3 302 Ditemukan Sumber daya yang diminta berada sementara di bawah URI yang berbeda. Karena pengalihan terkadang dapat diubah, klien HARUS terus gunakan URI Permintaan untuk permintaan di masa mendatang. Tanggapan ini hanya dapat disimpan dalam cache jika diindikasikan oleh header Kontrol-Cache atau Kedaluwarsa bidang. URI sementara HARUS diberikan oleh bidang Lokasi di tanggapan. Kecuali metode permintaannya adalah HEAD, entitas dari respons HARUS berisi catatan hypertext pendek dengan hyperlink ke URI baru.
Sumber:
Dari Wikipedia :
Kode status tanggapan HTTP 302 Ditemukan adalah cara paling umum untuk melakukan pengalihan. Ini adalah contoh praktik industri yang bertentangan dengan standar.
Sesuai definisi kode status http, 302 menunjukkan pengalihan (sementara). "Sumber daya yang diminta berada sementara di bawah URI yang berbeda"
302 adalah respons yang menunjukkan perubahan lokasi sumber daya - "Ditemukan".
Url tempat sumber daya seharusnya berada sekarang harus berada di tajuk 'Lokasi' respons.
"Lompatan" harus dilakukan oleh klien yang meminta (buat permintaan baru ke url sumber daya di bidang tajuk Lokasi respons).
Dalam hal SEO, 301 dan 302 keduanya bagus tergantung situasi,
Jika hanya satu versi yang dapat dikembalikan (yaitu, yang lain mengalihkan ke sana), itu bagus! Perilaku ini menguntungkan karena mengurangi konten duplikat. Dalam kasus tertentu pengalihan ke URL garis miring akhir, hasil penelusuran kami kemungkinan akan menampilkan versi URL dengan kode tanggapan 200 (paling sering URL garis miring) - terlepas dari apakah pengalihannya adalah 301 atau 302.
Kode HTTP 302 untuk pengalihan lihat http://en.wikipedia.org/wiki/HTTP_302 .
Ini memberitahu browsing membaca halaman untuk pergi ke tempat lain dan memuat halaman lain. Penggunaannya sangat umum.
Menurut RFC 1945 / Hypertext Transfer Protocol - HTTP / 1.0 :
302 Moved Temporarily
The requested resource resides temporarily under a different URL.
Since the redirection may be altered on occasion, the client should
continue to use the Request-URI for future requests.
The URL must be given by the Location field in the response. Unless
it was a HEAD request, the Entity-Body of the response should
contain a short note with a hyperlink to the new URI(s).
If the 302 status code is received in response to a request using
the POST method, the user agent must not automatically redirect the
request unless it can be confirmed by the user, since this might
change the conditions under which the request was issued.
Note: When automatically redirecting a POST request after
receiving a 302 status code, some existing user agents will
erroneously change it into a GET request.
CONTOH: - Meskipun tidak terlalu umum bahwa kami membutuhkan pengalihan 302, opsi ini bisa sangat berguna dalam beberapa kasus. Ini adalah kasus yang paling sering terjadi:
Pengalihan 302 adalah kode yang memberi tahu pengunjung URL tertentu bahwa halaman telah dipindahkan sementara, mengarahkan mereka langsung ke lokasi baru.
Dengan kata lain, pengalihan 302 diaktifkan saat robot Google atau mesin telusur lain meminta untuk memuat laman tertentu. Pada saat itu, berkat pengalihan ini, server mengembalikan respons otomatis yang menunjukkan URL baru.
Dengan cara ini kesalahan dan gangguan dihindari baik untuk mesin pencari dan pengguna, menjamin navigasi yang lancar.
Untuk lebih jelasnya Lihat Artikel ini .
Kode status 302 adalah kode status respons HTTP yang menunjukkan bahwa sumber daya yang diminta telah dipindahkan untuk sementara ke URI yang berbeda. Karena lokasi atau arahan pengalihan saat ini mungkin berubah di masa mendatang, klien yang menerima kode respons 302 Found harus terus menggunakan URI asli untuk permintaan di masa mendatang.
Respons HTTP dengan kode status ini juga akan memberikan URL di kolom header, Lokasi. Ini adalah undangan ke agen pengguna (misalnya browser web) untuk membuat permintaan kedua, jika tidak identik, ke URL baru yang ditentukan di bidang lokasi. Hasil akhirnya adalah pengalihan ke URL baru.
Bagi siapa pun yang mungkin ingin tahu tentang penamaannya, saya hanya akan menambahkan bahwa ini mungkin disebut "Ditemukan" karena sumber daya utama (misalnya, halaman web pribadi) yang ingin diterima pengguna tidak tersedia pada saat itu (misalnya, pengguna belum membuktikan identitasnya), jadi server telah menemukan sumber daya baru yang dapat diterima pengguna (yang merupakan laman masuk dalam kasus penggunaan paling umum).
Juga "tersesat dan ditemukan" dengan cara petak umpet, yang berarti sumber daya yang hilang dengan status 302 hanya hilang sementara , tidak seharusnya hilang selamanya (kecuali jika pemain memiliki niat buruk;)).