Internet explorer 处理301重定向时的客户端Web浏览器行为
RFC似乎建议客户端永久缓存响应: 10.3.2 301永久移动 请求的资源已被删除 分配了一个新的永久URI和任何 今后对该资源的引用 应使用其中一个返回的URI。 具有链接编辑功能的客户端 应该自动重新链接 对请求URI的引用为1 一个或多个新引用返回 在可能的情况下,由服务器执行。这 除非另有说明,否则响应是可缓存的 否则 应该给出新的永久URI 通过响应中的位置字段。 除非请求方法是HEAD, 响应的实体应该是 包含带有 指向新URI的超链接 如果在中收到301状态代码 对GET以外的请求的响应 或者,用户代理不能 自动重定向请求 除非能得到业主的确认 用户,因为这可能会更改 提出请求的条件 发布Internet explorer 处理301重定向时的客户端Web浏览器行为,internet-explorer,firefox,webclient,http-status-code-301,behavior,Internet Explorer,Firefox,Webclient,Http Status Code 301,Behavior,RFC似乎建议客户端永久缓存响应: 10.3.2 301永久移动 请求的资源已被删除 分配了一个新的永久URI和任何 今后对该资源的引用 应使用其中一个返回的URI。 具有链接编辑功能的客户端 应该自动重新链接 对请求URI的引用为1 一个或多个新引用返回 在可能的情况下,由服务器执行。这 除非另有说明,否则响应是可缓存的 否则 应该给出新的永久URI 通过响应中的位置字段。 除非请求方法是HEAD, 响应的实体应该是 包含带有 指向新URI的超链接 如果在中收到301状态代码 对GET以外的
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:浏览器将GET发送到站点B。
我进行了一些测试,发现一些浏览器确实缓存了301结果: Caches 301 result and skips contacting old address in future? Internet Explorer 7 no Firefox 3.0 no Chrome 4.0 yes Opera 10.01 yes for google.com, no for www.rnhart.net 缓存301结果并在将来跳过联系旧地址? Internet Explorer 7号 火狐3.0版本 Chrome 4.0是的 Opera 10.01 google.com为是,www.rnhart.net为否 我是如何测试的 我使用以下两个301结果进行测试:
- google.com将301返回到www.google.com
- www.rnhart.net将301返回给rnhart.net
[我在调查一个类似的超级用户问题时发现了这个问题:您可以使用此解决方法:
对用户进行
302
重定向,仅对搜索引擎进行301
重定向。
在服务器端,只需检查用户代理。如果是机器人,请执行301
重定向。否则,请执行302
这不是“黄金之路”,但效果很好Bavi_H,你的测试结果与你提到的类似问题不同(你实际上对Chrome和Opera说“不”)。你能更新你的答案吗?@Jesper Rønn Jensen:这些问题问的是不同的事情(如果书签地址被更改;如果与旧服务器的连接被跳过)。谢谢你的澄清Bavi_H:)