常見的HTTP狀態(tài)碼(HTTP Status Code)分享
1、三至七種最基本的響應(yīng)代碼
200("OK")
一切正常。實體主體中的文檔(若存在的話)是某資源的表示。
400("Bad Request")
客戶端方面的問題。實體主題中的文檔(若存在的話)是一個錯誤消息。希望客戶端能夠理解此錯誤消息,并改正問題。
500("Internal Server Error")
服務(wù)期方面的問題。實體主體中的文檔(如果存在的話)是一個錯誤消息。該錯誤消息通常無濟于事,因為客戶端無法修復(fù)服務(wù)器方面的問題。
301("Moved Permanently")
當(dāng)客戶端觸發(fā)的動作引起了資源URI的變化時發(fā)送此響應(yīng)代碼。另外,當(dāng)客戶端向一個資源的舊URI發(fā)送請求時,也發(fā)送此響應(yīng)代碼。
404("Not Found") 和410("Gone")
當(dāng)客戶端所請求的URI不對應(yīng)于任何資源時,發(fā)送此響應(yīng)代碼。404用于服務(wù)器端不知道客戶端要請求哪個資源的情況;410用于服務(wù)器端知道客戶端所請求的資源曾經(jīng)存在,但現(xiàn)在已經(jīng)不存在了的情況。
409("Conflict")
當(dāng)客戶端試圖執(zhí)行一個”會導(dǎo)致一個或多個資源處于不一致狀態(tài)“的操作時,發(fā)送此響應(yīng)代碼。
SOAP Web服務(wù)只使用響應(yīng)代碼200("OK")和500("Internal Server Error")。無論是你發(fā)給SOAP服務(wù)器的數(shù)據(jù)有問題,還是服務(wù)器在處理數(shù)據(jù)的過程中出現(xiàn)問題,或者SOAP服務(wù)器出現(xiàn)內(nèi)部問題,SOAP服務(wù)器均發(fā)送500("Internal Server Error")?蛻舳酥挥胁榭碨OAP文檔主體(body)(其中包含錯誤的描述)才能獲知錯誤原因?蛻舳藷o法僅靠讀取響應(yīng)的前三個字節(jié)得知請求成功與否。
2、狀態(tài)碼系列。
1XX:通知
1XX系列響應(yīng)代碼僅在與HTTP服務(wù)器溝通時使用。
100("Continue")
重要程度:中等,但(寫操作時)很少用。
這是對HTTP LBYL(look-before-you-leap)請求的一個可能的響應(yīng)。該響應(yīng)代碼表明:客戶端應(yīng)重新發(fā)送初始請求,并在請求中附上第一次請求時未提供的(可能很大或者包含敏感信息的)表示?蛻舳诉@次發(fā)送的請求不會被拒絕。對LBYL請求的另一個可能的響應(yīng)是417("Expectation Failed")。
請求報頭:要做一個LBYL請求,客戶端必須把Expect請求報頭設(shè)為字符串"100-continue"。除此以外,客戶端還需要設(shè)置其他一些報頭,服務(wù)器將根據(jù)這些報頭決定是響應(yīng)100還是417.
101("Switching Protocols")
重要程度:非常低。
當(dāng)客戶端通過在請求里使用Upgrade報頭,以通知服務(wù)器它想改用除HTTP協(xié)議之外的其他協(xié)議時,客戶端將獲得此響應(yīng)代碼。101響應(yīng)代碼表示“行,我現(xiàn)在改用另一個協(xié)議了”。通常HTTP客戶端會在收到服務(wù)器發(fā)來的101響應(yīng)后關(guān)閉與服務(wù)器的TCP連接。101響應(yīng)代碼意味著,該客戶端不再是一個HTTP客戶端,而將成為另一種客戶端。
盡管可以通過Upgrade報頭從HTTP切換到HTTPS,或者從HTTP1.1切換到某個未來的版本,但實際使用Upgrade報頭的情況比較少。Upgrade報頭也可用于HTTP切換到一個完全不同的協(xié)議(如IRC)上,但那需要在Web服務(wù)器切換為一個IRC服務(wù)器的同時,Web客戶端切換為一個IRC的客戶端,因為服務(wù)器將立刻在同一個TCP連接上開始使用新的協(xié)議。
請求報頭:客戶端把Upgrade報頭設(shè)置為一組希望使用的協(xié)議。
響應(yīng)報頭:如果服務(wù)器同意切換協(xié)議,它就返回一個Upgrade報頭,說明它將切換到那個協(xié)議,并附上一個空白行。服務(wù)器不用關(guān)閉TCP鏈接,而是直接在該TCP連接上開始使用新的協(xié)議。
2XX: 成功
2XX系列響應(yīng)代碼表明操作成功了。
200("OK")
重要程度:非常高。
一般來說,這是客戶端希望看到的響應(yīng)代碼。它表示服務(wù)器成功執(zhí)行了客戶端所請求的動作,并且在2XX系列里沒有其他更適合的響應(yīng)代碼了。
實體主體:對于GET請求,服務(wù)器應(yīng)返回客戶端所請求資源的一個表示。對于其他請求,服務(wù)器應(yīng)返回當(dāng)前所選資源的一個表示,或者剛剛執(zhí)行的動作的一個描述。
201("Created")
重要程度:高。
當(dāng)服務(wù)器依照客戶端的請求創(chuàng)建了一個新資源時,發(fā)送此響應(yīng)代碼。
響應(yīng)報頭:Location報頭應(yīng)包含指向新創(chuàng)建資源的規(guī)范URI。
實體主體:應(yīng)該給出新創(chuàng)建資源的描述與鏈接。若已經(jīng)在Location報頭里給出了新資源的URI,那么可以用新資源的一個表示作為實體主體。
202("Accepted")
重要程度:中等。
客戶端的請求無法或?qū)⒉槐粚崟r處理。請求稍后會被處理。請求看上去是合法的,但在實際處理它時有出現(xiàn)問題的可能。
若一個請求觸發(fā)了一個異步操作,或者一個需要現(xiàn)實世界參與的動作,或者一個需要很長時間才能完成且沒必要讓W(xué)eb客戶端一直等待的動作時,這個相應(yīng)代碼是一個合適的選擇。
響應(yīng)報頭:應(yīng)該把未處理完的請求暴露為一個資源,以便客戶端稍后查詢其狀態(tài)。Location報頭可以包含指向該資源的URI。
實體主體:若無法讓客戶端稍后查詢請求的狀態(tài),那么至少應(yīng)該提供一個關(guān)于何時能處理該請求的估計。
203("Non-Authoritative Information")
重要程度:非常低。
這個響應(yīng)代碼跟200一樣,只不過服務(wù)器想讓客戶端知道,有些響應(yīng)報頭并非來自該服務(wù)器--他們可能是從客戶端先前發(fā)送的一個請求里復(fù)制的,或者從第三方得到的。
版權(quán)保護: 本文「常見的HTTP狀態(tài)碼(HTTP Status Code)分享」由 云主機配置專家 原創(chuàng),轉(zhuǎn)載請保留鏈接: http://www.iqcg.cn/docs/site/55.html