百度的 head 和 get
2008-07-19 06:15:45 HEAD http://www. 域名 .com/55601.htm - 61.135.168.146 HTTP/1.1 Baiduspider+ +http://www.baidu.com/search/spider.htm - 200 163
2008-07-19 06:15:48 HEAD http://www. 域名 .com/play/69865.htm - 61.135.168.146 HTTP/1.1 Baiduspider+ +http://www.baidu.com/search/spider.htm - 200 163
2008-07-19 06:15:49 HEAD http://www. 域名 .com/play/83017.htm - 61.135.168.146 HTTP/1.1 Baiduspider+ +http://www.baidu.com/search/spider.htm - 200 163
2008-07-19 06:15:51 HEAD http://www. 域名 .com/mlist/3318.htm - 61.135.168.146 HTTP/1.1 Baiduspider+ +http://www.baidu.com/search/spider.htm - 200 163
2008-07-19 06:15:54 HEAD http://www. 域名 .com/play/68504.htm - 61.135.168.146 HTTP/1.1 Baiduspider+ +http://www.baidu.com/search/spider.htm - 200 163
2008-07-19 06:1
那是不是每次访问都要下载页面的全部内容呢?答案是否定的百度使用了 "GET", 百度的 spider 顺序会定周期的访问网站的页面。 "POST" 之外的 HTTP 方法: HEAD
而没有正文。 baidu 通过这种 HEAD 请求,可以利用极少量的带宽来获得某网页的头部信息。通过头信息中的 HTTP 状态码 ( 200 等 ) 百度可以了解这个网页的大体状态,比方是否存在否转向,否可用等;通过 Content-Length, HEAD 一般情况下会在服务器上产生与 GET 相同的处置(除非代码中对 HEAD 情况做了处置)只不过返回给客户端的 header 信息。 Last-Modifi 中的任一项与之前的访问记录做对比,百度可以进一步判断这个网页是否需要更新。
但实际上只要有 content-length 或 Last-Modifi 任一项,就可以迎合 baidu 蜘蛛了就称得上很好的支持百度的 HEAD 否有 content-length 和 last-Modifi , 很多人以为动态网页对 HEAD 支持不好。和服务器软件、配置、脚本语言、否缓冲,顺序编写有关的比方 apache+php 默认是有 content-length 一项的 apache+python 默认是没有这两项的通过顺序控制可以人为的添加 Last-Modifi 头信息。
即使有的网站不能很好的支持 HEAD, 但在实践中。百度还是不停的发生 HEAD 请求。所以针对这种情况,可以有两方面的措施: 1. 网页禁止 head 请求,以免发生无谓的资源消耗; 2. 通过配置或者顺序修改,支持 content-length 或 last-modifi 输出。
大家知道该如何优化了吧? 知道了这些。>
注:
却可能带来服务器的两次请求(如果需要更新, 百度的此种方法便宜了 baidu 带宽。百度还会来第二次)个损人利己的措施;那么 googl 如何减少带宽损耗的呢?
没有使用 HEAD 不会让服务器重复干活。但他也在减少带宽方面做了努力:通过支持 gzip/defleat 压缩的方式减少带宽。这样请求与普通浏览器访问无异, goog 大气一些。几乎不会带来多余的负担。