Jaka jest różnica między kodami HTTP 301
a 308
kodami stanu?
301
(Przeniesione na stałe): To i wszystkie przyszłe żądania powinny być kierowane do podanego URI.308
(Permanent Redirect): Żądanie i wszystkie przyszłe żądania należy powtórzyć przy użyciu innego identyfikatora URI.
Wydają się być podobni.
http
http-status-code-301
http-status-codes
http-status-code-308
Alexander Drobyshevsky
źródło
źródło
Odpowiedzi:
Przegląd
301
,302
i307
RFC 7231 , prąd odniesienia semantyki i zawartości HTTP / 1.1, definiuje
301
(przeniesiony na stałe) i302
(stwierdzono) kod stanu, który umożliwia sposób żądanie być zmienianePOST
w celuGET
. Ta specyfikacja definiuje również307
kod stanu (Przekierowanie tymczasowe), który nie pozwala na zmianę metody żądania zPOST
naGET
.Zobacz więcej szczegółów poniżej:
Potrzeba
308
Dokument RFC 7238 został utworzony w celu zdefiniowania
308
kodu stanu (Permanent Redirect), który jest podobny do301
(Moved Permanently), ale nie pozwala na zmianę metody żądania zPOST
naGET
.308
Kod stanu jest teraz zdefiniowany przez RFC 7538 (który zastąpiony w RFC 7238 ).Oto mamy:
Wybór najbardziej odpowiedniego kodu statusu
Michael Kropat przygotował zestaw wykresów decyzyjnych, które pomagają określić najlepszy kod statusu dla każdej sytuacji. Zobacz następujące informacje
2xx
i3xx
kody stanu:źródło
POST
naGET
” ? Czy oznaczałoby to, że wysłany formularz nie może zostać przetworzony, ale nowy nowy formularz mógłby zostać wysłany na serwer, a następnie wysłany na następne żądanie?POST
(bezpieczne) na zmianę żądania na a doGET
(niebezpieczne w tych danych jest przekazywane przez dodanie ich do adresu URL - a adresy URL można zapisać - w tym hasła) może stanowić problem z bezpieczeństwem i generalnie należy go unikać, chyba że wiesz, że zmiana jest bezpieczna. Obecnie wydaje się, że jest ogólnie obsługiwany i preferowany jest 307, 308 zamiast 301, 302. Ale powinieneś to sprawdzić.308
jest jak boczna nieskończoność, więc stałe przekierowanie, a także nigdy nie zmienia metody żądania - jest to również stały, ustalony typ żądania. Następnie307
jest1
krok poniżej - metoda trwałego / utrzymywania żądania (Get / Post), ale przekierowanie do tymczasowej lokalizacji: 7 - wygląda jak „skręt w lewo” lub tymczasowy objazd, a 7 jest również podobny do k, więc „zachowaj” metoda żądania.