一、简介
请求的起始行以方法作为开始,方法用来告知服务器要做些什么。HTTP规范中定义了一组常用的请求方法。比如,GET方法负责从服务器获取一个资源,POST方法会向服务器发送需要处理的数据,OPTIONS方法用于确定Web服务器的一般功能,或者Web服务器处理特定资源的能力。
如下描述了7种常用的HTTP方法。注意,德有些方法的请求报文中有主体,有些则是无主体的请求。
方法 | 描述 | 是否包含主体 |
---|---|---|
GET | 从服务器获取一份文档 | 否 |
HEAD | 只从服务器获取文档的首部 | 否 |
POST | 向服务器发送需要处理的数据 | 是 |
PUT | 将请求的主体部分存储在服务器上 | 是 |
TRACE | 对可能经过代理服务器传送到服务 器上去的报文进行追踪 | 否 |
OPTIONS | 决定可以在服务器上执行哪些方法 | 否 |
DELETE | 从服务器上删除一份文档 | 否 |
二、方法详解
1、GET
GET是最常用的方法,通常用于请求服务器发送某个资源。
示例:
2、HEAD
HEAD方法与GET方法的行为很类似,但服务器在响应中只返回首部,不会返回实体的主体部分。
使用HEAD,可以:
- 在不获取资源的情况下了解资源的情况(比如,判断其类型);
- 通过查看响应中的状态码,看看某个对象是否存在;
- 通过查看首部,测试资源是否被修改了。
服务器开发者必须确保HEAD请求返回的首部与GET请求返回的首部完全相同。
示例:
3、POST
POST方法用于向服务器发送数据。通常用于HTML表单中,将表单的的数据通过POST方法发送给服务器,然后由服务器将其发送到它要去的地方,然后对其进行处理。
示例:
4、PUT
与GET从服务器读取文档相反,PUT方法会向服务器写入文档。有些发布系统允许用户创建Web页面,并用PUT直接将其安装到Web服务器上去,如:
PUT方法的语义就是让服务器用请求的主体部分来创建一个由所请求的URL命名的新文档,或者,如果那个URL已经存在的话,就用这个主体来代替它。
因为PUT允许用户对内容进行修改,所以很多Web服务器都要求在执行PUT之前,用密码登录。
5、TRACE
客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其它的一些应用程序。每个中间节点都可能会修改原始的HTPP请求。TRACE方法允许客户端在最终请求发送给服务器时看看它变成了什么样子。
TRACE请求会在目的服务器端发起一个“环回”诊断。行程最后一站的服务器会弹回一条TRACE响应,并在响应主体中携带它收到的原始请求求文。这样客户端就可以查看在所有中间HTTP应用程序组成的请求/响应链上,原始报文是否,以及如何被毁坏或修改过。如:
TRACE请求中不能带有实体的主体部分。TRACE响应的实体主体部分包含了响应服务器收到请求的精确副本。
6、OPTIONS
OPTIONS方法请求Web服务器告知其支持的各种功能。可以询问服务器通常支持哪些方法,或者对某些资源支持哪些方法。
这为客户端应用程序提供了一种手段,使其不用实际访问那些资源就能判定访问各种资源的最优方式了。
示例:
7、DELETE
DELETE方法用于请求服务器删除请求URL指定的资源。但是,客户端应用程序无法保证删除操作一定会被执行。因为HTTP规范允许服务器在不通知客户端的情况下撤回请求。
示例:
参考
《HTTP权威指南》 David Gourley, Brian Totty, Marjorie Sayer, Sailu Reddy, Ansbu Aggarwal 著 陈涓 赵振平 译
RFC:https://tools.ietf.org/html/rfc2616(查看第9章)
W3C:https://www.w3.org/Protocols/rfc2616/rfc2616.html(查看第9章)