1. 程式人生 > >各類 HTTP 返回狀態程式碼詳解

各類 HTTP 返回狀態程式碼詳解

一、HTTP狀態碼

如果某項請求傳送到您的伺服器要求顯示您網站上的某個網頁(例如,使用者通過瀏覽器訪問您的網頁或 Googlebot 抓取網頁時),伺服器將會返回 HTTP 狀態程式碼以響應請求。

此狀態程式碼提供關於請求狀態的資訊, 告訴 Googlebot 關於您的網站和請求的網頁的資訊。

一些常見的狀態程式碼包括:

  • 200 – 伺服器成功返回網頁
  • 404 – 請求的網頁不存在
  • 503 – 伺服器暫時不可用

下面提供 HTTP 狀態程式碼的完整列表。 點選連結可瞭解詳情。 您也可以訪問有關 HTTP 狀態程式碼的 W3C 網頁以獲得更多資訊 。

1xx:請求收到,繼續處理
2xx:操作成功收到,分析、接受
3xx:完成此請求必須進一步處理
4xx:請求包含一個錯誤語法或不能完成
5xx:伺服器執行一個完全有效請求失敗



1xx (臨時響應) 
表示臨時響應並需要請求者繼續執行操作的狀態程式碼。

程式碼 說明
100(繼續) 請求者應當繼續提出請求。 伺服器返回此程式碼表示已收到請求的第一部分,正在等待其餘部分。
101(切換協議) 請求者已要求伺服器切換協議,伺服器已確認並準備切換。

2xx (成功)

表示伺服器成功處理了請求的狀態程式碼。

程式碼 說明
200(成功) 伺服器已成功處理了請求。 通常,這表示伺服器提供了請求的網頁。 如果針對您的 robots.txt 檔案顯示此狀態,則表示 Googlebot 已成功檢索到該檔案。
201(已建立) 請求成功並且伺服器建立了新的資源。
202(已接受) 伺服器已接受請求,但尚未處理。
203(非授權資訊) 伺服器已成功處理了請求,但返回的資訊可能來自另一來源。
204(無內容) 伺服器成功處理了請求,但沒有返回任何內容。
205(重置內容) 伺服器成功處理了請求,但沒有返回任何內容。 與 204 響應不同,此響應要求請求者重置文件檢視(例如,清除表單內容以輸入新內容)。
206(部分內容) 伺服器成功處理了部分 GET 請求。

3xx (重定向) 
要完成請求,需要進一步操作。 通常,這些狀態程式碼用來重定向。 Google 建議您在每次請求中使用重定向不要超過 5 次。 您可以使用網站管理員工具檢視一下 Googlebot 在抓取重定向網頁時是否遇到問題。 診斷

 下的網 絡抓取 頁面列出了由於重定向錯誤而導致 Googlebot 無法抓取的網址。

