李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
工具
正文
post请求方式分析
Leefs
2020-03-03 PM
2632℃
0条
# post请求方式分析 ### 前言 大家一般都喜欢用postman工具来测试接口的连通性,今天通过postman的一些传参方式对post请求做一个简单分析 ### 一、post请求Params和Data传参的区别 postman工具对于post请求在传参时,既可以使用Params传参,又可以使用Data传参。 ![post请求方式分析01.png][1] **那么,这两种传参方式有什么区别呢?** 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 也就是说在和服务器交互的时候GET方式只发送了一次请求,而POST请求发送了两次请求,第一次请求发送header头部,第二次请求发送data数据。 如果在POST请求中将数据由Parameters随着header部分一起传递给服务器,就相当于是GET请求,一些服务器是无法对这种传参方式当作POST请求进行解析的,就会出现请求失败。 最好的传参方式:**POST请求就在Body Data里面设置,GET请求在parameters里面设置** ### 二、POST请求方式 (1)HTTP请求方法种类 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT (2)HTTP 请求包含几个部分 方法体、请求头、消息主体,类似如下: ```html
``` (3)请求方式 协议约定POST提交的数据必须放在消息主体(entiry-body)中,但协议并没有规定数据必须使用什么编码方式,由开发者自行决定。 服务端通常是根据请求头(headers)中的Content-Type字段来获知请求中的消息主体是何种方式编码,再对主体进行解析。 因此POST 提交数据方案,`包含了 Content-Type 和消息主体编码方式两部分`。主要有四种方式:**application/x-www-form-urlencoded、multipart/form-data、raw、application/json**。 **(1)application/x-www-form-urlencoded** 最常见的POST提交数据的方式,浏览器的原生 `
` 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 此方式的编码方式:首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。 **(2)multipart/form-data** 使用表单上传文件时,必须让 `
` 表单的 enctype 等于 multipart/form-data。Content-Type里指明了数据是以 multipart/form-data 来编码,上面提到的这两种 POST 数据的方式,都是浏览器原生支持的,而且现阶段标准中原生 `
` 表单也只支持这两种方式(通过 `
` 元素的 `enctype` 属性指定,默认为 `application/x-www-form-urlencoded`。其实 `enctype` 还支持 `text/plain`,不过用得非常少)。 **(3)raw方式** raw的编码方式主要application/json、text/xml等 ![post请求方式分析02.png][2] + application/json 使用application/json 这个 Content-Type 作为响应头,用来告诉服务端消息主体是序列化后的 JSON 字符串。这种方案,可以方便的提交复杂的结构化数据,特别适合 RESTful 的接口。 + text/xml 使用 text/xml 这个 Content-Type 作为响应头。 ![post请求方式分析03.png][3] ![post请求方式分析04.png][4] *附:参考文章链接https://www.jianshu.com/p/79c6a2b7a7b3* [1]: https://lilinchao.com/usr/uploads/2020/03/1160599765.png [2]: https://lilinchao.com/usr/uploads/2020/03/1513981663.png [3]: https://lilinchao.com/usr/uploads/2020/03/1250154165.png [4]: https://lilinchao.com/usr/uploads/2020/03/3719051708.png
标签:
GET和POST
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/678.html
上一篇
线程池简单介绍
下一篇
死锁编码及定位分析
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
Jenkins
Stream流
设计模式
排序
Python
JavaWEB项目搭建
GET和POST
Tomcat
gorm
Kibana
查找
Map
线程池
随笔
Hbase
并发编程
栈
二叉树
Ubuntu
LeetCode刷题
散列
正则表达式
Livy
Spark Core
Zookeeper
Http
Typora
哈希表
Java
递归
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