HTTP 302重定向 - 是否需要消息体?

时间:2011-11-09 02:20:22

标签: http redirect

RFC 2616未指定是否需要消息正文,我将其解释为可选的。省略消息体是否有任何实际危险?

例如,某些浏览器中是否存在由302中的空白邮件正文触发的错误(或功能)?

3 个答案:

答案 0 :(得分:16)

不需要。然而,RFC2616也没有禁止它。请注意,确实禁止某些状态的邮件正文,例如204304。如果302的情况也是如此,那么肯定会明确提到它。

据我所知,所有现代浏览器都会忽略302的消息体,以响应GET或POST,并直接转到Location标题中指定的URL。

答案 1 :(得分:3)

需要身体,但它可以是空的。请参阅HTTPbis Part 1, Section 3.3

答案 2 :(得分:2)

AFAICT规范至少描述了两条规则:

  1. HEAD请求要求响应包含位置标头。 HEAD响应不应包含响应正文中的任何内容。

  2. GET请求要求响应正文中至少包含带描述的超链接。

  3. 您的计划是否只填充位置标题?

    至于你的问题,知道回应GET请求空洞的任何实际危险,我可以预见的唯一问题是功能性问题,当用户关闭自动重定向时。机器人也可能期望一个超链接。正如@BalusC所提到的,你可以在204 No Content响应中找到替代方案。如果说用户正在以ajaxy方式更改应用中的内容,则客户端代码可以维护文档和实体状态,服务器可以使用204响应。但是现在我跳了起来,假设我对你的用例有所了解。