如果我设置这样的页面:
<html><head><meta http-equiv="refresh" content="0;url=http://internic.net/"></head><body></body></html>
执行重定向时,浏览器会发送推荐人信息和其他元数据吗?
如果我设置这样的页面:
<html><head><meta http-equiv="refresh" content="0;url=http://internic.net/"></head><body></body></html>
执行重定向时,浏览器会发送推荐人信息和其他元数据吗?
在这里进行测试时,Firefox 和 IE不会,但 Chrome确实会发送引荐来源网址(尽管这也不一致),无论它是否进入同一个域。
鉴于我找不到任何说明应该是标准行为的规范,并且 W3C 通常不鼓励 META 重定向,我不确定您是否可以依赖此一致性。
我对此做了一些额外的测试。我涉及三个 URI(都在同一个域上):
/page.html
其中有指向元刷新的链接/refresh.html
它使用了对目标的元刷新/destination.html
它使用 JavaScript 将引荐来源网址写入页面。page.html
我通过打开并单击链接在几个浏览器中运行了测试,然后观察目标上的引用者是什么。结果如下:
http://example.com/refresh.html
http://example.com/refresh.html
http://example.com/refresh.html
没有一个浏览器http://example.com/page.html
像使用 301 或 302 重定向那样显示为引荐来源网址。所以元刷新在一定程度上可以用来掩盖引用者:
Indeed, it's possible to trick Firefox and Internet Explorer, getting the same redirection result, with preserved referrer, by simply using a form with delayed submit.
Example:
<form action="URL" method="GET" name="redirected"></form>
<script>
setTimeout(function() {
document.forms.redirected.submit();
}, 1000);
</script>