前言
get
,post
,put
,delete
,option
,trance
,均是常用的HTTP请求方法。
其中只有put
是幂等的。
GET和POST
get
一般用于向服务器查询数据,post
一般用于向服务器增添数据
- 本质上
get
和post
均是HTTP协议的两种请求方法,运行在TCP上的两种方法 - 参数区别
get
使用URL传参,post
使用body传参。
get
对参数长度和大小有限制,post
无限制 - 安全性区别
get
参数外露,且请求参数被浏览器缓存,不安全
post
较为安全 - TCP数据包区别
get
将请求头和参数一同发送,只发送一个TCP
数据包,服务器响应200
post
先发送请求头,服务器响应100后,在发送参数,响应200,发送两个TCP
数据包
POST发送什么数据类型
- 默认
post
数据类型
浏览器原生的表单
Content-Type:application/x-www-form-urlencoded
- 传递JSON类型
Content-Type:application/json
- 文件/图片
Content-Type:multipart/form-data
- XML格式的文本
Content-type:text/xml
PUT
一般用于向服务器修改数据
DELETE
一般用于向服务器删数据
发送DELETE接受200的响应后并不意味资源被删除,只是服务器接收到删除资源的请求。
OPTION请求
- 用处
- 检查浏览器允许的请求头
- 预处理/预检验了解服务器的性能
- 简单请求和非简单请求
- 简单请求
GET/POST(原生表单/文件)/HEAD方法
请求源添加origin
,设置协议、域名、端口号。服务器经过校验进行返回。 - 非简单请求
PUT/DELETE/application/JSON
请求源先发送option
请求进行预校验,若白名单,再发送实际的Ajax请求。