瞭解所有的 HTTP/1.1 的方法及用途

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>...
  1. 返回index.html頁面資源。
  2. 且僅返回2020年6月22號23點58分43秒之後更新過的index.html頁面資源
  3. 若未更新返回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
  1. 返回狀態碼204 No Content 表示該html已存在於服務器上
  2. 返回狀態碼200 OK 表示該html已存在於服務器上,並且完成了更新。
  3. 返回狀態碼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
  1. 狀態碼 202 (Accepted) 表示請求的操作可能會成功執行,但是尚未開始執行。
  2. 狀態碼 204 (No Content) 表示操作已執行,但是無進一步的相關信息(表示html不存在,或者已從該服務器刪除過了)。
  3. 狀態碼 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
  1. *表示對整個服務器支持的方法進行查詢
  2. CORS進行預檢測請求,確定服務器是否支持實際請求的方法。
    1. 預檢請求報文中的 Access-Control-Request-Method 首部字段告知服務器實際請求所使用的 HTTP 方法;
    2. Access-Control-Request-Headers 首部字段告知服務器實際請求所攜帶的自定義首部字段。
    3. 服務器所返回的 Access-Control-Allow-Methods 首部字段將所有允許的請求方法告知客戶端。

TRACE:追蹤路徑

可以讓web服務器端將之前的請求通信返回給客戶端。發送請求設置Max-Forwards首部字段爲5,每記過一個服務器,該數字減一。最終服務器將返回所接收到的請求報文。通常用來debug看請求報文是否正常發送,或被篡改。

Connect:要求用隧道協議鏈接代理

可以開通客戶端到請求資源之間的通道,可理解爲實現了正向代理功能,通過代理服務器跟目標服務器建立鏈接。且能訪問採用ssl協議的站點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章