gpt4 book ai didi

internet-explorer - 处理 301 重定向时的客户端 Web 浏览器行为

转载 作者:行者123 更新时间:2023-12-03 12:59:28 26 4
gpt4 key购买 nike

RFC 似乎建议客户端应该永久缓存响应:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

10.3.2 301 Moved Permanently

The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise.

The new permanent URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s).

If the 301 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.

  Note: When automatically redirecting a POST request after
receiving a 301 status code, some existing HTTP/1.0 user agents
will erroneously change it into a GET request.


我很难为任何主要浏览器找到具体的浏览器文档,说明它们如何处理这些。

我已经开始挖掘 Firefox 的源代码,但很快就迷路了。

以下场景是否适用于哪些(如果有)浏览器,是否有针对 Firefox 或 IE 的明确文档说明了这一点?:

第一次周围:
  • 1.1:用户输入指向站点A的链接,或点击指向站点A的链接
  • 1.2:浏览器第一次在站点A解释链接,没有缓存。将 GET 发送到站点 A。
  • 1.2:站点 A 响应 301 重定向到站点 B
  • 1.3:浏览器向站点 B 发送 GET。

  • 任何后续时间:
  • 2.2:用户点击指向站点 A 的链接
  • 2.2:浏览器看到,由于过去的 301 重定向,站点 A 现在应该是站点 B。
  • 2.3:在站点 A 没有发起任何请求的情况下,浏览器在站点 B 发起 GET。

  • 最佳答案

    我进行了一些测试,发现一些浏览器确实缓存了 301 结果:

    缓存 301 结果并跳过将来联系旧地址?

    Internet Explorer 7 否
    火狐 3.0 没有
    Chrome 4.0 是
    Opera 10.01 适用于 google.com,不适用于 www.rnhart.net

    我是如何测试的

    我使用以下两个 301 结果进行测试:

  • google.com 向 www.google.com
  • 返回 301
  • www.rnhart.net 返回 301 到 rnhart.net

  • 我在自己的计算机上启动了一个代理服务器( Proxomitron Naoko 4.2,所有过滤器都关闭了)。在每个浏览器中,我将代理设置设置为指向我自己的计算机。我清除了浏览器的缓存,然后多次访问旧地址并查看代理服务器的日志窗口以查看浏览器发出的请求。

    第一次访问旧地址,代理日志显示旧地址请求、301响应和新地址请求。如果再次访问旧地址,日志要么显示相同的请求集(301 未缓存),要么仅显示新地址请求(301 已缓存)。

    我测试了在地址框中输入旧地址,从书签访问旧地址,以及从页面上的链接访问旧地址。无论地址如何被访问,每个浏览器都以相同的方式工作。

    [我在调查类似的 super 用户问题时发现了这个问题: Do browsers change URLs of saved bookmarks in response to 301 redirection? ]

    关于internet-explorer - 处理 301 重定向时的客户端 Web 浏览器行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2666089/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com