http协议学习-body各种类型
1、概述
使用postman工具和nc命令分析http协议中body各种类型的格式。
2、分析
环境准备
虚拟机中用nc命令模仿服务器,启动监听状态。
windows机器安装postman
nc -k -l 192.168.202.223 8082
1、params参数
postman中params添加俩个key为m、n;value为1、2;
服务器接收到的信息如图所示,新添加的m、n参数被附加在请求头的请求行中,位于请求路径之后。示例中的请求路径显示为:/path?m=1&n=2
2、body是none类型
postman中body类型选择none
如图所示,服务器接收到的请求既无请求体,请求头中也没有content-length字段。
3、body是form-data类型
postman中body类型选择form-data,新增加key为a、b
如图所示,服务器接收到的请求信息包含以下关键内容:
请求头部分:
- Content-Type 为 multipart/form-data
- 包含 boundary 参数,用于定义分隔不同数据部分的边界字符串
- 边界字符串必须唯一且不能出现在数据内容中
- Content-Length 为 258,表示请求包体的总长度
包体结构:
- 每个数据部分以 "--{boundary}" 开头
- 最后一个部分以 "--{boundary}--" 结尾(多出两个短横线作为结束标记)
4、body是x-www-form-urlencoded
postman中body类型选择x-www-form-urlencoded,新增加key为p1、p2
如图所示,服务器收到的请求,包体为p1=1&p2=2
5、body是raw
postman中body类型选择raw
如图所示,服务器收到的请求,包体为
<window>
<width>
12
<\width>
<\window>
5、body是binary
postman中body类型选择binary,选择一个文件;比如,我这里选择的是test.txt
如图所示,服务器收到的请求,包体为
111111111111
22222222222222
3333333333
4444444444
其实就是文件(test.txt)的文件内容
从上面看,当发送请求有包体时,请求头中要有Content-Length字段,表明包体的长度。
学习链接:https://github.com/0voice