HTTP 请求方法
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
9 | PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
应用场景
GET
基于“URL”地址问号传参;
一般用于向服务器获取资源,例如查询数据库的数据等;
成功返回200
POST
基于“请求”主体把消息发送给服务器;
一般用于请求新增或修改资源,例如提交表单,新增用户等;
先发送header,服务器响应100,再发送data,成功响应201
PUT
修改资源
DELETE
删除某个资源
OPTIONS
OPTIONS请求一般是客户端向服务端判断对某个资源是否有访问权限。
HEAD
HEAD请求一般是用来获取某个资源的metadata信息,比如说某份报告的关键描述信息等。
get和post的区别
get相对post是不安全的,因为get基于问号传参,数据请求被存放在URL中,而post是基于请求主体,操作对于用户是不可见的,相对比较安全
Get传送的数据量较小,主要是由于get基于URL进行传参,URL的长度受浏览器和服务器的限制(http协议本身是不限制URL长度的),post相对比较大,一般默认为不受限制
Get限制From表单的数据集的值必须为ASCLL字符,而Post支持整个ISO10646字符集
PUT和PATCH区别
PUT和PATCH都是用来修改服务端某个资源的,但是PUT和PATCH修改时提交的数据是不同的,PUT是将整个资源的信息都提交到服务端,包括修改的,未修改的都提交到服务端,而PATCH只提交已修改的字段到服务端。而服务端对PUT请求应该是整体替换,PATCH请求只修改提交的字段。所以PUT请求应该是幂等的,即多次提交同一个请求,结果是相同的