1. 
          

          1. 新聞動(dòng)態(tài)

            HTTP協(xié)議狀態(tài)碼,網(wǎng)站故障排查利器

            常見(jiàn)問(wèn)題 發(fā)布者:cya 2019-12-03 08:41 訪(fǎng)問(wèn)量:191

            來(lái)自:張善友

            鏈接:http://www.cnblogs.com/shanyou/archive/2012/05/06/2486134.html

            HTTP協(xié)議狀態(tài)碼詳解(HTTP Status Code)


            一些常見(jiàn)的狀態(tài)碼:

            200 – 服務(wù)器成功返回網(wǎng)頁(yè) 

            404 – 請求的網(wǎng)頁(yè)不存在 

            503 – 服務(wù)不可用 


            1xx(臨時(shí)響應) 
            表示臨時(shí)響應并需要請求者繼續執行操作的狀態(tài)代碼。


            100   (繼續) 請求者應當繼續提出請求。服務(wù)器返回此代碼表示已收到請求的第一部分,正在等待其余部分。  
            101   (切換協(xié)議) 請求者已要求服務(wù)器切換協(xié)議,服務(wù)器已確認并準備切換。


            2xx (成功) 

            表示成功處理了請求的狀態(tài)代碼。


            200   (成功)  服務(wù)器已成功處理了請求。通常,這表示服務(wù)器提供了請求的網(wǎng)頁(yè)。 
            201   (已創(chuàng )建)  請求成功并且服務(wù)器創(chuàng )建了新的資源。 
            202   (已接受)  服務(wù)器已接受請求,但尚未處理。 
            203   (非授權信息)  服務(wù)器已成功處理了請求,但返回的信息可能來(lái)自另一來(lái)源。 
            204   (無(wú)內容)  服務(wù)器成功處理了請求,但沒(méi)有返回任何內容。 
            205   (重置內容) 服務(wù)器成功處理了請求,但沒(méi)有返回任何內容。 
            206   (部分內容)  服務(wù)器成功處理了部分 GET 請求。


            3xx (重定向) 
            表示要完成請求,需要進(jìn)一步操作。通常,這些狀態(tài)代碼用來(lái)重定向。


            300   (多種選擇)  針對請求,服務(wù)器可執行多種操作。服務(wù)器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。 
            301   (永久移動(dòng))  請求的網(wǎng)頁(yè)已永久移動(dòng)到新位置。服務(wù)器返回此響應(對 GET 或 HEAD 請求的響應)時(shí),會(huì )自動(dòng)將請求者轉到新位置。 
            302   (臨時(shí)移動(dòng))  服務(wù)器目前從不同位置的網(wǎng)頁(yè)響應請求,但請求者應繼續使用原有位置來(lái)進(jìn)行以后的請求。 
            303   (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來(lái)檢索響應時(shí),服務(wù)器返回此代碼。 
            304   (未修改) 自從上次請求后,請求的網(wǎng)頁(yè)未修改過(guò)。服務(wù)器返回此響應時(shí),不會(huì )返回網(wǎng)頁(yè)內容。 
            305   (使用代理) 請求者只能使用代理訪(fǎng)問(wèn)請求的網(wǎng)頁(yè)。如果服務(wù)器返回此響應,還表示請求者應使用代理。 
            307   (臨時(shí)重定向)  服務(wù)器目前從不同位置的網(wǎng)頁(yè)響應請求,但請求者應繼續使用原有位置來(lái)進(jìn)行以后的請求。


            4xx(請求錯誤) 
            這些狀態(tài)代碼表示請求可能出錯,妨礙了服務(wù)器的處理。


            400   (錯誤請求) 服務(wù)器不理解請求的語(yǔ)法。 
            401   (未授權) 請求要求身份驗證。對于需要登錄的網(wǎng)頁(yè),服務(wù)器可能返回此響應。 
            403   (禁止) 服務(wù)器拒絕請求。 
            404   (未找到) 服務(wù)器找不到請求的網(wǎng)頁(yè)。 
            405   (方法禁用) 禁用請求中指定的方法。 
            406   (不接受) 無(wú)法使用請求的內容特性響應請求的網(wǎng)頁(yè)。 
            407   (需要代理授權) 此狀態(tài)代碼與 401(未授權)類(lèi)似,但指定請求者應當授權使用代理。 
            408   (請求超時(shí))  服務(wù)器等候請求時(shí)發(fā)生超時(shí)。 
            409   (沖突)  服務(wù)器在完成請求時(shí)發(fā)生沖突。服務(wù)器必須在響應中包含有關(guān)沖突的信息。 
            410   (已刪除)  如果請求的資源已永久刪除,服務(wù)器就會(huì )返回此響應。 
            411   (需要有效長(cháng)度) 服務(wù)器不接受不含有效內容長(cháng)度標頭字段的請求。 
            412   (未滿(mǎn)足前提條件) 服務(wù)器未滿(mǎn)足請求者在請求中設置的其中一個(gè)前提條件。 
            413   (請求實(shí)體過(guò)大) 服務(wù)器無(wú)法處理請求,因為請求實(shí)體過(guò)大,超出服務(wù)器的處理能力。 
            414   (請求的 URI 過(guò)長(cháng)) 請求的 URI(通常為網(wǎng)址)過(guò)長(cháng),服務(wù)器無(wú)法處理。 
            415   (不支持的媒體類(lèi)型) 請求的格式不受請求頁(yè)面的支持。 
            416   (請求范圍不符合要求) 如果頁(yè)面無(wú)法提供請求的范圍,則服務(wù)器會(huì )返回此狀態(tài)代碼。 
            417   (未滿(mǎn)足期望值) 服務(wù)器未滿(mǎn)足”期望”請求標頭字段的要求。


            5xx(服務(wù)器錯誤) 
            這些狀態(tài)代碼表示服務(wù)器在嘗試處理請求時(shí)發(fā)生內部錯誤。這些錯誤可能是服務(wù)器本身的錯誤,而不是請求出錯。


            500   (服務(wù)器內部錯誤)  服務(wù)器遇到錯誤,無(wú)法完成請求。 
            501   (尚未實(shí)施) 服務(wù)器不具備完成請求的功能。例如,服務(wù)器無(wú)法識別請求方法時(shí)可能會(huì )返回此代碼。 
            502   (錯誤網(wǎng)關(guān)) 服務(wù)器作為網(wǎng)關(guān)或代理,從上游服務(wù)器收到無(wú)效響應。 
            503   (服務(wù)不可用) 服務(wù)器目前無(wú)法使用(由于超載或停機維護)。通常,這只是暫時(shí)狀態(tài)。 
            504   (網(wǎng)關(guān)超時(shí))  服務(wù)器作為網(wǎng)關(guān)或代理,但是沒(méi)有及時(shí)從上游服務(wù)器收到請求。 
            505   (HTTP 版本不受支持) 服務(wù)器不支持請求中所用的 HTTP 協(xié)議版本。

             

            RFC 6585 最近剛剛發(fā)布,該文檔描述了 4 個(gè)新的 HTTP 狀態(tài)碼。


            HTTP 協(xié)議還在變化?是的,HTTP 協(xié)議一直在演變,新的狀態(tài)碼對于開(kāi)發(fā) REST 服務(wù)或者說(shuō)是基于 HTTP 的服務(wù)非常有用,下面我們?yōu)槟阍敿毥榻B這四個(gè)新的狀態(tài)碼以及是否應該使用。


            428 Precondition Required (要求先決條件)


            先決條件是客戶(hù)端發(fā)送 HTTP 請求時(shí),如果想要請求能成功必須滿(mǎn)足一些預設的條件。


            一個(gè)好的例子就是 If-None-Match 頭,經(jīng)常在 GET 請求中使用,如果指定了 If-None-Match ,那么客戶(hù)端只在響應中的 ETag 改變后才會(huì )重新接收回應。


            先決條件的另外一個(gè)例子就是 If-Match 頭,這個(gè)一般用在 PUT 請求上用于指示只更新沒(méi)被改變的資源,這在多個(gè)客戶(hù)端使用 HTTP 服務(wù)時(shí)用來(lái)防止彼此間不會(huì )覆蓋相同內容。


            當服務(wù)器端使用 428 Precondition Required 狀態(tài)碼時(shí),表示客戶(hù)端必須發(fā)送上述的請求頭才能執行請求,這個(gè)方法為服務(wù)器提供一種有效的方法來(lái)阻止 'lost update' 問(wèn)題。


            429 Too Many Requests (太多請求)


            當你需要限制客戶(hù)端請求某個(gè)服務(wù)數量時(shí),該狀態(tài)碼就很有用,也就是請求速度限制。


            在此之前,有一些類(lèi)似的狀態(tài)碼,例如 '509 Bandwidth Limit Exceeded'. Twitter 使用 420 (這不是HTTP定義的狀態(tài)碼)


            如果你希望限制客戶(hù)端對服務(wù)的請求數,可使用 429 狀態(tài)碼,同時(shí)包含一個(gè) Retry-After 響應頭用于告訴客戶(hù)端多長(cháng)時(shí)間后可以再次請求服務(wù)。


            431 Request Header Fields Too Large (請求頭字段太大)


            某些情況下,客戶(hù)端發(fā)送 HTTP 請求頭會(huì )變得很大,那么服務(wù)器可發(fā)送 431 Request Header Fields Too Large 來(lái)指明該問(wèn)題。


            我不太清楚為什么沒(méi)有 430 狀態(tài)碼,而是直接從 429 跳到 431,我嘗試搜索但沒(méi)有結果。唯一的猜測是 430 Forbidden 跟 403 Forbidden 太像了,為了避免混淆才這么做的,天知道!


            511 Network Authentication Required (要求網(wǎng)絡(luò )認證)


            對我來(lái)說(shuō)這個(gè)狀態(tài)碼很有趣,如果你在開(kāi)發(fā)一個(gè) HTTP 服務(wù)器,你不一定需要處理該狀態(tài)碼,但如果你在編寫(xiě) HTTP 客戶(hù)端,那這個(gè)狀態(tài)碼就非常重要。


            如果你頻繁使用筆記本和智能手機,你可能會(huì )注意到大量的公用 WIFI 服務(wù)要求你必須接受一些協(xié)議或者必須登錄后才能使用。


            這是通過(guò)攔截HTTP流量,當用戶(hù)試圖訪(fǎng)問(wèn)網(wǎng)絡(luò )返回一個(gè)重定向和登錄,這很討厭,但是實(shí)際情況就是這樣的。


            使用這些“攔截”客戶(hù)端,會(huì )有一些討厭的副作用。在 RFC 中有提到這兩個(gè)的例子:


            • 如果你在登錄WIFI前訪(fǎng)問(wèn)某個(gè)網(wǎng)站,網(wǎng)絡(luò )設備將會(huì )攔截首個(gè)請求,這些設備往往也有自己的網(wǎng)站圖標 ‘favicon.ico'。登錄后您會(huì )發(fā)現,有一段時(shí)間內你訪(fǎng)問(wèn)的網(wǎng)站圖標一直是WIFI登錄網(wǎng)站的圖標。

            • 如果客戶(hù)端使用HTTP請求來(lái)查找文檔(可能是JSON),網(wǎng)絡(luò )將會(huì )響應一個(gè)登錄頁(yè),這樣你的客戶(hù)端就會(huì )解析錯誤并導致客戶(hù)端運行異常,在現實(shí)中這種問(wèn)題非常常見(jiàn)。


            因此 511 狀態(tài)碼的提出就是為了解決這個(gè)問(wèn)題。


            如果你正在編寫(xiě) HTTP 的客戶(hù)端,你最好還是檢查 511 狀態(tài)碼以確認是否需要認證后才能訪(fǎng)問(wèn)。



            關(guān)鍵字: HTTP協(xié)議 狀態(tài)碼 晨展科技

            文章連接: http://www.gostscript.com/cjwt/629.html

            版權聲明:文章由 晨展科技 整理收集,來(lái)源于互聯(lián)網(wǎng)或者用戶(hù)投稿,如有侵權,請聯(lián)系我們,我們會(huì )立即刪除。如轉載請保留

            双腿国产亚洲精品无码不卡|国产91精品无码麻豆|97久久久久久久极品|无码人妻少妇久久中文字幕
                1.