URL片段和302重定向

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (86)

众所周知,URL片段(在#)未发送到服务器。

当服务器重定向(通过HTTP状态302和Location:涉及到报头)。

我的问题是双重的:

  1. 如果原始URL有一个片段(/original.php#foo),并且重定向到/new.php,原始URL的片段部分是否就这样丢失了?或者它有时会被应用到新的URL中吗?新的URL会不会是/new.php#foo在这种情况下?
  2. 不管原始URL是什么,如果服务器重定向到一个带有片段的新URL(/new.php#foo),这个片段会得到“尊重”吗?或者服务器真的根本没有必要干扰片段--因此浏览器会忽略它吗?/new.php??
提问于
用户回答回答于

#6允许在Location标题.#43这样说

我刚刚用不同的浏览器测试了这个。

  • Firefox和Safari使用位置头中的片段。
  • Opera使用源URI中的片段,当出现时,否则重定向位置的片段就会出现。
  • IE(8)忽略位置URI中的片段,因此,当存在源URI时,将使用源URI中的片段
用户回答回答于

如果发生HTTP/3xx重定向,Safari 5和IE9及以下将删除原始URI的片段。如果响应上的位置标头指定了一个片段,则使用它。

IE 10+、Chrome 11+、Firefox 4+和Opera将在遵循3xx重定向后“重新附加”原始URI的片段。

扫码关注云+社区

领取腾讯云代金券