百度的 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 大氣一些。幾乎不會帶來多餘的負擔。