Http協議狀態碼總結

小龍女先生發表於2017-07-09

一、http方法

方法名 說明
get 傳送一個獲取請求,伺服器的響應會包含head與body部分
post 傳送一個輸入資料的請求,伺服器的響應會包含head與body部分
head 伺服器響應的只有head部分
put 向伺服器傳送一個檔案(資源)
trace 目的伺服器在響應請求的時候,會在主體中帶上原始的請求報文,用於客戶端對比防火牆、代理、閘道器等對資料做的改變
options 請求伺服器告知web伺服器支援的功能
delete 請求伺服器刪除url指定的資源

二、http常用狀態碼

1. 100~199資訊狀態碼

狀態碼 說明
101 switching protocols 進行協議切換,通過upgrade響應頭實現,伺服器在以送完還upgrade響應後就會切換為指定的協議。如:http1.0升級為http1.1等。

2. 200~299成功狀態碼

狀態碼 說明
200 ok 請求已成功,請求所希望的響應頭和資料體都隨此響應返回
201 created 請求已被接受,新資源已依據請求的需求要而建立(到達處理程式)。
202 Accepted 請求已被伺服器接受,但尚未處理,響應202狀態碼是來了讓客戶端也可以傳送另外的請求。
203 non-authoritative information 伺服器成功處理請求,但返回的實體頭部元資訊不是來自原始伺服器上有效的確定集合,而是來自本地或第三方的拷貝。當前資訊可能是原始版本的子集或超集
204 no content 請求處理完成,響應只有實體頭,沒有實體內容,客戶端可以不重置檢視
205 reset content 與204的響應一致,但要求客戶端重置響應檢視
206 partial content 部分響應,斷點續傳 或 大檔案分塊傳遞就是這個響應頭

3. 300 ~ 399重定向狀態碼

狀態碼 說明
300 Multiple Choices 被請求的資源有一系列可供選擇的回饋資訊,根據頭元資訊重定向
301 Moved Permanently 永久重定向,重定向URL在應該在響應的head中的location上,如果沒有重定向URL應該也包含在響應體中;如果不是get和head請求,瀏覽器會禁止重定向,除非使用者確認;http/1.0傳送post請求,響應的是301,接下來重定向的也會變成get請求
302 Move temporarily 臨時重定向,其他與301一樣。但cache-control或expires頭可以快取
303 see other 當前請求在另一個url上,而客戶端應該採用get,303不能快取,第二個請求可以;http/1.1處理303與302是一致的(大部分瀏覽器)
304 not modified 客戶端傳送一個帶條件get請求,返回304表示快取
305 use proxy 指定的資源在指定的代理上,location上包含代理所在的url上
307 temporary redirect 與302一致

4. 400~499錯誤狀態碼

狀態碼 說明
400 bad requrest 客戶端傳送了一個錯誤的請求
401 unauthorized 要求客戶端訪問此資源前,需要對自己進行認證
403 forbidden 說明請求被伺服器拒絕,此類一般情況下伺服器不願意說明原因
404 not found 找不到資源
405 method not allowed 傳送的請求所還的方法服務端資源不支援,響應中應該包含allow頭部
406 not acceptable 客戶端可以指定自己願意接受什麼樣的資源,如果服務端不能提供返回此狀態碼

5. 500~599狀態碼

狀態碼 說明
500 internal server error 伺服器內部錯誤
501 not implemented 客戶端請求超出伺服器的能力範圍(如:伺服器不能支援客戶端請求的方法)
502 bad gateway 作用代理閘道器使用的伺服器從請求響應的下一條鏈路上收到了一條偽響應(如:它無法連線到父其閘道器)
503 service unavailable 伺服器現不能完成請求的處理,但將來可以
505 http version not supported 伺服器不支援此協議版本

相關文章