http/1.1 中可使用的方法,源自《圖解HTTP》
GET:獲取資源
用來請求服務器中已被URI識別的資源。經服務器解析後返回相應內容。若請求的是文本即返回文本的內容。
類型 | 內容 |
---|---|
請求 | GET /index.html HTTP/1.1 Host: www.hackr.jp If-Modified-Since: Mon, Jun 22 2020 23:58:43 GMT |
響應 | HTTP/1.1 200 OK Date: Mon, Jun 22 2020 23:58:43 GMT Content-Length: 232 Content-Type: text/html <html>... |
- 返回index.html頁面資源。
- 且僅返回2020年6月22號23點58分43秒之後更新過的index.html頁面資源
- 若未更新返回304 Not Modified
304
狀態碼即是我們通常所說的協商緩存會出現的狀態碼,我們通常在HTTP請求報文中的可選首部字段If-Modified-Since
來指定某一日期。僅當資源修改日期超過該指定日期時才返回。
POST:傳輸實體主體
POST方法用來傳輸實體住體,雖然GET也可以通過query來傳輸內容實體,但是主要目的還是爲了獲取資源。POST用來傳輸內容主體並獲取服務器處理後的結果。除了本身安全性和傳輸內容長度的不同,主要是語義上的差別。
類型 | 內容 |
---|---|
請求 | POST /submit HTTP/1.1 Host: foo.com Content-Type: application/x-www-form-urlencoded Content-Length: 13 |
響應 | 返回submit處理數據後的結果 |
PUT:傳輸文件
POST方法用來傳輸文件。
類型 | 內容 |
---|---|
請求 | PUT /new.html HTTP/1.1 Host: example.com Content-type: text/html Content-length: 16 <p>New File</p> |
響應 | HTTP/1.1 201 Created Content-Location: /new.html |
響應 | HTTP/1.1 204 No Content Content-Location: /existing.html |
- 返回狀態碼
204 No Content
表示該html已存在於服務器上 - 返回狀態碼
200 OK
表示該html已存在於服務器上,並且完成了更新。 - 返回狀態碼
201 Created
表示目標資源不存在,已經通過PUT創建了。
HEAD:用於獲取響應報文頭部
HEAD用於獲取響應報文頭部,且同GET方法獲取的報文頭部一致,但是不反悔響應報文主體。主要用於請求大文件時,通過獲取頭部得悉文件大小,再決定是否進行下載。
類型 | 內容 |
---|---|
請求 | HEAD /index.html HTTP/1.1 Host: example.com |
響應 | HTTP/1.1 200 OK Date: Mon, Jun 22 2020 23:58:43 GMT Content-Length: 232 Content-Type: text/html |
DELETE:用於刪除文件
DELETE用於刪除服務器文件,同PUT相反。
類型 | 內容 |
---|---|
請求 | DELETE /new.html HTTP/1.1 Host: example.com |
響應 | HTTP/1.1 204 No Content |
- 狀態碼 202 (Accepted) 表示請求的操作可能會成功執行,但是尚未開始執行。
- 狀態碼 204 (No Content) 表示操作已執行,但是無進一步的相關信息(表示html不存在,或者已從該服務器刪除過了)。
- 狀態碼 200 (OK) 表示操作已執行,並且響應中提供了相關狀態的描述信息。
OPTIONS:詢問支持的方法
OPTIONS用於查詢幀對請求URI指定資源的支持的方法。
類型 | 內容 |
---|---|
請求 | 1. OPTIONS /index.html HTTP/1.1 2. OPTIONS * HTTP/1.1 |
響應 | HTTP/1.1 200 OK Allow: OPTIONS, GET, HEAD, POST |
- *表示對整個服務器支持的方法進行查詢
- CORS進行預檢測請求,確定服務器是否支持實際請求的方法。
- 預檢請求報文中的
Access-Control-Request-Method
首部字段告知服務器實際請求所使用的 HTTP 方法; Access-Control-Request-Headers
首部字段告知服務器實際請求所攜帶的自定義首部字段。- 服務器所返回的
Access-Control-Allow-Methods
首部字段將所有允許的請求方法告知客戶端。
- 預檢請求報文中的
TRACE:追蹤路徑
可以讓web服務器端將之前的請求通信返回給客戶端。發送請求設置Max-Forwards首部字段爲5,每記過一個服務器,該數字減一。最終服務器將返回所接收到的請求報文。通常用來debug看請求報文是否正常發送,或被篡改。
Connect:要求用隧道協議鏈接代理
可以開通客戶端到請求資源之間的通道,可理解爲實現了正向代理功能,通過代理服務器跟目標服務器建立鏈接。且能訪問採用ssl協議的站點。