Vary:User-Agent 详解,Vary标头作用全面解析【权威】

ernestwang 1031 0

Vary标头是什么,本文将全面讲解Vary标头作用,和设置方法。我开始看到百度站长平台在移动端适配的时候说:  为了使百度能够知道当您的页面发生变化时,同时需要用其他的ua重新抓取一遍,请您添加Vary HTTP标头。Vary HTTP 标头具有以下两个非常重要且实用的作用:   a) 它会向 ISP 和其他位置使用的缓存服务器表明:在决定是否通过缓存来提供网页时它们应考虑用户代理。如果您没有使用 Vary HTTP 标头,缓存可能会错误地向移动设备用户提供pc版 HTML 网页的缓存(反之亦然)。   b) 它有助于 百度spdier 更快速地发现针对移动设备进行优化的内容,这是因为我们在抓取针对移动内容进行过优化的网址时,会将有效的 Vary HTTP 标头作为抓取信号之一,我们会提高用其他ua抓取此网页的优先级。 但是这没有解释Vary标头到底是个啥玩意。

Vary是什么?

首先:vary这个单词的 含义为: 相异,不同,有别; (根据情况) 变化,改变; 变更; (略做) 改变; 总之为改变变化的意思。 那么Vary标头是什么呢,Vary标头即为服务器响应头的一个选项。 众所周知,服务器响应回有一个响应头:
response headers:
Connection: keep-alive
Content-Length: 138
Content-Type: text/html
Date: Wed, 25 Mar 2020 13:39:05 GMT
Location:xxxxxxx
Vary: User-Agent

so,Vary也是其中的服务器配置的选项。

Vary有什么用:

查看网页的response header一般都有Vary头(服务器支持压缩的都有),意思是说爬虫要把客户端传来的某个头区别对待, 譬如 Vary:Accept-Encoding: 客户端发来Accept-Encoding:gzip(MSIE), deflate时squid会为gzip, deflate做一个存档;如果客户端没发来Accept-Encoding这个头(wget),爬虫又会为无Accept-Encoding做另一个存档;这两个存档的内容是不一样的,gzip, deflate的是压缩后的内容,一堆乱码,无Accept-Encoding的则是网页源码。 Vary:User-Agent: 知道了Vary的原理,剩下的事就容易了,在网页输出时加上Vary:User-Agent,意味着爬虫要为每一种User-Agent存一个存档。 **即对于seo来讲是告知爬虫,如果不同的设备会有不同的页面,不同的代码和展示。 **

Vary如何配置

第一种情况是最好的,有权限干啥都行,不论Windows、Nginx还是Apache都可以实现,具体参考官网的建议:http://ziyuan.baidu.com/college/articleinfo?id=717 第二种情况应该是大多数网站需要面对的,毕竟不是谁都有钱有必要搞个服务器来放网站。对asp网站,抱歉暂时没有找到有效的办法,只能联系下主机商看能不能为你设置Varry头了。 对于php网站,在公用头部的顶端(一般是header.php文件),例如pc端和移动端的header最顶端添加: <?php header("Vary: User-Agent, Accept"); ?> 对于其它开源的模板来说,例如wordpress,织梦,等可以在百度自己寻找配置的方法,很多。 说到底:Vary标头,的注意作用还是通知搜索引擎,有两套代码,可以让爬虫可以切换UA来,访问不同的代码。达到适配的目的。

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~

复制成功
微信号: irenyuwang
关注微信公众号,站长免费提供流量增长方案。
我知道了