今天在发送请求时遇到了formdata的格式问题,就突然想到,我每天发送的post请求,他的body是什么样子的,所以用wireshark抓包看了一下,记录下来
本文章主要针对两种格式的post请求,JSON和formdata。两个测试的样例代码就不提供了,很简单。
JSON格式的post
向后台发送了一个简单的JSON
{
"name": "zhangsan",
"age": "12"
}
下面看wireshark:
上面是wireshark帮我们翻译过的,便于我们看,下面是真实在网络中的数据格式
这里我们直接把下面拉到最后,可以看出JSON是直接拼在body里面的。
formdata格式
向后台发送了一个文件和两个kv
<form id="tf" method="post" enctype="multipart/form-data" action="http://localhost:9090/upload">
<input type="file" id="file" value="" name="file" />
<br>
<input type="text" id="name" name="name" value="" />
<br>
<input type="text" id="age" name="age" value="" />
<br>
<input id="input" type="submit">点击提交</input>
</form>
formdata格式在header部分就不一样,在 Content-type:multipart/form-data 后面多了一个东西 boundary=—WebKitFormBoundaryxxxx 。
下面我们看看body部分。
格式类似于这样:
------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition: form-data; name="city_id"
binary data
------WebKitFormBoundaryyb1zYhTI38xpQxBK
Content-Disposition: form-data; name="company_id"
binary data