我想知道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重定向到“dest.html”,显示document.referrer。
在这种情况下,
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.
为什么最后一种情况会发生?
答案 0 :(得分:28)
RFC未在状态301定义中指定任何特定于引荐者的行为,也未在Referer
标头定义中指定特定于301的行为。因此,我不得不说虽然这个引用者保留行为是合乎逻辑的,但它没有在RFC中定义,因此你永远无法确定。
答案 1 :(得分:11)
当在HTTP和HTTPS之间进行时,HTTP规范说不应发送引用标头(参见RFC2616中的15.1.3)。规范没有说明HTTPS页面之间应该发生什么。
有趣的是,在这种情况下,firefox默认忽略规范,但可以通过设置network.http.sendSecureXSiteReferrer配置设置来使其符合。
答案 2 :(得分:-3)
通过https,浏览器不会发送REFERRERS。这是在RFC中。