1 定義 編輯本段 如果客戶端發(fā)送了一個帶條件的 GET 請求且該請求已被允許,而文檔的內(nèi)容(自上次訪問以來或者根據(jù)請求的條件)并沒有改變,則服務(wù)器應(yīng)當(dāng)返回這個304狀態(tài)碼. 簡單的表達就是:客戶端已經(jīng)執(zhí)行了GET,但文件未變化 2 什么情況下會返回304狀態(tài)碼 編輯本段 客戶端是怎么知道這些內(nèi)容沒有更新的呢?其實這并不是客戶端的事情,而是你服務(wù)器的事情,大家都知道服務(wù)器可以設(shè)置緩存機制,這個功能是為了提高網(wǎng)站的訪問速度,當(dāng)你發(fā)出一個GET請求的時候服務(wù)器會從緩存中調(diào)用你要訪問的內(nèi)容,這個時候服務(wù)器就可以判斷這個頁面是不是更新過了,如果沒有更新過那么他會給你返回一個304狀態(tài)碼。 例如:一些搜索引擎是如何知道我們的網(wǎng)站是否有更新。判斷網(wǎng)頁是否發(fā)生變化最直接的方法是設(shè)置頁面的某一處為監(jiān)控區(qū)域,每次都抓取該部分區(qū)域的內(nèi)容,然后與本地保存的或最近一次抓取內(nèi)容比較,如果有差異就表明網(wǎng)頁發(fā)生了變化,才可以進行解析。這種方法比較穩(wěn)妥,幾乎可達到萬無一失的效果。但是,這種方式在每次掃描時都要下載頁面內(nèi)容,并且要去截取監(jiān)控區(qū)域的內(nèi)容,最后還要進行字符串比較,整個過程比較耗時。其實在眾多網(wǎng)頁中,有一部分網(wǎng)站的網(wǎng)頁內(nèi)容是靜態(tài)頁面,如圖片,html,js等,這些靜態(tài)頁面往往可能是服務(wù)器早已準備好的,用戶訪問時僅僅是下載而已。那么針對這種靜態(tài)頁面,就可以僅僅通過304狀態(tài)碼來判斷,內(nèi)容是否發(fā)生了變化。 3 如何從網(wǎng)站日志中分析304狀態(tài)碼 編輯本段 例如某網(wǎng)站日志中有以下這樣的一段: 2011-12-18 23:45:33 W3SVC7499849XX 61.145.116.XX GET /asyj/1112_5544.html - 80 - 123.125.71.78 Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://***.baidu.coX/search/spider.html) 304 0 0 其實這段文字是這樣理解的。 2011-12-18 23:45:33 ——代表訪問的日期和時間。 W3SVC7499849XX ——代表虛擬主機的名稱 61.145.116.XX ——代表訪問ip GET ——代表訪問的方法 /asyj/1112_5544.html——代表具體訪問的文件 80 ——代表訪問的端口 123.125.71.78 ——代表來源ip Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://***.baidu.coX/search/spider.html) ——代表訪問來源;這里是代表百度蜘蛛。注*換為w 304 ——304返回碼。這個也是這里介紹的重點。這里表示客戶端已經(jīng)執(zhí)行了GET,但文件未變化 前一個0 ——代表服務(wù)端傳送到客戶端的字節(jié)大小 后一個0 ——代表客戶端傳送到服務(wù)端的字節(jié)大小 從這一段日志。我們可以看出這次百度蜘蛛訪問的結(jié)果的返回了一個304狀態(tài)碼。那么搜索引擎就不會對我們的頁面進行再次抓取了 4 304狀態(tài)碼的意義所在 編輯本段 如果一個網(wǎng)站被搜索引擎抓取的次數(shù)以及頻率越多那么他是越有利于排名的,但是如果你的網(wǎng)站出現(xiàn)太多的304,那么一定會降低搜索引擎的抓取頻率以及次數(shù),從而讓自己的網(wǎng)站排名比別人落一步
|
|
來自: 昵稱14371432 > 《seo》