這周做了一個應用小應用:就是以http的方式與遠端門戶網站進行交換,得到他們發送過來的資料資訊。在開發中就遇到一個問題,本來如果遠端的傳回的狀态碼為200,則表示連接配接成功,可以開始接收資料了。可是測試的時候,發現傳回的狀态碼為404,500等。自己當時也不知道是什麼情況,于是google下,發現了一篇不錯的文章,于是收錄下,以備以後的查詢。
文章位址為:
http://www.zh-seo.com/seo-jiaocheng/2009/0601/HTTP-status.html
做seo網站優化過程中需要經常檢視伺服器log日志資訊,其中伺服器log日志中就含有伺服器傳回的HTTP狀态碼資訊已經搜尋引擎蜘蛛或者機器人程式的通路時間。
什麼是HTTP狀态碼?
如果向您的伺服器發出了某項請求要求顯示您網站上的某個網頁(例如,當使用者通過浏覽器通路您的網頁或Googlebot抓取該網頁時),那麼,您的伺服器會傳回HTTP狀态代碼以響應該請求。此狀态代碼提供了有關請求狀态的資訊,且為Googlebot提供了有關您網站和請求的網頁的資訊。
HTTP狀态碼在哪裡可以看到?
HTTP狀态碼我們可以在網站的log日志裡可以看到,最常見的狀态碼就是200和404,不過log日志檔案很多虛拟主機提供商都不提供,可能是他們為了節省空間。是以在購買虛拟空間之前最好多問問是否可以提供log日志檔案下載下傳。其實我們有時在打開某些網站時候會提示此頁無法顯示,或者不存在,這種情況一般就會傳回404錯誤狀态碼。
HTTP狀态碼有什麼用?
HTTP狀态碼對于一般的訪客來說沒有太大用處,因為大部分訪客都不知道怎麼回事?比如出現了404錯誤,該頁無法顯示。訪客隻知道這個頁面不存在了,或者輸入錯誤了。而不知道怎麼去解決,所有的HTTP狀态碼基本上都是讓網站管理者看的,他們知道目前網站的基本情況,如出現5xx錯誤了,需要管理者檢查一下伺服器端出現什麼故障了,需要對伺服器進行維護。還有管理者可以在伺服器log日志檔案裡看到搜尋引擎機器人或者蜘蛛程式什麼時候來爬取過網站,這對于seo(baidu優化,google優化,百度優化)人員來說是很重要的資訊。
常見的HTTP狀态碼有哪些?這些狀态碼分别代表什麼意思?
200 - 伺服器成功傳回網頁
301 - 永久移動,請求的網頁已被永久移動到新位置
404 - 請求的網頁不存在,網頁不存在。
500 - 伺服器遇到錯誤,無法完成請求。
503 - 伺服器暫時不可用,目前無法使用伺服器(由于超載或進行停機維護)。通常,這隻是一種暫時的狀态。
HTTP 狀态代碼的完整清單
1xx(臨時響應)
用于表示臨時響應并需要請求者執行操作才能繼續的狀态代碼。
代碼 | 說明 |
---|---|
100(繼續) | 請求者應當繼續提出請求。伺服器傳回此代碼則意味着,伺服器已收到了請求的第一部分,現正在等待接收其餘部分。 |
101(切換協定) | 請求者已要求伺服器切換協定,伺服器已确認并準備進行切換。 |
2xx(成功)
用于表示伺服器已成功處理了請求的狀态代碼。
代碼 | 說明 |
---|---|
200(成功) | 伺服器已成功處理了請求。通常,這表示伺服器提供了請求的網頁。如果您的伺服器log日志檔案顯示為此狀态,那麼,這表示請求成功。 |
201(已建立) | 請求成功且伺服器已建立了新的資源。 |
202(已接受) | 伺服器已接受了請求,但尚未對其進行處理。 |
203(非授權資訊) | 伺服器已成功處理了請求,但傳回了可能來自另一來源的資訊。 |
204(無内容) | 伺服器成功處理了請求,但未傳回任何内容。 |
205(重置内容) | 伺服器成功處理了請求,但未傳回任何内容。與 204 響應不同,此響應要求請求者重置文檔視圖(例如清除表單内容以輸入新内容)。 |
206(部分内容) | 伺服器成功處理了部分 GET 請求。 |
3xx(已重定向)
要完成請求,您需要進一步進行操作。通常,這些狀态代碼是永遠重定向的。Google建議:在每次請求時使用的重定向要少于5個。您可以使用網站管理者工具來檢視Googlebot (google機器人程式)在抓取您已重定向的網頁時是否會遇到問題。診斷下的抓取錯誤頁中列出了Googlebot 由于重定向錯誤而無法抓取的網址。
代碼 | 說明 |
---|---|
300(多種選擇) | 伺服器根據請求可執行多種操作。伺服器可根據請求者 (User agent) 來選擇一項操作,或提供操作清單供請求者選擇。 |
301(永久移動) | 請求的網頁已被永久移動到新位置。伺服器傳回此響應(作為對 GET 或 HEAD 請求的響應)時,會自動将請求者轉到新位置。 |
302(臨時移動) | 伺服器目前正從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。此代碼與響應 GET 和 HEAD 請求的 301 代碼類似,會自動将請求者轉到不同的位置。 |
303(檢視其他位置) | 當請求者應對不同的位置進行單獨的 GET 請求以檢索響應時,伺服器會傳回此代碼。對于除 HEAD 請求之外的所有請求,伺服器會自動轉到其他位置。 |
304(未修改) | 自從上次請求後,請求的網頁未被修改過。伺服器傳回此響應時,不會傳回網頁内容。如果網頁自請求者上次請求後再也沒有更改過,您應當将伺服器配置為傳回此響應(稱為If-Modified-Since HTTP 标頭)。 |
305(使用代理) | 請求者隻能使用代理通路請求的網頁。如果伺服器傳回此響應,那麼,伺服器還會指明請求者應當使用的代理。 |
307(臨時重定向) | 伺服器目前正從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。此代碼與響應 GET 和 HEAD 請求的 301 代碼類似,會自動将請求者轉到不同的位置。但由于 搜尋引擎會繼續抓取原有位置并将其編入索引,是以您不應使用此代碼來通知搜尋引擎某個頁面或網站已被移動。 |
4xx(請求錯誤)
這些狀态代碼表示,請求可能出錯,已妨礙了伺服器對請求的處理。
代碼 | 說明 |
---|---|
400(錯誤請求) | 伺服器不了解請求的文法。 |
401(未授權) | 請求要求進行身份驗證。登入後,伺服器可能會傳回對頁面的此響應。 |
403(已禁止) | 伺服器拒絕請求。如果在搜尋引擎嘗試抓取您網站上的有效網頁時顯示此狀态代碼,那麼,這可能是您的伺服器或主機拒絕搜尋引擎對其進行通路。 |
404(未找到) | 伺服器找不到請求的網頁。例如,如果請求是針對伺服器上不存在的網頁進行的,那麼,伺服器通常會傳回此代碼。 如果您的網站上沒有robots.txt 檔案,而您在 Google 網站管理者工具"故障診斷"标簽的"網絡抓取"-"找不到"頁上發現此狀态。然而,如果您有robots.txt 檔案而又發現了此狀态,那麼,這說明您的 robots.txt 檔案可能是命名錯誤或位于錯誤的位置。(該檔案應當位于根目錄下,且應當名為 robots.txt)。 如果您在Googlebot 嘗試抓取的網址上發現此狀态(位于"診斷"标簽的 HTTP 錯誤頁上),那麼,這表示 Googlebot 所追蹤的可能是另一網頁中的無效連結(舊連結或輸入有誤的連結)。 |
405(方法禁用) | 禁用請求中所指定的方法。 |
406(不接受) | 無法使用請求的内容特性來響應請求的網頁。 |
407(需要代理授權) | 此狀态代碼與 401(未授權)類似,但卻指定了請求者應當使用代理進行授權。如果伺服器傳回此響應,那麼,伺服器還會指明請求者應當使用的代理。 |
408(請求逾時) | 伺服器等候請求時逾時。 |
409(沖突) | 伺服器在完成請求時發生沖突。伺服器必須包含有關響應中所發生的沖突的資訊。伺服器在響應與前一個請求相沖突的 PUT 請求時可能會傳回此代碼,同時會提供兩個請求的差異清單。 |
410(已删除) | 如果請求的資源已被永久删除,那麼,伺服器會傳回此響應。該代碼與 404(未找到)代碼類似,但在資源以前有但現在已經不複存在的情況下,有時會替代 404 代碼出現。如果資源已被永久删除,那麼,您應當使用 301 代碼指定該資源的新位置。 |
411(需要有效長度) | 伺服器不會接受包含無效内容長度标頭字段的請求。 |
412(未滿足前提條) | 伺服器未滿足請求者在請求中設定的其中一個前提條件。 |
413(請求實體過大) | 伺服器無法處理請求,因為請求實體過大,已超出伺服器的處理能力。 |
414(請求的 URI 過) | 請求的 URI(通常為網址)過長,伺服器無法進行處理。 |
415(不支援的媒體類型) | 請求的格式不受請求頁面的支援。 |
416(請求範圍不符合要求) | 如果請求是針對網頁的無效範圍進行的,那麼,伺服器會傳回此狀态代碼。 |
417(未滿足期望值) | 伺服器未滿足"期望"請求标頭字段的要求。 |
5xx(伺服器錯誤)
這些狀态代碼表示,伺服器在嘗試處理請求時發生内部錯誤。這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。
代碼 | 說明 |
---|---|
500(伺服器内部錯誤) | 伺服器遇到錯誤,無法完成請求。 |
501(尚未實施) | 伺服器不具備完成請求的功能。例如,當伺服器無法識别請求方法時,伺服器可能會傳回此代碼。 |
502(錯誤網關) | 伺服器作為網關或代理,從上遊伺服器收到了無效的響應。 |
503(服務不可用) | 目前無法使用伺服器(由于超載或進行停機維護)。通常,這隻是一種暫時的狀态。 |
504(網關逾時) | 伺服器作為網關或代理,未及時從上遊伺服器接收請求。 |
505(HTTP 版本不受支援) | 伺服器不支援請求中所使用的 HTTP 協定版本。 |