Zasób jest tymczasowo pod innym URL-em.
Kiedy go używać
Krótkotrwałe przekierowania. Klient może zmienić POST na GET; aby było jednoznacznie, wybierz 303 lub 307.
Warto wiedzieć
Używaj 302, gdy pierwotny URL wróci: tymczasowa strona serwisowa, test A/B, przekierowanie do logowania lub wybór języka. Wyszukiwarki zachowują w indeksie pierwotny URL, choć Google zaczyna traktować 302 utrzymywane miesiącami jak stałe. Przeglądarki nie cache'ują 302, chyba że każe im to Cache-Control lub Expires, co czyni go bezpiecznym wyborem, dopóki testujesz przekierowania.
Przeglądarki od dawna zamieniają POST na GET, podążając za 302, i odrzucają treść, a specyfikacja teraz na to pozwala. Jeśli metoda musi zostać zachowana, użyj 307; po wysłaniu formularza użyj 303, by wyrazić to jawnie. Częsty błąd to pętla przekierowań między http i https albo między www a domeną bez www, często powodowana przez proxy lub tryb Flexible SSL w Cloudflare. Prześledź łańcuch poleceniem curl -IL.
Przekierowanie (3xx)
Kody 3xx to przekierowania: aby dokończyć żądanie, klient musi przejść gdzie indziej albo użyć kopii z pamięci podręcznej.
Jak to wygląda
HTTP/1.1 302 FoundJak go wysłać
| Node.js / Express | res.redirect(302, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=302) |
| nginx | return 302 https://example.com$request_uri; |
Jak go sprawdzić
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/