天天看點

知識分享之規範——HTTP 狀态碼

知識分享之規範——HTTP 狀态碼

背景

知識分享之規範類别是我進行整理的日常開發使用的各類規範說明,作為一個程式員需要天天和各種各樣的規範打交道,而有些規範可能我們并不是特别了解,為此我将一些常見的規範均整理到知識分享之規範系列中,便于小夥伴們快速翻閱學習。

參考文獻

​​https://restfulapi.net/http-status-codes/​​

概念

HTTP 定義了這些标準狀态代碼,可用于傳達用戶端請求的結果。狀态碼分為五類。

  • ​​1xx:資訊性​​——傳達傳輸協定級資訊。
  • ​​2xx:成功​​——表示用戶端的請求被成功接受。
  • ​​3xx:重定向​​——表示用戶端必須采取一些額外的行動才能完成他們的請求。
  • ​​4xx:用戶端錯誤​​——這類錯誤狀态代碼将矛頭指向用戶端。
  • ​​5xx:伺服器錯誤​​——伺服器對這些錯誤狀态代碼負責。

1xx 狀态代碼 [資訊]

狀态碼 描述
100 繼續 臨時回應。向用戶端訓示已收到請求的初始部分并且尚未被伺服器拒絕。用戶端應該繼續發送請求的剩餘部分,或者,如果請求已經完成,則忽略此響應。伺服器必須在請求完成後發送最終響應。
101交換協定 為響應來自用戶端的​​更新​​請求标頭而發送,并訓示伺服器正在切換到的協定。
102 處理 (WebDAV) 表示伺服器已收到并正在處理請求,但還沒有響應。
103 早期提示 主要用于與​

​Link​

​标頭一起使用。它建議使用者代理在伺服器準備最終響應時開始預加載資源。

2xx 狀态碼 [成功]

狀态碼 描述
200 好 表示請求成功。
201 已建立 表示請求已成功,并是以建立了新資源。
202 接受 表示請求已收到但尚未完成。它通常用于日志運作請求和批處理。
203 非權威資訊 表示實體标頭中傳回的元資訊不是原始伺服器可用的最終集,而是從本地或第三方副本收集的。呈現的集合可能是原始版本的子集或超集。
204 無内容 伺服器已完成請求,但不需要傳回響應正文。伺服器可以傳回更新後的元資訊。
205 重置内容 訓示用戶端重置發送此請求的文檔。
206部分内容 當​

​Range​

​從用戶端發送标頭以僅請求資源的一部分時使用它。
207 多狀态 (WebDAV) 向用戶端訓示發生了多個操作,并且每個操作的狀态都可以在響應的正文中找到。
208 已報告 (WebDAV) 允許用戶端告訴伺服器前面提到了相同的資源(具有相同的綁定)。它永遠不會作為真正的 HTTP 響應代碼出現在狀态行中,而隻會出現在正文中。
226 IM 已使用 伺服器已完成對資源的 GET 請求,響應是應用于目前執行個體的一個或多個執行個體操作的結果的表示。

3xx 狀态碼 [重定向]

狀态碼 描述
300多項選擇 該請求有多個可能的響應。使用者代理或使用者應該選擇其中之一。
301 永久搬家 請求資源的 URL 已永久更改。新 URL 由​

​Location​

​響應中的标頭字段給出。除非另有說明,否則此響應是可緩存的。
302 找到 請求資源的 URL 已臨時更改。新 URL 由​

​Location​

​​響應中的字段給出。此響應僅在由​

​Cache-Control​

​​or​

​Expires​

​标頭字段訓示時才可緩存。
303 檢視其他 響應可以在不同的 URI 下找到,并且應該在該資源上使用 GET 方法檢索。
304 未修改 訓示用戶端響應沒有被修改,是以用戶端可以繼續使用相同的緩存版本的響應。
305 使用代理(已棄用) 訓示請求的響應必須由代理通路。
306(未使用) 它是一個保留的狀态碼,不再使用。
307臨時重定向 訓示用戶端使用先前請求中使用的相同方法從另一個 URI 擷取請求的資源。它與​

​302 Found​

​之前請求中使用的相同 HTTP 方法類似,但有一個例外。
308 永久重定向(實驗性) 訓示資源現在永久位于由​

​Location​

​​标頭指定的另一個 URI。它與​

​301 Moved Permanently​

​之前請求中使用的相同 HTTP 方法類似,但有一個例外。

4xx 狀态碼(用戶端錯誤)

