http請求狀態碼
Http狀態碼(響應碼)用來表明HTTP請求是否已經成功完成.HTTP響應類型一共分五大類:消息響應,成功響應,重定向,客戶端錯誤,伺服器端錯誤.
下表列出了所有Http狀態碼,以及他們各自所代表的含義.
Http狀態碼
#狀態碼原因短語代表含義HTTP 版本消息響應100Continue
(繼續)客戶端應當繼續發送請求.這個臨時響應是用來通知客戶端它的部分請求已經被伺服器接收,且仍未被拒絕.客戶端應當繼續發送請求的剩餘部分,或者如果請求已經完成,忽略這個響應.伺服器必須在請求完成後向客戶端發送一個最終響應.HTTP/1.1 可用101Switching Protocol
(切換協議)伺服器已經理解了客戶端的請求,並將通過Upgrade消息頭通知客戶端採用不同的協議來完成這個請求。在發送完這個響應最後的空行後,伺服器將會切換到 在Upgrade消息頭中定義的那些協議。: 只有在切換新的協議更有好處的時候才應該採取類似措施。例如,切換到新的HTTP版本比舊版本更有優勢,或者切換到一個實時且同步的協議以傳送利用此類特 性的資源。HTTP/1.1 可用成功響應200OK
(成功)請求成功.成功的意義根據請求所使用的方法不同而不同.
- GET: 資源已被提取,並作為響應體傳回客戶端.
- HEAD: 實體頭已作為響應頭傳回客戶端
- POST: 經過伺服器處理客戶端傳來的數據,適合的資源作為響應體傳回客戶端.
- TRACE: 伺服器收到請求消息作為響應體傳回客戶端.
PUT, DELETE, 和 OPTIONS 方法永遠不會返回 200 狀態碼.HTTP/0.9 可用201Created
(已創建)請求成功,而且有一個新的資源已經依據請求的需要而建立,通常這是 PUT 方法得到的響應碼.HTTP/0.9 可用202Accepted
(已創建)伺服器已接受請求,但尚未處理。正如它可能被拒絕一樣,最終該請求可能會也可能不會被執行。在非同步操作的場合下,沒有比發送這個狀態碼更方便的做法了。:返回202狀態碼的響應的目的是允許伺服器接受其他過程的請求(例如某個每天只執行一次的基於批處理的操作),而不必讓客戶端一直保持與伺服器的連接直到批處理操作全部完成。在接受請求處理並返回202狀態碼的響應應當在返回的實體中包含一些指示處理當前狀態的信息,以及指向處理狀態監視器或狀態預測的指針,以便用戶能夠估計操作是否已經完成。HTTP/0.9 可用203Non-Authoritative Information
(未授權信息)伺服器已成功處理了請求,但返回的實體頭部元信息不是在原始伺服器上有效的確定集合,而是來自本地或者第三方的拷貝,如果不是上述情況,使用200狀態碼才是最合適的.
HTTP/0.9 and 1.1204No Content
(無內容)該響應沒有響應內容,只有響應頭,響應頭也可能是有用的.用戶代理可以根據新的響應頭來更新對應資源的緩存信息.HTTP/0.9 可用205Reset Content
(重置內容)告訴用戶代理去重置發送該請求的窗口的文檔視圖.HTTP/1.1 可用206Partial Content
(部分內容)當客戶端通過使用range頭欄位進行文件分段下載時使用該狀態碼HTTP/1.1 可用重定向300Multiple Choice
(多種選擇)該請求有多種可能的響應,用戶代理或者用戶必須選擇它們其中的一個.伺服器沒有任何標準可以遵循去代替用戶來進行選擇.HTTP/1.0 and later301Moved Permanently
(永久移動)該狀態碼錶示所請求的URI資源路徑已經改變,新的URL會在響應的Location:頭欄位里找到.HTTP/0.9 可用302Found
(臨時移動)該狀態碼錶示所請求的URI資源路徑臨時改變,並且還可能繼續改變.因此客戶端在以後訪問時還得繼續使用該URI.新的URL會在響應的Location:頭欄位里找到.HTTP/0.9 可用303See Other
(查看其他位置)伺服器發送該響應用來引導客戶端使用GET方法訪問另外一個URI.HTTP/0.9 and 1.1304Not Modified
(未修改)告訴客戶端,所請求的內容距離上次訪問並沒有變化. 客戶端可以直接從瀏覽器緩存里獲取該資源.HTTP/0.9 可用305Use Proxy
(使用代理)所請求的資源必須統過代理才能訪問到.由於安全原因,該狀態碼並未受到廣泛支持.HTTP/1.1 可用306unused
(未使用)這個狀態碼已經不再被使用,當初它被用在HTTP 1.1規範的舊版本中.HTTP/1.1 可用307Temporary Redirect
(臨時重定向)伺服器發送該響應用來引導客戶端使用相同的方法訪問另外一個URI來獲取想要獲取的資源.新的URL會在響應的Location: 頭欄位里找到.與302狀態碼有相同的語義,且前後兩次訪問必須使用相同的方法(GET POST).
HTTP/1.1 可用308Permanent Redirect
(永久重定向)所請求的資源將永久的位於另外一個URI上.新的URL會在響應的 Location: 頭欄位里找到.與301狀態碼有相同的語義,且前後兩次訪問必須使用相同的方法(GET POST).
HTTPbis (試驗草案)客戶端錯誤400Bad Request
(錯誤請求)因發送的請求語法錯誤,伺服器無法正常讀取.HTTP/0.9 可用401Unauthorized
(未授權)需要身份驗證後才能獲取所請求的內容,類似於403錯誤.不同點是.401錯誤後,只要正確輸入帳號密碼,驗證即可通過.HTTP/0.9 可用402Payment Required
(需要付款)該狀態碼被保留以供將來使用.創建此代碼最初的目的是為數字支付系統而用,然而,到現在也沒投入使用.HTTP/0.9 and 1.1403Forbidden
(禁止訪問)客戶端沒有權利訪問所請求內容,伺服器拒絕本次請求.HTTP/0.9 可用404Not Found
(未找到)伺服器找不到所請求的資源.由於經常發生此種情況,所以該狀態碼在上網時是非常常見的.HTTP/0.9 可用405Method Not Allowed
(不允許使用該方法)該請求使用的方法被伺服器端禁止使用,RFC2616中規定, GET 和 HEAD方法不能被禁止.HTTP/1.1 可用406Not Acceptable
(無法接受)在進行伺服器驅動內容協商後,沒有發現合適的內容傳回給客戶端.HTTP/1.1 可用407Proxy Authentication Required
(要求代理身份驗證)類似於狀態碼 401,不過需要通過代理才能進行驗證.
HTTP/1.1 可用408Request Timeout
(請求超時)客戶端沒有在伺服器預備等待的時間內完成一個請求的發送.這意味著伺服器將會切斷和客戶端的連接. 在其他瀏覽器中,這種響應更常見一些, 例如Chrome 和 IE9, 目的是為了使用HTTP 預連機制加快瀏覽速度. 同時注意,一些伺服器不發送此種響應就直接切斷連接.HTTP/1.1 可用409Conflict
(衝突)該請求與伺服器的當前狀態所衝突.HTTP/1.1 可用410Gone
(已失效)所請求的資源已經被刪除.HTTP/1.1 可用411Length Required
(需要內容長度頭)因伺服器在本次請求中需要 Content-Length頭欄位,而客戶端沒有發送.所以,伺服器拒絕了該請求.HTTP/1.1 可用412Precondition Failed
(預處理失敗)伺服器沒能滿足客戶端在獲取資源時在請求頭欄位中設置的先決條件.HTTP/1.1 可用413Request Entity Too Large
(請求實體過長)請求實體大小超過伺服器的設置的最大限制,伺服器可能會關閉HTTP鏈接並返回Retry-After頭欄位.HTTP/1.1 可用414Request-URI Too Long
(請求網址過長)客戶端請求所包含的URI地址太長,以至於伺服器無法處理.HTTP/1.1 可用415Unsupported Media Type
(媒體類型不支持)伺服器不支持客戶端所請求的媒體類型,因此拒絕該請求.HTTP/1.1 可用416Requested Range Not Satisfiable
(請求範圍不合要求)請求中包含的Range頭欄位無法被滿足,通常是因為Range中的數字範圍超出所請求資源的大小.HTTP/1.1 可用417Expectation Failed
(預期結果失敗)在請求頭 Expect 中指定的預期內容無法被伺服器滿足.HTTP/1.1 可用伺服器端錯誤500Internal Server Error
(內部伺服器錯誤)伺服器遇到未知的無法解決的問題.HTTP/0.9 可用501Implemented
(未實現)伺服器不支持該請求中使用的方法,比如POST 和 PUT.只有GET 和 HEAD 是RFC2616規範中規定伺服器必須實現的方法.HTTP/0.9 可用502Bad Gateway
(網關錯誤)伺服器作為網關且從上游伺服器獲取到了一個無效的HTTP響應.HTTP/0.9 可用503Service Unavailable
(服務不可用)由於臨時的伺服器維護或者過載,伺服器當前無法處理請求.這個狀況是臨時的,並且將在一段時間以後恢復.如果能夠預計延遲時間,那麼響應中可以包含一個Retry-After:頭用以標明這個延遲時間.如果沒有給出這個Retry-After:信息,那麼客戶端應當以處理500響應的方式處理它.同時,這種情況下,一個友好的用於解釋伺服器出現問題的頁面應當被返回,並且,緩存相關的HTTP頭信息也應該包含,因為通常這種錯誤提示網頁不應當被客戶端緩存.HTTP/0.9 可用504Gateway Timeout
(網關超時)伺服器作為網關且不能從上游伺服器及時的得到響應返回給客戶端.HTTP/1.1 可用505HTTP Version Not Supported
(HTTP版本不受支持)伺服器不支持客戶端發送的HTTP請求中所使用的HTTP協議版本.HTTP/1.1 可用


TAG:程序員小新人學習 |