Подтвердить что ты не робот

HTTP 302 Redirect - нужен ли модуль сообщений?

RFC 2616 не указывает, нужен ли тело сообщения или нет, что я интерпретирую как необязательный. Существует ли какая-либо практическая опасность при опущении тела сообщения?

Например, есть ли ошибки (или функции) в некоторых браузерах, которые запускаются пустым телом сообщения в 302?

4b9b3361

Ответ 1

Это не нужно. Однако RFC2616 не запрещает его. Обратите внимание, что запрещает тело сообщения для определенных статусов, например 204 и 304. Если то же самое верно для 302, то это, безусловно, должно быть явно указано.

Насколько я знаю, все современные браузеры игнорируют тело сообщения 302 в ответ на GET или POST и будут напрямую перейти к URL-адресу, указанному в заголовке Location.

Ответ 3

AFAICT спецификация описывает по крайней мере два правила:

  • Запросы HEAD требуют, чтобы ответ содержал заголовок местоположения. Ответы HEAD никогда не должны содержать ничего в теле ответа.

  • Запросы GET требуют, чтобы по крайней мере гиперссылка с описанием включалась в тело ответа.

Ваш план состоит только в том, чтобы заполнить заголовок местоположения?

Что касается вашего вопроса относительно знания какой-либо практической опасности ответа на запрос GET с пустым телом, единственная проблема, которую я могу предвидеть, является функциональной, когда пользователи автоматически выключают авто-перенаправление. Роботы также, скорее всего, ожидают гиперссылки. Поскольку @BalusC упомянул, у вас может быть альтернатива в ответе 204 No Content. Если вы говорите, что пользователь меняет вещи в вашем приложении в виде ajaxy, клиентский код может поддерживать состояние документа и объекта, и сервер может ответить 204. Однако теперь я прыгаю вперед и предполагаю, что знаю кое-что о вашем случае использования.