HTTP狀態碼 — 混圈子必備”語言“
404 — 對於普通人來說,它是“四百零四”,是一個用十進位制表示的數字,但對於開發者,尤其是web開相關的開發者來說,它指代資源沒找到,表示了一種“不存在”的意思,如果我要隱含的表示我的某個東西不見了,我可以說“我的東西404了”(它的設計哲學中隱藏著加密學和壓縮學)。在HTTP架構體系中,狀態碼是很重要的一環,它用各種協商好的數字字元來指代客戶端和服務端在通訊時遇到的各種情況,在前後端分離的當前環境下,前後端處於分離狀態,瞭解各狀態碼的指代含義對於加快開發進度和除錯進度意義重大。
各狀態碼解列
一、1xx:資訊響應( Informational response)
簡介:表示響應已被服務端接收、理解,但還需做進一步處理,該型別狀態碼往往是臨時性的,因為馬上將會變為以下狀態之一:成功(2xx)、重定向(3xx)、異常或錯誤(4xx或5xx)
二、2XX:請求成功(Success)
簡介:表示客戶端傳送的請求已成功被服務端接收、理解、接受
- 200 成功(ok) :標準的HTTP請求響應成功狀態碼,get請求中,響應將包含與請求對應的實體,post請求中,響應將包含實體的描述或實體的操作結果。
- 202 已接受請求(Accepted) :服務端接受了請求,但還沒處理,最終可能會成功、或不會被執行或禁止執行
- 204 無內容(No Content) :服務端成功處理了請求,但沒返回任何內容
- 205 重置內容(Reset Content) :服務端成功處理了請求,但沒返回任何內容,區別於204的是:該響應要求客戶端重置文件檢視。
- 206 部分內容(Partial Content) :服務端成功處理了請求的部分內容,該狀態碼一般用於HTTP下載工具的斷點續傳功能或多個下載的分段進行(如迅雷下載)
三、3XX:重定向(Redirection)
簡介:表示客戶端需要採取進一步的操作才能完成請求,該狀態碼常用於URL重定向,後續的請求地址在本次響應的Location域中指明
- 301 永久移動(Moved Permanently) :被請求資源已被永久的轉移到新位置,並且將來對此資源的引用都應該使用它返回的URI之一,新的永久性URI將在Location域中返回。永遠也別來煩我,去找張三吧。
- 302 臨時移動(Found,原始短語為Moved Temporarily) :由於移動式臨時的,客戶端以後還是用原來的地址傳送請求,新的臨時URI將在Location域中返回
- 303 看其它(See Other) :請求的地址已經被移動,請求的對應地址可以在另一個URI上被找到
- 304 未修改(Not Modified) :表示當前資源的版本在根據請求頭的If-Modified-Since和If-None-Match引數判斷快取後,資源未曾被修改,這樣客戶端不需要重新傳新資源,客戶端仍然使用上次下載的資源復件。
四、4XX:客戶端錯誤(Client errors),
簡介:表示錯誤情況可能是由客戶端導致的,除非是一個HEAD請求,否則伺服器應該把錯誤請求的詳細解釋實體丟擲來闡述錯誤情況,這個錯誤資訊應該告訴是臨時的還是永久狀況,該狀態碼適用於任何請求方法。客戶端應該儘可能把錯誤實體展示給使用者。
- 400 錯誤請求(Bad Request) :明顯的客戶端錯誤請求(如:語法缺陷,請求包過大、無效的請求訊息片段、欺詐性請求路由)
- 401 未授權(Unauthorized) :類似於403 Forbidden錯誤,但不同的是該錯誤是指在特定的認證情況下,使用者未能通過認證(如:登陸認證)
- 403 已拒絕(Forbidden) :該請求已被伺服器驗證為有效,但是伺服器拒絕了它的操作,一般是因為使用者沒有取得對應資源的使用權。
- 404 未找到(Not Found)
- 405 方法不被允許(Method Not Allowed) :該請求方法不支援對需請求資源的訪問。如:明明是需要post方法的,你卻給我傳了個get方法
- 406 請求無法接受(Not Acceptable) :請求資源的內容格式無法滿足請求頭中的要求,因而無法生成響應體,故無法接受,請求的格式由Content-type頭重定義的媒體型別決定
- 408 請求超時(Request Timeout) :客戶端沒有在伺服器預備等待的時間內完成一個請求的傳送,客戶端可以隨時再次提交這一請求而無需進行任何更改。
- 409 衝突(Confict) :因為請求存在衝突無法處理,比如多人線上編輯工具出現的衝突