HTTP的響應碼

一、HTTP的正確響應碼
1xx:請求已經被接收到了,需要進一步處理才能完成,HTTP1.0不支持

100 Continue 上傳大文件前先讓服務器準備,由客戶端發起請求中攜帶Except:100-continue 頭部觸發
101 Switch Protocols協議升級使用,由客戶端發起的請求中攜帶Upgrade頭部,如升級WebSocket/http2.0
102 Processing WebDev請求可能包含許多涉及文件操作的子請求,等待很長時間才能完成子請求,該代碼表示服務器已經收到並正在處理請求,但無響應可用,這樣可以防止客戶端超時,並假設請求丟失


2xx:成功處理請求

200 OK:成功返回響應
201 Created:有新資源在服務器端被成功創建
202 Accept:服務器接收並開始處理請求,但請求未處理完成,這樣一個模糊的概念是有意如此設計,可以覆蓋更多的場景。例如異步,需要長時間處理的任務
203 Non-Authoritative Information:當代理服務器修改了origin-serve的原始響應包體時(例如更換了HTML中的元素值),代理服務器可以通過修改200爲203的方式告知客戶端這一事實,方便客戶端爲這一行爲作出相應的處理,203響應可以被緩存
204 No Content:成功執行了請求且不攜帶響應包體,並暗示客戶端無需更新當前的頁面視圖
205 Reset Content:成功執行了請求且不攜帶響應包體,同時指明客戶端需要更新當前頁面視圖
206 Partial Content:使用Range協議時返回部分響應內容時的響應碼(多線程斷點下載)
207 Multi-Status:RFC4918 在WebDev協議中以XML返回多個資源的狀態
208 Already Reported:RFC5842 ,爲避免相同集合下資源在207響應碼下重複上報,使用208可以使用父集合的響應碼


3xx:重定向使用Location指向的資源或者緩存中的資源。在RFC2068中規定客戶端的重定向次數不應該超過5次,以防止死循環

300 Multiple Choices:資源有多種表述,通過300返回給客戶端後由其自行選擇訪問哪一種表述。由於缺乏明確的細節,300很少使用
301 Moved Permanently:資源永久性的重定向到另一個URI中(瀏覽器可以緩存)
302 Found:資源臨時的重定向到另一個URI中
303 See Other:重定向的其它資源,常用於post/put等方法的響應中
304 Not Modified:當客戶端擁有可能過期的緩存時,會攜帶緩存的標識etag、時間等信息詢問服務器緩存是否仍可複用,而304是告訴客戶端可以複用緩存
307 Temporary Redirect:類似302 ,但明確重定向後請求方法必須與原請求方法相同,不得改變
308 Permanent Redirect:類似301,但明確重定向後請求方法必須與原請求方法相同,不得改變


二、HTTP的錯誤響應碼

4xx:客戶端出現錯誤

400 Bad Request:服務器認爲客戶端出現了錯誤,但不能明確判斷爲以下哪種錯誤時使用此錯誤碼。例如HTTP請求格式錯誤
401 Unauthorized:用戶認證信息缺失或者不正確,導致服務器無法處理請求
407 Proxy Authentication Required:對需要經由代理的請求,認證信息未通過代理服務器的驗證
403 Forbidden:服務器理解請求的含義,但沒有權限執行此請求,比如請求某個服務端目錄下的音視頻資源
404 Not Found:服務器沒有找到對應的資源
410 Gone:服務器沒有找到對應的資源,且明確的知道該位置永久性找不到該資源
405 Method Not Allowed:服務器不支持請求行中的method方法
406 Not Acceptable:對客戶端指定的資源表述不存在(例如對語言或者編碼有要求),服務器返回列表供客戶端選擇
408 Request Timeout:服務器接收請求超時
409 Conflict:資源衝突,例如上傳文件時目標位置已經存在版本更新的資源
411 Length Required:如果請求包含有包體且未攜帶Content-Length頭部,且不屬於chunk類請求時,返回411
412 Precondition Failed:複用緩存時傳遞的If-Unmodified-Since或If-None-Match頭部不被滿足
413 Payload Too Large/Request Entity Too Large:請求的包體超出服務器能處理的最大長度
414 URI Too Long:請求的URI超出服務器能接受的最大長度
415 Unsupported Media Type:上傳的文件類型不被服務器支持
416 Range Not Satisfiable:無法提供Range請求中指定的那段包體
417 Expectation Failed:對於Expect 請求頭部期待的情況無法滿足時的響應碼
421 Misdirected Request:服務器認爲這個請求不該發送給它,因爲它沒有能力處理
426 Upgrade Required:服務器拒絕基於當前HTTP協議提供服務,用過Upgrade頭部告知客戶端必須升級協議才能繼續處理
428 Precondition Required:用戶請求中缺失了條件類頭部,例如If-match
429 Too Many Requests:客戶端發送請求的速率過快
431 Request Header Field Too Large:請求的HEADER 頭部大小超過限制
451 Unavailable For Legal Reasons:RFC7725,由於法律原因資源不可訪問


5xx:服務器端出現錯誤

500 Internal Server Error:服務器內部錯誤,且不屬於以下錯誤類型
501 Not Implemented:服務器不支持實現請求所需要的功能
502 Bad Gateway:代理服務器無法獲取到合法響應
503 Service Unavailable:服務器資源尚未準備好處理當前請求(例如服務端限流)
504 Gateway Timeout:代理服務器無法及時的從上游獲得響應
505 HTTP Version Not Support:請求使用的HTTP協議版本不支持
507 Insufficient Storage:服務器沒有足夠的空間處理請求
508 Loop Detected:訪問資源時檢測到循環
511 Network Authentication Required:代理服務器發現客戶端需要進行身份驗證才能獲得網絡訪問權限

發佈了36 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章