Powtórz to samo żądanie pod nowym, stałym URL-em.
Kiedy go używać
Jak 301, ale metoda i treść nie mogą się zmienić.
Warto wiedzieć
308 to stała wersja 307: wyszukiwarki traktują go jak 301 i przenoszą sygnały rankingowe, ale metoda i treść nie mogą się zmienić. Używaj go dla endpointów API, które przyjmują POST, PUT lub PATCH i zostały przeniesione na dobre. Przeglądarki cache'ują go jak 301, więc obowiązuje ta sama ostrożność: błędne 308 może długo tkwić w przeglądarkach użytkowników.
Next.js odpowiada 308 dla przekierowań oznaczonych jako permanent i przy normalizacji końcowego ukośnika, co zaskakuje osoby czytające logi. Bardzo stare klienty, takie jak Internet Explorer 11 na Windows 7, nie rozumieją 308; jeśli nadal je obsługujesz, używaj 301 dla zwykłych stron GET. Podobnie jak 301, odpowiedź 308 jest domyślnie cache'owalna, więc dodaj Cache-Control: max-age, dopóki testujesz nowe przekierowanie.
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 308 Permanent RedirectJak go wysłać
| Node.js / Express | res.redirect(308, '/new-url') |
|---|---|
| Python / Flask | return redirect('/new-url', code=308) |
| nginx | return 308 https://example.com$request_uri; |
Jak go sprawdzić
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/