302 重定向到相对 URL 是有效的还是无效的?

Posted

技术标签:

【中文标题】302 重定向到相对 URL 是有效的还是无效的?【英文标题】:Is a 302 redirect to relative URL valid, or invalid? 【发布时间】:2012-01-05 05:18:49 【问题描述】:

根据 RFC,302 的 HTTP 响应中的 Location 字段似乎应该是绝对的。 https://www.rfc-editor.org/rfc/rfc2616#section-14.30

如果这句话是正确的,浏览器会尊重这一点 - 还是允许相对路径?

【问题讨论】:

【参考方案1】:

相对 URL 有效。

RFC 2616 中有一个错误。请参阅http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-17.html#rfc.section.9.5。

【讨论】:

请在规范中注明添加 URI 片段标识符不符合/不同于 [RFC3986] 绝对/相对 URI 解析规则。 @hakre 请详细说明工作组的邮件列表 作为编辑,我只是​​想确保你知道这件事,所以谢谢你让我知道。 QFT "@hakre 请详细说明工作组的邮件列表 – Julian Reschke 2012 年 12 月 17 日 7:12" hakre:规范说要根据 RFC 3986 进行解析;您确实需要正确解释您认为问题所在。并且一定要在预期对规范进行反馈的地方进行。一遍又一遍。 你在说什么?这个问题不是在谈论 RFC(也就是事实上的标准),而这个答案是在谈论草案(即正在进行的工作)吗?【参考方案2】:

RFC 2616 requires an absolute URI in the Location,但该标准自 2014 年 6 月以来已被替换。相关规范现在是 RFC 7231。新标准的relevant section 表示:

位置 = URI 参考

字段值由单个 URI 引用组成。当它有 相对引用的形式([RFC3986],第 4.2 节),最终 值是通过根据有效请求 URI 解析来计算的 ([RFC3986],第 5 节)。

因此现在允许使用相对 URI。在大多数情况下,effective request URI 与请求 URI 相同。

【讨论】:

以上是关于302 重定向到相对 URL 是有效的还是无效的?的主要内容,如果未能解决你的问题,请参考以下文章

302 url重定向到paypal主页

如何用 PHP 实现 302 重定向到其他 URL

Magento 使用 302 重定向到基本 url,我如何让它使用 301

302 登录重定向后被 IE 删除的 URL 片段

浏览器302重定向传递hash

nginx环境 index一直重定向302怎么解决