狀態碼的職責是當客戶端向服務器發送請求時,描述返回的請求結果。借助狀態碼,用戶可以知道服務器端是正常處理了請求還是出現了錯誤。
2XX——表明請求被正常處理了
1、200 OK:請求已正常處理。
2、204 No Content:請求處理成功,但沒有任何資源可以返回給客戶端,一般在只需要從客戶端往服務器發送信息,而對客戶端不需要發送新信息內容的情況下使用。
3、206 Partial Content:是對資源某一部分的請求,該狀態碼表示客戶端進行了范圍請求,而服務器成功執行了這部分的GET請求。響應報文中包含由Content-Range指定范圍的實體內容。
3XX——表明瀏覽器需要執行某些特殊的處理以正確處理請求
4、301 Moved Permanently:資源的uri已更新,你也更新下你的書簽引用吧。永久性重定向,請求的資源已經被分配了新的URI,以后應使用資源現在所指的URI。
5、302 Found:資源的URI已臨時定位到其他位置了,姑且算你已經知道了這個情況了。臨時性重定向。和301相似,但302代表的資源不是永久性移動,只是臨時性性質的。換句話說,已移動的資源對應的URI將來還有可能發生改變。
6、303 See Other:資源的URI已更新,你是否能臨時按新的URI訪問。該狀態碼表示由於請求對應的資源存在着另一個URL,應使用GET方法定向獲取請求的資源。303狀態碼和302狀態碼有着相同的功能,但303狀態碼明確表示客戶端應當采用GET方法獲取資源,這點與302狀態碼有區別。
當301,302,303響應狀態碼返回時,幾乎所有的瀏覽器都會把POST改成GET,並刪除請求報文內的主體,之后請求會自動再次發送。
7、304 Not Modified:資源已找到,但未符合條件請求。該狀態碼表示客戶端發送附帶條件的請求時(采用GET方法的請求報文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部)服務端允許請求訪問資源,但因發生請求未滿足條件的情況后,直接返回304.。
8、307 Temporary Redirect:臨時重定向。與302有相同的含義。
4XX——表明客戶端是發生錯誤的原因所在。
9、400 Bad Request:服務器端無法理解客戶端發送的請求,請求報文中可能存在語法錯誤。
10、401 Unauthorized:該狀態碼表示發送的請求需要有通過HTTP認證(BASIC認證,DIGEST認證)的認證信息。
11、403 Forbidden:不允許訪問那個資源。該狀態碼表明對請求資源的訪問被服務器拒絕了。(權限,未授權IP等)
12、404 Not Found:服務器上沒有請求的資源。路徑錯誤等。
5XX——服務器本身發生錯誤
13、500 Internal Server Error:貌似內部資源出故障了。該狀態碼表明服務器端在執行請求時發生了錯誤。也有可能是web應用存在bug或某些臨時故障。
14、503 Service Unavailable:抱歉,我現在正在忙着。該狀態碼表明服務器暫時處於超負載或正在停機維護,現在無法處理請求。
參考文獻:圖解HTTP【日】上野宣 著 於均良 議