日韩国产精品99成人不卡在线无毒|狠狠躁夜夜爽一级二级精品|亚洲日日噜噜孕妇中文字幕|日韩久草中文三级片

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

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

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

來(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 – 請(qǐng)求的網(wǎng)頁(yè)不存在 

503 – 服務(wù)不可用 


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


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


2xx (成功) 

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


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


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


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


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


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


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


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

 

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


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


428 Precondition Required (要求先決條件)


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


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


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


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


429 Too Many Requests (太多請(qǐng)求)


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


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


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


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


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


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


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


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


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


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


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


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

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


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


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



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

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

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