В чем разница между кодами HTTP 301
и 308
статуса?
301
(Перемещено навсегда): этот и все последующие запросы должны быть направлены на указанный URI.308
(Постоянное перенаправление): запрос и все будущие запросы должны повторяться с использованием другого URI.
Они кажутся похожими.
http
http-status-code-301
http-status-codes
http-status-code-308
Александр Дробышевский
источник
источник
Ответы:
Обзор
301
,302
и307
RFC 7231 , текущая ссылка для семантики и содержания / 1.1 протокола HTTP, определяет
301
(перемещено) и302
код (Найдено) статус, который позволяет метод запроса быть изменен сPOST
кGET
. Эта спецификация также определяет307
код состояния (временное перенаправление), который не позволяет изменять метод запроса сPOST
наGET
.Подробнее см. Ниже:
Нужда в
308
RFC 7238 был создан , чтобы определить
308
(Permanent Redirect) код статуса, который похож на301
(перемещено) , но не позволяет метод запроса будет изменен сPOST
кGET
.Код
308
состояния теперь определяется RFC 7538 (который устарел RFC 7238 ).Итак, мы имеем следующее:
Выбор наиболее подходящего кода статуса
Майкл Kropat собрать набор диаграмм решения , которое помогает определить наилучший код состояния для каждой конкретной ситуации. См. Следующие коды состояния
2xx
и3xx
:источник
POST
GET
: «не позволяет изменить метод запроса с на » ? Означает ли это, что опубликованная форма не может быть обработана, но новая новая форма может быть отправлена на сервер, а затем отправлена по следующему запросу?POST
(безопасного) запроса быть измененным наGET
(небезопасно в том случае, если данные передаются путем добавления их к URL-адресу), и URL-адреса могут быть сохранены - включая пароли) может быть проблемой безопасности, и, как правило, его следует избегать, если вы не знаете, что изменение безопасно. В наши дни кажется, что он в целом поддерживается, и предпочитают использовать 307, 308, а не 301, 302. Но вам следует проверить.308
похожа на боковую бесконечность, поэтому постоянное перенаправление и никогда не изменяют метод запроса - это также постоянный фиксированный тип запроса. Тогда,307
это1
шаг ниже - запрос постоянного / Keep Method (Get / Post), но редирект на месте TEMP: 7 - выглядит как «левый поворот» или временный объезд, и 7 также сходна надеетесь к, так что «держать» метод запроса.