客戶端與服務端的通訊,無非是客戶端下達命令,服務端返回結果的過程。
客戶端如何給服務端下達命令了,這就要了解的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 | 伺服器當機 |