如下例所示,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 操作而自我更新,属于例外)。