301 重定向是否始终保留引荐来源网址?
我想知道 301 重定向是否始终保留引荐来源网址。
我创建了一个名为“gotoorig_https.html”的页面,其中包含指向页面“orig_https.asp”的超链接。
“orig_https.asp”将 301 重定向到“dest.html”,其中显示 document.referrer。
在本例中,
http page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
https page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
我还创建了一个名为“gotoorig_http.html”的页面,其中包含指向页面“orig_http.asp”的超链接。 “orig_http.asp”将 301 重定向到显示 document.referrer 的“dest.html”。
既然如此,
http page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer preserves
https page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer DOES NOT preserve.
为什么会出现最后一种情况呢?
I want to know whether 301 redirect always preserve referrer.
I make a page called "gotoorig_https.html" which contains a hyperlink to a page "orig_https.asp".
"orig_https.asp" will 301 redirect to "dest.html" which shows the document.referrer.
In this case,
http page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
https page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
I also make a page called "gotoorig_http.html" which contains a hyperlink to a page "orig_http.asp".
"orig_http.asp" will 301 redirect to "dest.html" which shows the document.referrer.
In this case,
http page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer preserves
https page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer DOES NOT preserve.
Why does the last case happen?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
RFC 未在状态 301 定义中指定任何特定于引用者的行为,也未在
Referer
标头定义中指定任何特定于 301 的行为。因此,我不得不说,虽然这种引用者保留行为是合乎逻辑的,但它并未在 RFC 中定义,因此您永远无法确定。RFC doesn't specify any referrer-specific behavior in status 301 definition, nor 301-specific behavior in
Referer
header definition. Thus, I have to say that although this referrer-preserving behavior is logical, it is not defined in RFC and thus you can never be sure.在 HTTP 和 HTTPS 之间切换时,HTTP 规范规定不应发送引用标头(请参阅 RFC2616)。然而,该规范并没有说明 HTTPS 页面之间应该发生什么。
有趣的是,在这种情况下,firefox 默认忽略规范,但可以通过设置 network.http.sendSecureXSiteReferrer 配置设置来使其符合规范。
When going between HTTP and HTTPS the HTTP spec says that a referer header should NOT be sent (see 15.1.3 in RFC2616). The spec doesn't say what should happen between HTTPS pages however.
Interestingly firefox defaults to ignoring the spec in this case, but can be made to conform by setting the network.http.sendSecureXSiteReferrer configuration setting.
通过 https,浏览器不会发送 REFERRERS。这是 RFC 中的内容。
Over https the browsers are not sending REFERRERS. This is in the RFC.