http - URL 哈希在重定向之间持续存在

标签 http url redirect hash fragment

出于某种原因,非 IE 浏览器似乎在发送服务器端重定向(使用 Location header )时保留 URL 哈希(如果存在)。示例:

// a simple redirect using Response.Redirect("http://www.yahoo.com");
Text.aspx

如果我访问:

Test.aspx#foo

在 Firefox/Chrome 中,我被带到:

http://www.yahoo.com#foo

谁能解释为什么会这样?我也尝试过在不同平台上使用各种服务器端重定向(尽管所有结果都在 Location header 中),这似乎总是会发生。我在 HTTP 规范的任何地方都没有看到它,但这似乎确实是浏览器本身的问题。 URL 哈希(正如预期的那样)永远不会发送到服务器,因此服务器重定向不会被它污染,浏览器只是出于某种原因而持久化它。

有什么想法吗?

最佳答案

我建议这是正确的行为。 302 和 307 状态代码表示资源将在别处找到。 #bookmark 是资源中的一个位置。

一旦找到资源(html 文档),浏览器就可以在文档中找到#bookmark

类比是这样的:你想在第 57 章的一本书中查找一些东西,所以你去图书馆拿这本书。但是书架上有一张纸条说这本书已经搬走了,现在在另一栋楼里。所以你去新的地方。你仍然想要第 57 章——这与你从哪里得到这本书无关。

关于http - URL 哈希在重定向之间持续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5283395/

相关文章:

javascript - github UI 如何在没有回传的情况下导航目录?

git - 503错误推送到远程

rest - CORS 与 3scale

http - Web Dev Helper,如 IE8 中的 HTTP 请求跟踪

java - 字符数组大小? Stringbuffer 将 HTMl 文件保存在字符串中

python - 在 Python + Google App Engine 中重定向用户

Apache Wicket 如何呈现(非 wicket)响应页面

xml - 水壶 'XML Output' 步骤改变/到/

apache - 实现HTTP到HTTP的重定向,以保留Google Analytics(分析)引荐来源网址

JavaScript 重定向错误