程式碼 說明
300(多種選擇) 針對請求,伺服器可執行多種操作。 伺服器可根據請求者(使用者代理)選擇一項操作,或提供操作列表供請求者選擇。
301(永久移動) 請求的網頁已永久移動到新位置。 伺服器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。 您應使用此程式碼告訴 Googlebot 某個網頁或網站已永久移動到新位置。
302(暫時移動) 服 務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。 此程式碼與響應 GET 或 HEAD 請求的 301 程式碼類似,會自動將請求者轉到不同的位置,但您不應使用此程式碼來告訴 Googlebot 某個網頁或網站已經移動,因為 Googlebot 會繼續抓取原有位置並編入索引。
303(檢視其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,伺服器返回此程式碼。 對於除 HEAD 之外的所有請求,伺服器會自動轉到其他位置。
304(未修改) 自從上次請求後,請求的網頁未修改過。伺服器返回此響應時,不會返回網頁內容。如果網頁自請求者上 次請求後再也沒有更改 過,您應當將伺服器配置為返回此響應(稱為 If-Modified-Since HTTP 標頭)。 由於伺服器可以告訴 Googlebot 自從上次抓取後網頁沒有更改過,因此可節省頻寬和開銷

305(使用代理) 請求者只能使用代理訪問請求的網頁。 如果伺服器返回此響應,還表示請求者應使用代理。
307(暫時重定向) 服 務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。 此程式碼與響應 GET 和 HEAD 請求的 301 程式碼類似,會自動將請求者轉到不同的位置,但您不應使用此程式碼來告訴 Googlebot 某個頁面或網站已經移動,因為 Googlebot 會繼續抓取原有位置並編入索引。

4xx(請求錯誤) 
這些狀態程式碼表示請求可能出錯,妨礙了伺服器的處理。

程式碼 說明
400(錯誤請求) 伺服器不理解請求的語法。
401(未授權) 請求要求身份驗證。 對於需要登入的網頁,伺服器可能返回此響應。
403(禁止) 伺服器拒絕請求。 如果您看到 Googlebot 在嘗試抓取您網站上的有效網頁時收到此狀態程式碼(可以在 Google 網站管理員工具診 斷 下的網路抓取 頁面上看到此資訊),可能是您的伺服器或主機拒絕 Googlebot 訪問。
404(未找到) 伺服器找不到請求的網頁。 例如,如果請求伺服器上不存在的網頁,伺服器通常會返回此程式碼。如果您的網站上沒有 robots.txt 檔案,而您在 Google 網站管理員工具”診斷”標籤的 robots.txt 頁 上看到此狀態,那麼這是正確的狀態。 但是,如果您有 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 協議版本。

英文版:

100:Continue
101:Switching Protocols
102:Processing

200:OK
201:Created
202:Accepted
203:Non-Authoriative Information
204:No Content
205:Reset Content
206:Partial Content
207:Multi-Status

300:Multiple Choices
301:Moved Permanently
302:Found
303:See Other
304:Not Modified
305:Use Proxy
306:(Unused)
307:Temporary Redirect

400:Bad Request
401:Unauthorized
402:Payment Granted
403:Forbidden
404:File Not Found
405:Method Not Allowed
406:Not Acceptable
407:Proxy Authentication Required
408:Request Time-out
409:Conflict
410:Gone
411:Length Required
412:Precondition Failed
413:Request Entity Too Large
414:Request-URI Too Large
415:Unsupported Media Type
416:Requested range not satisfiable
417:Expectation Failed
422:Unprocessable Entity
423:Locked
424:Failed Dependency

500:Internal Server Error
501:Not Implemented
502:Bad Gateway
503:Service Unavailable
504:Gateway Timeout
505:HTTP Version Not Supported
507:Insufficient Storage

200號狀態碼

220.181.32.30 - - [02/Sep/2008:00:01:23 +0800] "GET /article/0572/72570.shtml HTTP/1.1" 200 28361 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"

伺服器日誌中的200表示使用GET傳遞方式網頁72570.shtml下載成功。即:當用戶或爬蟲程式向網站伺服器發出瀏覽請求時,伺服器返回 HTTP 資料流裡包含某種狀態碼,200響應號即狀態碼中的一種,表示本網頁被成功下載。

301號狀態碼

220.181.32.30 - - [02/Sep/2008:00:01:31 +0800] "GET /my/view.php?aid=14183 HTTP/1.1" 301 - "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"

伺服器日誌中的301表示使用GET傳遞方式動態網頁aid=14183成功跳轉。即:當用戶或爬蟲程式向網站伺服器發出瀏覽請求時,伺服器返回 HTTP 資料流包含某種狀態碼,301 重定向即狀態碼中的一種,表示本網頁永久性轉移到另一個地址。實際操作中我們可以將多個域名指向同一個網址,這也是搜尋引擎唯一認可的一種網站轉向的方 式。

二、404狀態碼

220.181.32.30 - - [02/Sep/2008:00:01:51 +0800] "GET /writing HTTP/1.1" 404 4459 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"

出現404狀態碼就證 明有URL地址的網頁瀏覽不到。很多時候由於網站的改版,使很多舊版網站url地址失效。這是你需要建立404狀態頁來保證你網站通暢,能夠達到一種迴路 的效果。切記404狀態頁需要單獨設計,不能直接在伺服器端直接跳轉回首頁。否則,搜尋引擎會大量抓取網站首頁失誤當成404頁處理。

對HTTP404狀態碼的深度理解

HTTP 404 錯誤意味著連結指向的網頁不存在,即原始網頁的URL失效,這種情況經常會發生,很難避免,比如說:網頁URL生成規則改變、網頁檔案更名或移動位置、導 入連結拼寫錯誤等,導致原來的URL地址無法訪問;當Web 伺服器接到類似請求時,會返回一個404 狀態碼,告訴瀏覽器要請求的資源並不存在。但是,Web伺服器預設的404錯誤頁面,無論Apache還是IIS,均十分簡陋、呆板且對使用者不友好,無法 給使用者提供必要的資訊以獲取更多線索,無疑這會造成使用者的流失。

因此,很多網站均使用自定義404錯誤的方式以提供使用者體驗避免使用者流失。一般而言,自定義404頁面通用的做法是在頁面中放置網站快速導航連結、搜尋框以及網站提供的特色服務,這樣可以有效的幫助使用者訪問站點並獲取需要的資訊。

HTTP404對SEO的影響

自 定義404錯誤頁面是提供使用者體驗的很好的做法,但在應用過程中往往並未注意到對搜尋引擎的影響,譬如:錯誤的伺服器端配置導致返回“200”狀態碼或自 定義404錯誤頁面使用Meta Refresh導致返回“302”狀態碼。正確設定的自定義404錯誤頁面,不僅應當能夠正確地顯示,同時,應該返回“404”錯誤程式碼,而不是 “200”或“302”。雖然對訪問的使用者而言,HTTP狀態碼究竟是“404”還是“200”來說並沒有什麼區別,但對搜尋引擎而言,這則是相當重要 的。

1.自定義404錯誤頁返回“200”狀態碼

當搜尋引擎蜘蛛在請求某個URL地址得到“404”狀態迴應時,即知道該 URL地址已經失效,便不再索引該網頁,並向資料中心反饋將該URL地址表示的網頁從索引資料庫中刪除,當然,刪除過程有可能需要很長時間;而當搜尋引擎 得到“200”狀態迴應時,則會認為該url地址是有效的,便會去索引,並會將其收錄到索引資料庫,這樣的結果便是這兩個不同的url地址具有完全相同的 內容:自定義404錯誤頁面的內容,這會導致出現複製網頁問題。對搜尋引擎而言,特別是Google,不但很難獲得信任指數TrustRank,也會大大 降低Google對網站質量的評定。

在使用Google Sitemap,當提交XML格式網站地圖檔案時,谷歌管理員工具會驗證網站的身份以確保是網站合法的管理者。驗證方式有兩種:上傳指定名稱的html頁 到網站根目錄或者在網頁meta區域新增一個標識身份的meta標籤。通常是使用上傳html網頁的方式,但谷歌管理員工具卻提示網站根目錄下找不到這個 網頁,這是一個很可怕的問題。

2.自定義404錯誤頁使用Meta Refresh返回“302”狀態碼

常常看到許多網站的 自定義404錯誤頁面採取類似這樣的形式:首先顯示一段錯誤資訊,然後,通過Meta Refresh將頁面跳轉到網站首頁、網頁地圖或其他類似頁。根據具體實現方式不同,這類404頁面可能返回“200”狀態碼,也可能返回“302”,但 不論哪種,從SEO技術角度看,均不是一種合適的選擇。

對“200”狀態的情況我們上面已經談過,那麼,當404頁面返回“302”時,搜 索引擎會怎麼對待呢?從理論上說,對“302”錯誤,搜尋引擎認為該網頁是存在的,只不過臨時改變了地址,仍然會索引收錄該頁,這樣,同樣會出現類似於 “200”狀態碼時的重複文字問題;其次,以谷歌為代表的主流搜尋引擎對302重定向的適用範圍要求越來越嚴格,這類不當使用302重定向的情況存在很大 的風險。

確保自定義404錯誤頁面能夠返回“404”狀態碼

相關推薦

各類 HTTP 返回狀態程式碼

一、HTTP狀態碼 如果某項請求傳送到您的伺服器要求顯示您網站上的某個網頁(例如,使用者通過瀏覽器訪問您的網頁或 Googlebot 抓取網頁時),伺服器將會返回 HTTP 狀態程式碼以響應請求。 此狀態程式碼提供關於請求狀態的資訊, 告訴 Googlebot 關於您的網站和請求的網頁的資訊。

HTTP 返回狀態程式碼

如果某項請求傳送到您的伺服器要求顯示您網站上的某個網頁(例如,使用者通過瀏覽器訪問您的網頁或 Googlebot 抓取網頁時),伺服器將會返回 HTTP 狀態程式碼以響應請求。 1xx (臨時響應)  表示臨時響應並需要請求者繼續執行操作的狀態程式碼。 &n

HTTP返回狀態

伺服器已經成功處理了部分 GET 請求。類似於 FlashGet 或者迅雷這類的 HTTP 下載工具都是使用此類響應實現斷點續傳或者將一個大文件分 解為多個下載段同時下載。   該請求必須包含 Range 頭資訊來指示客戶端希望得到的內容範圍,並且可能包含 If-Range 來作為請求條件。   響應必須包

HTTP請求返回狀態

intern 數字 clas 地址 set 失敗 oba 清除 指定位置 當用戶試圖通過 HTTP 訪問一臺正在運行 Internet 信息服務 (IIS) 的服務器上的內容時,IIS 返回一個表示該請求的狀態的數字代碼。狀態代碼可以指明具體請求是否已成功,還可以揭示請求失

iOS開發--HTTP的網路請求狀態程式碼

網路請求是iOS專案的一個大部分,而且大部分的iOS的專案的網路請求是根據AFN進行的二次封裝,我們檢視返回的結果或者error的網路錯誤code,從而確認錯誤型別,針對行的進行除錯修改. 說明:一下整理內容來自網路或者書籍,同時也加上了自己的修改和補充,主要

HTTP協議狀態HTTP Status Code)

