> 技术文档 > http协议学习-body各种类型

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

如图所示,服务器接收到的请求信息包含以下关键内容:

  1. 请求头部分:

    • Content-Type 为 multipart/form-data
    • 包含 boundary 参数,用于定义分隔不同数据部分的边界字符串
    • 边界字符串必须唯一且不能出现在数据内容中
    • Content-Length 为 258,表示请求包体的总长度
  2. 包体结构:

    • 每个数据部分以 \"--{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

如图所示,服务器收到的请求,包体为

    

        12

    

5、body是binary

postman中body类型选择binary,选择一个文件;比如,我这里选择的是test.txt

如图所示,服务器收到的请求,包体为

111111111111
22222222222222
3333333333
4444444444
其实就是文件(test.txt)的文件内容

从上面看,当发送请求有包体时,请求头中要有Content-Length字段,表明包体的长度。

学习链接:https://github.com/0voice