【问题标题】:HTTP 302 Redirect - is a message-body needed?HTTP 302 重定向 - 是否需要消息体?
【发布时间】:2011-12-24 23:18:04
【问题描述】:

RFC 2616 没有指定是否需要消息体,我认为这是可选的。省略消息正文有什么实际危险吗?

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

【问题讨论】:

    标签: http redirect


    【解决方案1】:

    不需要。然而,RFC2616 也没有禁止它。请注意,它确实禁止某些状态的消息正文,例如204304。如果 302 也是如此,那么肯定应该明确提及。

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

    【讨论】:

      【解决方案2】:

      需要一个主体,但它可以是空的。见HTTPbis Part 1, Section 3.3

      【讨论】:

      • 提供一个空体和根本不提供一个体有什么区别?
      • 内容长度或分块传输编码。
      【解决方案3】:

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

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

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

      您的计划只是填充位置标题吗?

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

      【讨论】:

        猜你喜欢
        • 2011-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-16
        相关资源
        最近更新 更多