4.1 HTTP方法列表

HTTP 請求中的第一個詞是方法名稱。甚至與 Java 中的調用方法有些類比。HTTP 請求中的方法定義了要對資源執行的基本操作。

什麼樣的資源?問題是,在萬維網誕生之初,服務器只是分別存儲 HTML 文件,請求是針對這樣的文​​件,並描述了需要對資源/文件執行的一些操作。

HTTP 標準指定了以下方法:

# 方法 描述
1個 得到 用於查詢指定資源的內容。
2個 郵政 用於將數據從客戶端傳輸到服務器。更改服務器上資源的狀態。
3個 用於將數據從客戶端傳輸到服務器。在服務器上創建新資源。
4個 刪除 刪除服務器上的指定資源。
5個 類似於 GET,但沒有響應主體。需要獲取響應標頭
6個 選項 向服務器請求指定資源的支持方法列表。
7 痕跡 服務方式。允許您查明請求是否被它經過的服務器更改。
8個 連接 服務方式。用於建立安全連接。

4.2 獲取方法

GET 方法是最流行的 HTTP 方法。這是瀏覽器在向服務器發送下一頁請求時調用的內容。

例如,如果您在瀏覽器中訪問了鏈接http://codegym.cc/path/resource?param1=value1¶m2=value2,那麼瀏覽器將向 CodeGym 服務器發送一個 HTTP 請求,該請求將以此起始行開頭

GET /path/resource?param1=value1&param2=value2 HTTP/1.1

結果,服務器必須向瀏覽器發送 HTTP 響應,其中寫入請求的狀態,並發送請求的資源。

假設多次調用 GET 方法不會改變服務器的狀態,並且服務器每次都必須返回相同的響應。因此,該協議對對象緩存有一個棘手的控制。

首先,使用 GET 請求接收的資源,瀏覽器可以自行決定在其端緩存(有細微差別)。

其次,當向服務器發送請求時,你可以指定一個特殊的頭部If-Modified-Sincedate. 如果請求的資源/文檔自指定日期以來發生了更改,則服務器將發送它。如果沒有改變,則資源體不被傳遞。假定它緩存在客戶端上。

一直使用頁面緩存(GET 請求),所以我建議您調查一下這個問題。

4.3 POST 和 PUT 方法

POST 方法用於更新服務器上的資源。例如,當您將圖像上傳到服務器時,您的瀏覽器會發送一個 POST 請求。

考慮將以此起始行開頭的 HTTP 請求:

POST /path/resource?param1=value1&param2=value2 HTTP/1.1
headers…

<request body>

結果,服務器必須向瀏覽器發送 HTTP 響應,其中將寫入請求的狀態,並發送修改後的資源。多次調用 POST 方法會改變服務器的狀態,並且服務器每次可能返回不同的響應

GETPOST是網絡上最常見的兩種請求。為了讓您更容易記住這些方法的工作原理,請考慮下表:

得到 郵政
要求 僅限網址 URL 和請求正文 URL 和請求正文
回答 響應代碼和正文 響應代碼和正文 響應碼

您可以在鏈接中閱讀有關 POST 請求的更多信息。

4.4 刪除方法

最後,有關DELETE 方法的信息。這裡的一切都很簡單。

比如我們要刪除服務器上的某個資源。我們向他發送請求,例如:

DELETE  /path/resource?param1=value1&param2=value2 HTTP/1.1

收到這個請求後,服務器將刪除指定的資源。當然,除非您有權刪除它。