Skip to main content

09 请求方法

标准请求方法

HTTP/1.1 规定了八种方法,单词都必须是大写的形式:

GET:获取资源,读取或者下载数据;

HEAD:获取资源的元信息;

POST:向资源提交数据,写入或上传数据;

PUT:类似 POST,多用于修改数据;

DELETE:删除资源;

CONNECT:建立特殊的连接隧道;

OPTIONS:列出可对资源实行的方法;

TRACE:追踪请求 - 响应的传输路径。

GET

请求从服务器获取资源,资源可以是静态的文本、页面、图片、视频,也可以是由 PHP、Java 动态生成的页面或者其他格式的数据。

  1. 在 URI 后使用“#”,可以在获取页面后直接定位到某个标签所在的位置;
  2. 使用 If-Modified-Since 字段,仅当资源被修改时才会执行获取动作;
  3. 使用 Range 字段,只获取资源的一部分数据。

与 GET 方法类似,请求从服务器获取资源,服务器的处理机制也一样,但服务器不返回请求的实体数据,只会传回响应头,即资源的元信息。

  1. 检查一个文件是否存在;
  2. 检查文件是否有最新版本。

POST

向 URI 指定的资源提交数据,数据放在报文的 body 里。

  1. 发动态;
  2. 向购物车添加商品。

PUT

作用与 POST 类似,向服务器提交数据,通常 POST 用来新建 create,而 PUT 则是修改 update。

DELETE

让服务器删除资源,通常服务器不会执行真正的删除操作,而是对资源做一个删除标记。

CONNECT

让服务器为客户端和另一台远程服务器建立一条特殊的连接隧道,这时 Web 服务器在中间充当了代理的角色。

OPTIONS

让服务器列出可对资源实行的操作方法,在响应头的 Allow 字段里返回。

TRACE

用于对 HTTP 链路的测试或诊断,可以显示出请求 - 响应的传输路径。

安全与幂等

安全:指请求方法不会破坏服务器上的资源,即不会对服务器上的资源造成实质的修改。

GET 和 HEAD 方法是安全的,无论 GET 和 HEAD 操作多少次,服务器上的数据都是安全的。

POST/PUT/DELETE 操作会修改服务器上的资源,增加或删除数据,是不安全的。

幂等:多次执行相同的操作,结果也都是相同的,即多次幂后结果相等。