http-equiv="refresh" 是不是保留推荐人信息和元数据?

Posted

技术标签:

【中文标题】http-equiv="refresh" 是不是保留推荐人信息和元数据?【英文标题】:Does http-equiv="refresh" keep referrer info and metadata?http-equiv="refresh" 是否保留推荐人信息和元数据? 【发布时间】:2011-02-28 11:01:01 【问题描述】:

如果我这样设置页面:

<html><head><meta http-equiv="refresh" content="0;url=http://internic.net/"></head><body></body></html>

执行重定向时浏览器会发送referrer信息和其他元数据吗?

【问题讨论】:

好问题 - 我的猜测是“不”。这是一个新的、单独的请求。 【参考方案1】:

在这里进行测试时,Firefox 和 IE ,但 Chrome 确实发送引荐来源网址(尽管这也不一致),无论它是否会发送到同一个域或不。

鉴于我找不到任何说明应该是标准行为的规范,而且 W3C 通常不鼓励 META 重定向,我不确定您是否可以依赖此保持一致。

【讨论】:

您链接到的页面显示“奇怪的是,IE 处理 javascript 和元刷新的方式与 FireFox 或 Safari 略有不同。Internet Explorer 在访问目标站点时会将 REFERER 设为空,而 FireFox并且 Safari 会将 REFERER 设置为带有 javascript 或元刷新代码的 URL。”从那以后有变化吗? @Waterfox - 我在本地和 URL 上进行测试,在每种情况下,chrome 和 Firefox 都没有通过引用标头,我在外部站点上还有一个测试要运行,我会在它之后再次发表评论。 @Waterfox - 我在远程域上进行了测试,并且 chrome is 通过了推荐人,这意味着它不像我想的那样一致......所以你不能真正依赖这看起来像这样或那样。我假设 Safari 在这方面表现得像 Chrome,但我没有它可以测试。 推荐的重定向类型是什么?其实我不希望通过referrer。 @Waterfox - 您可以通过 POST 等方式定向到您拥有的页面,然后让它重定向到您要去的地方......所有另一端都会看到您的 redirect.whatever 页面,所以没什么用...这是向广告商等隐藏数据的常用方法。preferred 方法是 301/302 Http 状态重定向,但这些不会隐藏引荐来源网址。跨度> 【参考方案2】:

我对此做了一些额外的测试。我涉及三个 URI(都在同一个域上):

/page.html 有一个元刷新链接 /refresh.html 使用元刷新到目的地 /destination.html 使用 JavaScript 将引荐来源网址写入页面。

我通过打开page.html 并单击链接在多个浏览器中运行了测试,然后观察目标上的引荐来源网址是什么。结果如下:

Internet Explorer - 无推荐人 Firefox - 无推荐人 Chrome - 推荐人:http://example.com/refresh.html Safari - 推荐人:http://example.com/refresh.html Opera - 推荐人:http://example.com/refresh.html

没有一个浏览器像使用 301 或 302 重定向那样将 http://example.com/page.html 显示为引荐来源网址。所以元刷新在一定程度上可以用来掩盖引用者:

隐藏包含链接的特定页面 从引荐来源网址中删除查询字符串 如果第三方网站托管刷新,隐藏链接的特定网站 删除传入流量的外部引用(在like this 的情况下很有用)

【讨论】:

【参考方案3】:

确实,可以通过简单地使用表单来欺骗 FirefoxInternet Explorer,获得相同的重定向结果,使用 preserved referrer延迟提交。

示例:

<form action="URL" method="GET" name="redirected"></form>
<script>
   setTimeout(function() 
      document.forms.redirected.submit();
   , 1000);
</script>

【讨论】:

这是实际答案 值得注意的是,使用这种类型的重定向可能会在 Google Chrome 中导致恼人的警告“您要提交的信息不安全”。不过对于安全托管的网站应该没问题。

以上是关于http-equiv="refresh" 是不是保留推荐人信息和元数据?的主要内容,如果未能解决你的问题,请参考以下文章

META http-equiv="refresh" 实现网页自动跳转

meta http-equiv="refresh" 和13种跳转页面方法

meta http-equiv='refresh' 解读

http-equiv制作跳转欢迎页面

PHP 页面刷新与跳转的方法汇总

JSP页面自动刷新