请求方法 | 用途 | 包含主体 | 备注 |
---|---|---|---|
GET | 请求获取Request-URI所标识的资源 | 否 | 查 |
POST | 在Request-URI所标识的资源后附加新的数据 | 是 | 改 |
HEAD | 请求获取由Request-URI所标识的资源的响应消息报头 | 否 | |
PUT | 请求服务器存储一个资源,并用Request-URI作为其标识 | 是 | 增 |
DELETE | 请求服务器删除Request-URI所标识的资源 | 否 | 删 |
TRACE | 请求服务器回送收到的请求信息,主要用于测试或诊断 | 否 | |
CONNECT | 保留将来使用 | 否 | |
OPTIONS | 请求查询服务器的性能,或者查询与资源相关的选项和需求 | 否 |
一、GET
根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
安全的是指,该操作用于获取信息而非修改信息。
幂等的是指,对同一URL的多个请求应该返回同样的结果。
此外,GET请求还具有以下特性:
GET请求可以被缓存
GET请求保留在浏览器历史记录中
GET请求可以添加书签
GET请求有长度限制
GET请求应该仅用于检索数据
GET请求的数据类型只能为ASCII
注意,在使用GET请求时,数据是暴露在URL中的,对所有人可见的,所以,需要处理敏感数据时,不应使用GET请求,尤其不应当使用GET请求传输用户密码及其他敏感数据
/test/demo_form.asp?name1=value1&name2=value2
二、POST
根据HTTP规范,POST表示可能修改服务器上资源的请求。
POST请求具有以下特性:
POST请求从不缓存
POST请求不会保留在浏览器的历史记录中
POST请求无法添加书签
POST请求对数据的长度没有限制
POST请求的数据类型可以为二进制
POST请求,数据不再HTTP头中,而是在HTTP包体当中。
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
三、HEAD
HEAD请求与GET请求本质上一样,都是向服务器发出指定资源的请求。但是,服务器在响应HEAD请求时不会回传资源的内容部分(数据部分)。这样,我们可以不传输全部内容的情况下,就可以获取服务器的响应头信息。
HEAD方法常被用于客户端查看服务器的性能。
四、PUT
PUT请求会向指定资源位置上传其最新内容。简单来说,想服务器发送PUT请求,如果指定URI不存在,则会要求服务器根据请求创建资源,如果存在,服务器就接受请求内容,并修改URI资源的原始版本。PUT请求是幂等的。
PUT /article/1234 HTTP/1.1
<article>
<title>red stapler</title>
<price currency="eur">12.50</price>
</article>
五、DELETE
DELETE请求用于请求服务器删除所请求URI所标识的资源。DELETE请求后指定资源会被删除,DELETE方法也是幂等的。
六、CONNECT
CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。
七、OPTIONS
OPTIONS请求与HEAD类似,一般也是用于客户端查看服务器的性能。 这个方法会请求服务器返回该资源所支持的所有HTTP请求方法,该方法会用’*’来代替资源名称,向服务器发送OPTIONS请求,可以测试服务器功能是否正常。JavaScript的XMLHttpRequest对象进行CORS跨域资源共享时,就是使用OPTIONS方法发送嗅探请求,以判断是否有对指定资源的访问权限。 允许
八、TRACE
TRACE请求服务器回显其收到的请求信息,该方法主要用于HTTP请求的测试或诊断。
九、PATCH
PATCH方法出现的较晚,它在2010年的RFC 5789标准中被定义。PATCH请求与PUT请求类似,同样用于资源的更新。二者有以下两点不同:
但PATCH一般用于资源的部分更新,而PUT一般用于资源的整体更新。
当资源不存在时,PATCH会创建一个新的资源,而PUT只会对已在资源进行更新。
参考链接:
HTTP Methods: GET vs. POST, W3cSchool