(四)HTTP狀態碼
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狀態碼