[toc]
# HTTP 请求方法
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
* HTTP1.0
定义了三种请求方法: GET, POST 和 HEAD方法。
* HTTP1.1
新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
| 方法 | 作用 |
| ---- | ---- |
| GET | 请求指定的页面信息,并返回实体主体。 |
| HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
| POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
| PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
| DELETE | 请求服务器删除指定的页面。 |
| CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
| OPTIONS | OPTIONS方法请求web服务器告知其支持的各种功能。可以询问服务器通常支持哪些方法,或者对某些特殊资源支持哪些方法。(注意:有些服务器可能只支持对一些特殊类型的对象使用特定的操作) |
| TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
| PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
# 不安全的HTTP方法
## 举例
* PUT
上传恶意文件
![](/upload/attach/202011/202011241650_NSRA8VRH7B7QEB7.png)
* DELETE
恶意删除文件
* TRACE
查询恶意请求到服务端的样式
* PATCH
引发XST攻击,PATCH修改资源的部分内容
* OPPTIONS
信息探测,查询可使用的方法
# 参考资料
* 《HTTP教程》
* 《HTTP协议-Options方法》
* 《不安全的http方法》
* 《HTTP PUT方法利用的几种方式》