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

    站长原创 wuya 366次浏览 已收录 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来,访问不同的代码。达到适配的目的。


    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明Vary:User-Agent 详解,Vary标头作用全面解析【权威】
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址