HTTP方法及狀態碼

明易發表於2018-12-08

客戶端與服務端的通訊,無非是客戶端下達命令,服務端返回結果的過程。

客戶端如何給服務端下達命令了,這就要了解的HTTP方法。

服務端如何告知客戶端結果了,這就要談談狀態碼。

HTTP方法

客戶端向服務端請求資源時,是可以指定請求的資源按何種方式返回。這就是HTTP方法的職責,常見的HTTP方法如下:

方法 說明 支援的HTTP協議版本
GET 獲取資源 1.0、1.1
POST 傳輸實體主體 1.0、1.1
PUT 傳輸檔案 1.0、1.1
HEAD 獲得報文首部 1.0、1.1
DELETE 刪除檔案 1.0、1.1
OPTIONS 詢問支援的方法 1.1
TRACE 追蹤路徑 1.1
CONNECT 要求用隧道協議連線代理 1.1

狀態碼

狀態碼的職責,是當客戶端向服務端傳送請求時,描述返回的請求結果。藉助狀態碼,使用者可以知道服務端是正常處理了請求,還是出現了錯誤。

狀態碼由3位數字和原因短語組成。

數字中的第一位指定了響應類別,響應類別有以下5種:

類別 原因短語
1XX 資訊性狀態碼 接收的請求正在處理
2XX 成功狀態碼 請求正常處理完畢
3XX 重定向狀態碼 需要進行附加操作以完成請求
4XX 客戶端錯誤狀態碼 服務端無法處理請求
5XX 伺服器錯誤狀態碼 伺服器處理請求出錯

狀態碼種類繁多,常用的只有14個,以下一一介紹。

2XX 成功

含義 備註
200 OK 請求已正常處理
204 No Content 請求處理成功,但沒有資源可返回 一般在只需要從客戶端往伺服器發生資訊,而對客戶端不需要傳送新資訊的情況下使用
206 Partial Content 客戶端進行了範圍請求,響應報文中包含由Content-Range指定範圍的實體內容

3XX 重定向

3XX響應結果表明瀏覽器需要執行某些特殊的處理以正確處理請求。

含義 備註
301 Moved Permanently 永久性重定向
302 Found 臨時重定向
303 See Other 規定使用GET方法定向獲取請求資源 與302狀態碼有相同的功能,但303狀態碼明確表示客戶端應當採用GET方式獲取資源
304 Not Modified 資源已找到,但未符合條件請求 304跟重定向沒有關係

4XX 客戶端錯誤

4XX的響應結果表明客戶端是發生錯誤的原因所在。

含義 備註
400 Bad Request 請求報文有語法錯誤
401 Unauthorized 傳送的請求需要有通過HTTP認證的認證資訊
403 Forbidden 請求被伺服器拒絕
404 Not Found 伺服器上沒有請求資源 伺服器拒絕請求且不想說明理由時也會使用404

5XX伺服器錯誤

表明伺服器本身發生錯誤。

含義 備註
500 Internal Server Error 服務端執行請求時發生了錯誤 也可能是Web應用存在bug或某些臨時故障
503 Server Unavailable 伺服器當機

相關文章