標籤:style blog http io ar color 使用 sp for
HTTP狀態代碼是一個依附於HTTP響應的3位元字,它是協議語義的一部分,能在最基本的層面上讓用戶端知道伺服器在嘗試處理請求的時候發生了什麼事情。HTTP規範總共定義了41一個響應碼,本文將對所有的狀態代碼進行介紹。
一、狀態代碼家族
HTTP狀態代碼的第一位元字是表明請求進展情況的一個非常通用的指示。HTTP規範使用1~5作為首數字分別定義了5個狀態代碼家族。
1xx:Information
僅在HTTP用戶端與伺服器之間進行協商時使用。
2xx:Successful
用戶端所要求的任意的狀態代碼轉換已經發生。
3xx:Redirection
用戶端要求的狀態轉換沒有發生。但是如果用戶端願意發起一個稍有不同的HTTP請求,該請求應該會完成用戶端要求的行為。
4xx:Client Error
由於HTTP請求的問題,導致用戶端要求的狀態轉換沒有發生。該請求可能有缺陷、不合邏輯、自相矛盾或者該請求無法被伺服器接受。
5xx:Server Error
由於伺服器端的問題,導致用戶端要求的狀態轉換沒有發生。用戶端或許什麼都做不了,只能等待問題被修複。
二、最低限度的四個狀態代碼(200 301 400 500)
200(OK)
一切都非常順利,實體訊息體重的文檔(如果有)是某個資源的一份表述。
301(Moved Permanently)
當用戶端觸發了某個將資源從一個URL移動到另一個URL的狀態轉換時將會發送該狀態代碼。在移動後,向老的URL發送的請求將同樣會導致一個301狀態代碼。
400(Bad Request)
用戶端存在問題。實體訊息體中的文檔(如果有)是一段錯誤訊息。希望用戶端能理解錯誤訊息並使用它來修複問題。
500(Internal Server Error)
伺服器端存在問題。實體訊息體中的文檔是一段錯誤的訊息。該錯誤訊息可能幫不了什麼忙,因為用戶端不能修複伺服器端的問題。
三、狀態代碼列表
1xx:Information
100(Continue)
重要性:低到中等
這是應對HTTP look-before-you-leap(LBYL)請求的可能相應中的一種。該狀態代碼指示用戶端應該重新發送它的初始請求,包括在首次請求中被省略了的(可能較大或較敏感)表述。用戶端不需要擔心發送表述後又被拒絕的問題。應對LBYL請求的另一個可能的相應是417(Expectation Failed)。
101(Switching Protocols)
重要性:非常低
用戶端只會在當請求中使用了Upgrade前序來通知伺服器它想要選擇使用排除HTTP之外的別的協議時才會收到該響應碼。101狀態代碼的意思是說“沒問題,現在我開始使用另外一種協議跟你交談”。
2xx:Successful
200(OK)
重要性:非常高
這是用戶端大部分情況下希望看到的狀態代碼。它指示狀態轉換已經結束,並且在2xx系列中找不到更加具體且合適的狀態代碼的時候可以使用它。
201(Created)
重要性:高
當伺服器基於用戶端的請求建立了新的資源後它會發送改狀態代碼。
202(Accepted)
重要性:中等
用戶端的請求不能或者不會被即時地處理,並且將會在後續被處理。
203(Non-Authoritative Information)
重要性:非常低
該狀態代碼與200相同,但是除此之外伺服器還想讓用戶端瞭解一些並非來自該伺服器的相應前序。這些前序可能反映自用戶端的前一個請求,或者是從第三方組織獲得的。
204(No Content)
重要性:高
該狀態代碼通常在響應例如PUT請求這樣的非安全請求時被發送,意思是伺服器已經執行了狀態轉換,但是它拒絕發送回任何錶述或狀態轉換的描述。伺服器可能會在對應GET請求的響應中發送回204。這意味著該請求的資源存在,但是它擁有一個空的表述。相比於304(Not Modified),204通常見於瀏覽器中的JavaScript應用。它讓伺服器可以告訴用戶端,用戶端的輸入已經被接受,但是該用戶端不應該修改任何的UI元素。
205(Requet Content)
重要性:低
該狀態類似於204,但是它暗示了用戶端應該重設資料來源的視圖或資料結構。如果你在你的Web瀏覽器中提交了一個HTML表單,並得到了204的響應,那麼你的資料仍然還在表單裡,而你還可以修改它們。但是如果你得到一個205,這些表單欄位將會重設為它們的原始值。
206(Partial Conent)
重要性:對於支援partial GET 的API來說非常高,而對於其他API則比較比較低。
該響應碼類似於200,但是它被指定作為partial GET請求的響應:也就是說,該請求使用了Content-Range這一請求前序。用戶端通常會發起一個局部請求來恢複一個被中斷的大型二進位表述的下載。
(未完待續)
轉載請註明來源:http://www.cnblogs.com/caoming/p/4158662.html
參考資料:O‘REILLY RESTful Web APIS
[RESTful]HTTP狀態代碼