302 Found
Penggunaan
Ketika kode status 302 Found diterima, klien memahami bahwa sumber daya yang diminta telah dipindahkan untuk sementara. Permintaan kedua akan mengambil sumber daya tersebut di lokasi barunya. Cara ini lebih sederhana dibandingkan 301 karena klien tidak diharapkan memperbarui tautan internalnya.
Catatan
Demi kompatibilitas mundur, klien diizinkan mengubah metode permintaan dari POST menjadi GET pada saat redirect. Untuk menghilangkan ambiguitas, server dapat mengembalikan kode status alternatif. Kode status 303 menandakan bahwa redirect harus menggunakan metode GET, sedangkan kode status 307 mengharuskan metode aslinya dipertahankan.
Pemicu umum respons 302 mencakup peningkatan dari HTTP ke HTTPS (sering kali lebih tepat dilayani dengan 301), normalisasi URL (garis miring di akhir), pengujian A/B, perutean konten berbasis geolokasi, dan redirect pemeliharaan sementara.
Catatan
302 adalah redirect yang berhasil, bukan sebuah error. Server menemukan sumber daya tersebut dan mengarahkan klien ke lokasi saat ini. Untuk mengatasi redirect 302 yang tidak diinginkan: pastikan redirect tersebut memang disengaja, ubah menjadi 301 bila perpindahannya permanen, dan periksa pengaturan CMS atau .htaccess untuk aturan yang tidak disengaja.
Kemampuan caching
Respons 302 secara bawaan tidak dapat di-cache. Tidak seperti 301 dan 308, 302 memerlukan header Cache-Control atau Expires secara eksplisit agar dapat disimpan oleh cache.
Dampak SEO
Google memperlakukan 302 sebagai sinyal lemah bahwa target redirect adalah URL yang diutamakan, berbeda dengan 301 yang merupakan sinyal kuat. Google memproses salah satu dari URL sumber atau URL target. 302 yang dibiarkan terpasang dalam jangka panjang pada akhirnya dapat diperlakukan sebagai redirect permanen, sehingga perubahan yang bersifat permanen lebih tepat dilayani dengan 301.
Contoh
Klien meminta sebuah sumber daya yang telah dipindahkan untuk sementara. Server menunjukkan lokasi barunya dan menyediakan pesan yang relevan untuk ditampilkan di sisi klien.
Permintaan
GET /news.html HTTP/1.1
Host: example.com
Respons
HTTP/1.1 302 Found
Location: http://example.com/testing/news.html
Content-Type: text/html
Content-Length: 167
<h1>The Newsfeed has moved</h1>
<body>
The site is under development and the newsfeed has
temporarily moved to
<a href=/testing/news.html>here</a>.
</body>
Referensi kode
.NET
HttpStatusCode.Found
Rust
http::StatusCode::FOUND
Rails
:found
Go
http.StatusFound
Symfony
Response::HTTP_FOUND
Python3.5+
http.HTTPStatus.FOUND
Java
java.net.HttpURLConnection.HTTP_MOVED_TEMP
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_MOVED_TEMPORARILY
Angular
@angular/common/http/HttpStatusCode.Found