找不到 work for 條件 暫時 ocs 有效 網絡設備 不同 使用ASP.NET/PHP/JSP 或者javascript都會用到http的不同狀態,一些常見的狀態碼為: 200 – 服務器成功返回網頁 404 – 請求的網頁不存在 503 – 服務不可用 1x

HTTP響應狀態

http狀態返回程式碼 程式碼   說明 400   (錯誤請求) 伺服器不理解請求的語法。 401   (未授權) 請求要求身份驗證。 對於需要登入的網頁,伺服器可能返回此響應。 403   (禁止) 伺服器拒絕請求。 404   (未找到) 伺服器找不到請求的網頁。 405   (方法禁用) 禁用請求中指

HTTP狀態

拒絕 tla 有用 else sender 簡單 con conf dig HTTP狀態碼大全 完整的 HTTP 1.1規範說明書來自於RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJm

HTTP】---HTTP狀態

無法 用戶輸入 格式 type 發送 pan http 節點 wiki https://en.wikipedia.org/wiki/List_of_HTTP_status_codes 1、百科名片 HTTP狀態碼(HTTP Status Code)是用以表示網頁服

[HTTP]狀態

網站管理 imageview 重定向 type 子集 範圍 ont 證明 如何 狀態碼:100~299的範圍是表示成功 狀態碼:300~399的範圍表示重定向方面的內容 狀態碼:400~599的範圍代表響應出了問題 400~499問題來自客戶端,意思是你哪