狀态碼 描述
400 錯誤請求 由于文法不正确,伺服器無法了解該請求。用戶端不應該在沒有修改的情況下重複請求。
401未經授權 表示請求需要使用者認證資訊。用戶端可以使用合适的 Authorization 頭域重複請求
402 需要付款(實驗性) 保留供将來使用。它旨在用于數字支付系統。
403 禁止 未經授權的請求。用戶端沒有内容的通路權限。與 401 不同,用戶端的身份為伺服器所知。
404 未找到 伺服器找不到請求的資源。
405 方法不允許 伺服器知道請求 HTTP 方法,但已被禁用,不能用于該資源。
406 不可接受

​Accept​

​伺服器在請求中發送的标頭中找不到任何符合使用者代理給出的标準的内容。
407 需要代理身份驗證 表示用戶端必須首先通過代理驗證自己。
408 請求逾時 表示伺服器在伺服器配置設定的逾時期限内沒有收到來自用戶端的完整請求。
409 沖突 由于與資源的目前狀态沖突,無法完成請求。
410 走了 請求的資源在伺服器上不再可用。
411 長度要求 伺服器拒絕接受沒有定義 Content-Length 的請求。如果用戶端添加了有效的​

​Content-Length​

​頭域,用戶端可以重複請求。
412 前置條件失敗 用戶端在其标頭中指出了伺服器不滿足的先決條件。
413請求實體太大 請求實體大于伺服器定義的限制。
414 請求 URI 太長 用戶端請求的 URI 比伺服器可以解釋的要長。
415 不支援的媒體類型

​Content-type​

​伺服器不支援請求的媒體類型。
416 請求的範圍不滿足

​Range​

​無法滿足請求中标頭字段指定的範圍。
417 期望失敗

​Expect​

​伺服器無法滿足請求頭字段訓示的期望。
418 我是一個茶壺(RFC 2324) 它被定義為 April 的笑話,預計不會由實際的 HTTP 伺服器實作。(​​RFC 2324​​)
420增強你的冷靜(推特) 當用戶端受到速率限制時,由 Twitter 搜尋和趨勢 API 傳回。
422 無法處理的實體 (WebDAV) 伺服器了解請求實體的内容類型和文法,但由于某種原因仍然無法處理請求。
423 鎖定 (WebDAV) 正在通路的資源被鎖定。
424 失敗的依賴 (WebDAV) 由于先前的請求失敗,請求失敗。
425 太早了 (WebDAV) 表示伺服器不願意冒險處理可能被重放的請求。
426 需要更新 伺服器拒絕執行請求。伺服器将在用戶端更新到不同的協定後處理請求。
428 需要先決條件 源伺服器要求請求是有條件的。
429 請求過多 使用者在給定時間内發送了太多請求(“速率限制”)。
431 請求标頭字段太大 伺服器不願意處理請求,因為它的頭字段太大。
444無響應(Nginx) Nginx 伺服器不向用戶端傳回任何資訊并關閉連接配接。
449重試(微軟) 應在執行适當的操作後重試該請求。
450 被 Windows 家長控制阻止 (Microsoft) Windows 家長控制已打開并阻止對給定網頁的通路。
451 因法律原因不可用 使用者代理請求的資源無法合法提供。
499 用戶端關閉請求(Nginx) 當 HTTP 伺服器正在處理其請求時,用戶端關閉了連接配接,使伺服器無法發回 HTTP 标頭。

5xx 狀态碼(伺服器錯誤)

狀态碼 描述
500内部伺服器錯誤 伺服器遇到了阻止它完成請求的意外情況。
501 未實施 伺服器不支援HTTP方式,無法處理。
502錯誤的網關 伺服器在作為網關擷取處理請求所需的響應時收到無效響應。
503服務不可用 伺服器尚未準備好處理請求。
504網關逾時 伺服器充當網關,無法及時獲得請求的響應。
505 不支援 HTTP 版本(實驗性) 伺服器不支援請求中使用的 HTTP 版本。
506變種也協商(實驗) 表示伺服器有内部配置錯誤:選擇的變體資源被配置為自己參與透明内容協商,是以不是協商過程中的适當端點。
507 存儲空間不足 (WebDAV) 無法對資源執行該方法,因為伺服器無法存儲成功完成請求所需的表示。
508 檢測到環路 (WebDAV) 伺服器在處理請求時檢測到無限循環。
510 未擴充 伺服器需要對請求進行進一步擴充才能完成它。
511 需要網絡身份驗證 表示用戶端需要進行身份驗證才能獲得網絡通路權限。

本文聲明:

知識分享之規範——HTTP 狀态碼

88x31.png

​​知識共享許可協定​​

繼續閱讀