Я указываю услугу ReST.Недавно я наткнулся на этот черновой документ IETF , который можно истолковать как предполагающий, что службы ReST всегда должны возвращать 308. Обратите внимание, что срок действия документа истек без замены (я не очень ясно представляю процесс IETF).
Ранее я думал, что служба должна вернуть «301 Moved Permanently» для GET и « 308 Permanent Redirect » для POST, чтобы убедиться, что она не является ненадлежащей.преобразован в GET (чем-то, пытающимся быть умным).
Использование 301 и 308, похоже, выражается в терминах СЛЕДУЕТ и НЕ ДОЛЖНО, а ДОЛЖНО и НЕ ДОЛЖНО, так что неясно, что "правильно "философски.
Прагматически 301 для GET и 308 для POST должны работать.308 для GET не является неправильным, поскольку текущая редакция на момент написания включает пример 308, создаваемого в ответ на GET.Теперь существует проблема развертывания, которая заключается в том, что если клиент не понимает 308, он должен обращаться с ним как с 300 (а не с 301, что имеет для меня больший смысл), но теперь 308 широко понимают, поэтому возникает вопрос, стоит ли вам когда-либоиспользовать HTTP 301?
Если 308, по сути, является исправлением ошибки для 301, почему 301 официально не рекомендуется в HTTP / 1.1?Существует ли законный вариант использования для преобразования POST в GET для перенаправления в ReST или в более общем смысле в HTTP?
Для 301 HTTP / 1.1 говорит:
Примечание: ДляПо историческим причинам пользовательский агент МОЖЕТ изменить метод запроса с POST на GET для последующего запроса.
Почему это было хорошей идеей?Это все еще действует где-нибудь?
См. Также: