如下例所示,HTTP 方法會添加在 HTTP 請求首部的第一行開頭發送給服務器。
~~~
GET /v1/users/123 HTTP/1.1
Host: api.example.com
~~~
URI 里的 R 表示“Resource”,即“資源”的意思,用于描述某種具體的數據信息。Web 頁面的情況下,Web 頁面所包含的內容就是一種資源;API 的情況下,可以通過端點獲取的數據信息也是一種資源。而HTTP 方法所表示的就是對該資源進行怎樣的操作,其中包括獲取操作、修改操作、刪除操作等。
URI 和 HTTP 方法之間的關系可以認為是操作對象和操作方法的關系。
如果把URI 當作 API(HTTP)的“操作對象 = 資源”,HTTP 方法則表示“進行怎樣的操作”。
通過用不同的方法訪問一個 URI 端點,不但可以獲取信息,還能修改信息、刪除信息等。因此我們可以將資源和對資源進行怎樣的操作分開處理。這么做和HTTP 的設計思想也相吻合,Web API 中遵循這樣的思想進行設計的方式也正成為主流。
開發 Web 應用時,一種普遍的做法是通過 GET 方法來獲取服務器端的信息,而用 POST 方法修改服務器端的信息。HTTP 協議中定義了很多的HTTP 方法。
表 2-4 方法示例
|方法名 |說明 |
| --- | --- |
|GET |獲取資源 |
|HEAD |獲取資源的元信息 |
|PUT |更新已有資源 |
|PATCH |更新部分資源 |
|POST |新增資源 |
|DELETE |刪除資源 |
GET 方法
GET 方法是訪問 Web 最常用的方法,表示“獲取信息”。瀏覽器里使用某元素 A
的鏈接全部都可以通過 GET 方法獲取。GET 方法一般用于獲取 URI 指定的資源(信
息)。因此,當人們使用 GET 方法訪問時,一般不會修改服務器上已有的資源(當然,
已讀 / 未讀、最后訪問日期等資源屬性會因為 GET 操作而自我更新,屬于例外)。