1. 程式人生 > >(四)HTTP狀態碼

(四)HTTP狀態碼

bad 滿足 div redirect 瀏覽器 再次 nav 永久 ava

HTTP狀態碼負責表示客戶端HTTP請求的返回結果、標記服務器端的處理是否正常、通知出現的錯誤等工作。

狀態碼的類別:

技術分享圖片

記錄在RFC2616上的HTTP狀態碼有40種,再加上WebDAV等的擴展,數量達到了60余種,但是實際上經常使用的只有14種,接下來介紹下具有代表性的這14個狀態碼。

1、200 OK  表示請求已正常處理。

2、204 No Content  表示請求處理成功,但沒有資源可返回。

3、206 Partial Content  表示客戶端進行了範圍請求,服務器執行了這部分的GET請求。Content-Range指定響應的範圍。

4、301 Moved Permanently  表示請求的資源已被分配了新的URI,以後應使用新的URI(永久性重定向)。

5、302 Found  表示請求的資源已被分配了新的URI,希望本次請求使用新的URI(臨時性重定向)。

6、303 See Other  表示請求的資源已被分配了新的URI,希望本次請求使用新的URI,並且使用GET方法獲取請求的資源。

註:當返回301、302、303響應狀態碼時,幾乎所有的瀏覽器都會把POST改成GET,並刪除請求報文內的主體,之後請求會自動再次發送。

301、302標準是禁止將POST方法改變成GET方法的,但實際上大家都沒按照這樣來,所以直接使用303響應是最理想的。

7、304 Not Modified  表示客戶端發送附帶條件的請求時,服務器允許請求訪問資源,但是未滿足條件。不返回響應體,和重定向沒有關系。

註:附帶條件是指采用GET方法的請求報文中包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-UnModified-Since中任一首部。

8、307 Temporary Redirect  表示臨時重定向,和302相同。

9、404 Bad Request  表示請求報文中存在語法錯誤。

註:瀏覽器會像對待200 OK 一樣對待該狀態碼。

10、401 Unauthorized  表示發送的請求需要通過HTTP認證,如果這是第二次返回401,則表示認證失敗。

11、403 Forbidden  表示請求被服務器拒絕。

12、404 Not Found  表示服務器上無法找到請求的資源。

13、500 Internal Server Error  表示服務器端在執行請求時發生了錯誤。

14、503 Service Unavailable  表示服務器忙,無法處理請求。可能是服務器暫時處於超負載或正在進行停機維護。

(四)HTTP狀態碼