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¶m2=value2 HTTP/1.1
结果,服务器必须向浏览器发送 HTTP 响应,其中写入请求的状态,并发送请求的资源。
假设多次调用 GET 方法不会改变服务器的状态,并且服务器每次都必须返回相同的响应。因此,该协议对对象缓存有一个棘手的控制。
首先,使用 GET 请求接收的资源,浏览器可以自行决定在其端缓存(有细微差别)。
其次,当向服务器发送请求时,你可以指定一个特殊的头部If-Modified-Since
和date
. 如果请求的资源/文档自指定日期以来发生了更改,则服务器将发送它。如果没有改变,则资源体不被传递。假定它缓存在客户端上。
一直使用页面缓存(GET 请求),所以我建议您调查一下这个问题。
4.3 POST 和 PUT 方法
POST 方法用于更新服务器上的资源。例如,当您将图像上传到服务器时,您的浏览器会发送一个 POST 请求。
考虑将以此起始行开头的 HTTP 请求:
POST /path/resource?param1=value1¶m2=value2 HTTP/1.1
headers…
<request body>
结果,服务器必须向浏览器发送 HTTP 响应,其中将写入请求的状态,并发送修改后的资源。多次调用 POST 方法会改变服务器的状态,并且服务器每次可能返回不同的响应。
GET和POST是网络上最常见的两种请求。为了让您更容易记住这些方法的工作原理,请考虑下表:
得到 | 邮政 | 放 | |
---|---|---|---|
要求 | 仅限网址 | URL 和请求正文 | URL 和请求正文 |
回答 | 响应代码和正文 | 响应代码和正文 | 响应码 |
您可以在链接中阅读有关 POST 请求的更多信息。
4.4 删除方法
最后,有关DELETE 方法的信息。这里的一切都很简单。
比如我们要删除服务器上的某个资源。我们向他发送请求,例如:
DELETE /path/resource?param1=value1¶m2=value2 HTTP/1.1
收到该请求后,服务器将删除指定的资源。当然,除非您有权删除它。
GO TO FULL VERSION