李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
工具
正文
post请求方式分析
Leefs
2020-03-03 PM
2356℃
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
标签云
nginx
人工智能
微服务
队列
Spark Streaming
散列
Scala
LeetCode刷题
Java工具类
Spark Core
Livy
Golang基础
二叉树
BurpSuite
算法
并发编程
JavaSE
Spring
稀疏数组
MyBatis-Plus
Spark RDD
高并发
Java阻塞队列
Linux
HDFS
递归
Tomcat
国产数据库改造
Yarn
Elasticsearch
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