2.2、常见HTTP方法
GET、PUT、DELETE、POST、HEAD。GET方法和HEAD方法被认为是安全方法,因为出来进行获取资源信息外,不会有其他意义。而POST、PUT、DELETE方法是非安全的,应该告知客户可能的后果。
2.2.1、GET
用于请求服务器发送某个资源。HTTP/1.1 要求服务器 实现此方法。
2.2.2、HEAD
与GET类似,但是仅请求响应首部。客户端在未获取实际资源的情况下,对资源的首部进行检查。使用HEAD,可以在不获取资源的情况下了解资源的情况,比如,判断资源的类型;通过查看响应中的状态码,看看某个对象是否存在; 通过查看首部,测试资源是否被修改了。
遵循 HTTP/1.1 规范,就必须实现 HEAD 方法。
2.2.3、POST
用于向服务器发送数据,对数据进行增删和更新操作,常用于提交表单。
2.2.4、PUT
与 GET 从服务器读取文档相反,PUT 方法会向服务器写入(存储)文档。要求在请求报文的主体中包含文件内容,然后文件保存到请求URI指定的位置。
2.2.5、DELETE
按请求URI删除指定的资源文件,和PUT方法相反。但是客户端无法保证删除操作一定会被执行,因为HTTP规范允许服务器自行撤销请求而不告知客户端。
2.2.6、OPTIONS
请求web服务器告知其支持的各种功能。
2.2.7、TRACE
让WEB服务器端将之前的请求通信环回给客户端,通信环回可能包括防火墙、代理、网关或其他一些应用程序, 每个中间节点可能都会修改原始的HTTP请求,最后一个节点返回一条TRACE响应,并在响应主体中携带它收到的原始请求报文。
- 好处:用于验证请求是否如愿穿过了请求 / 响应 链;用来查看代理和其他应用程序对用户请求所产生的效果。
- 缺点:中间应用程序会自行决 定对 TRACE 请求的处理方式;使用TRACE方法容易引发XST(Cross-Site Tracing,跨站追踪)攻击。
TRACE 请求中不能带有实体的主体部分。TRACE 响应的实体主体部分包含了响应 服务器收到的请求的精确副本:
2.2.8、扩展方法
即WebDAV HTTP 扩展中的方法,没有在HTTP/1.1 规范中定义。
可能大部分 HTTP 应用程序都无法理解你自己定义的扩展方法。处理扩展方法的原则:对所发送的内容要求严一点,对所接收的内容宽容一些。