303 See Other

Pobierz wynik z innego URL-a za pomocą GET.

Kiedy go używać

Przekierowanie po wysłaniu formularza metodą POST, aby odświeżenie strony nie wysłało go ponownie.

Warto wiedzieć

303 to właściwy kod dla wzorca Post/Redirect/Get: po wysłaniu formularza metodą POST przekieruj na stronę wyniku kodem 303, żeby przeglądarka załadowała ją przez GET, a odświeżenie strony czy przycisk Wstecz nie wysłały formularza ponownie. W przeciwieństwie do 302 specyfikacja gwarantuje przejście na GET dla każdej pierwotnej metody, także PUT i DELETE, a treść żądania jest odrzucana.

Wyszukiwarki traktują 303 jak przekierowanie tymczasowe, ale rzadko pojawia się ono na URL-ach dostępnych dla crawlerów. Nie jest cache'owane, chyba że nagłówki mówią inaczej. W API 303 może przenieść klienta z zakończonego zadania asynchronicznego do jego wyniku. fetch podąża za nim automatycznie w domyślnym trybie redirect; response.redirected mówi, że nastąpiło przekierowanie, a response.url podaje docelowy adres po GET.

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 303 See Other

Jak go wysłać

Node.js / Expressres.redirect(303, '/new-url')
Python / Flaskreturn redirect('/new-url', code=303)
nginxreturn 303 https://example.com$request_uri;

Jak go sprawdzić

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Otwórz narzędzie Kody statusu HTTP