【APP接口開發】常用HTTP響應頭狀態

服務器 客戶端 http app 狀態 不存在 性能 添加 但是 1、200 OK,客戶端請求城成功 2、400 Bad Request ,客服端請求語法錯誤,服務器無法理解和處理 3、401 unauthorized,請求未通過認證 4、403 permission fo

做網站-Http狀態

是否 bottom 接收 add spa server 情況 cat stat https://mp.weixin.qq.com/s/ZcYG59yLsLCNY2-2k4YqwA HTTP狀態碼(HTTP Status Code)是用以表示網頁服務器HTTP響應狀態的3位數

HTTP響應頭狀態

HTTP狀態碼列表 狀態碼 含義 100 客戶端應當繼續傳送請求。這個臨時響應是用來通知客戶端它的部分請求已經被伺服器接收,且仍未被拒絕。客戶端應當繼續傳送請求的剩餘部分,或者如果請求已經完成,忽略這個響應。伺服器必須在請

HTTPHTTP狀態

HTTP狀態碼:當客戶端向伺服器端傳送請求時,描述返回的請求的結果。 來說一下狀態碼的類別 類別 代表內容 詳細說明 1XX Informational(資訊性狀態碼)

HTTP 狀態

206 伺服器已經成功處理了部分 GET 請求。類似於 FlashGet 或者迅雷這類的 HTTP 下載工具都是使用此類響應實現斷點續傳或者將一個大文件分解為多個下載段同時下載。   該請求必須包含 Range 頭資訊來指示客戶端希望得到的內容範圍,並且可能包含 If-Range 來作為請求條件。   

http協議基礎(四)http狀態碼 Status Code狀態對照表

一:http狀態碼 表示客戶端http請求的返回結果、標記伺服器端的處理是否正常、通知出現的錯誤等工作 狀態碼的類別如下: http狀態碼種類繁多,大概有60多種,實際上經常使用的只有14種,下面為一一介紹   1、2XX 成功:請求被正常處理 1.1 200 OK 表示從客戶端發

http狀態

206 伺服器已經成功處理了部分 GET 請求。類似於 FlashGet 或者迅雷這類的 HTTP 下載工具都是使用此類響應實現斷點續傳或者將一個大文件分解為多個下載段同時下載。  該請求必須包含 Range 頭資訊來指示客戶端希望得到的內容範圍,並且可能包含 If-Range 來作為請求條件。  響應必須包

HTTP中常見的各種狀態及解決方案

總結了一些常見的http的狀態碼,以及常見的解決方案。 一.各範圍內狀態碼大致含義 1xx:臨時響應(Informational),需要請求者繼續執行操作的狀態程式碼,表示伺服器正在接受請求。 2xx:成功狀態碼(Success),已成功接受客戶端請求。 3xx:重定向狀態碼(Red

HttpPost Josn資料及服務端返回Json資料程式碼

最近在模擬post json資料到服務端,然後返回json資訊,當然也要實現模擬服務端的程式碼,服務單可以用controller實現,但是發現一個問題,就是返回來的是個頁面,頁面中才包含返回的json資料,怎麼取出去來了,網上部落格一般寫的都是客戶端的post,後來猛然想到

HTTP狀態大全

100 客戶端應當繼續傳送請求。這個臨時響應是用來通知客戶端它的部分請求已經被伺服器接收,且仍未被拒絕。客戶端應當繼續傳送請求的剩餘部分,或者如果請求已經完成,忽略這個響應。伺服器必須在請求完成後向客戶端傳送一個最終響應。 101 伺服器已經理解了客戶