HTTP协议基础及报文抓包分析

从事性能测试必不可绕过的就是协议,对基本知识的了解,还是深入掌握协议的机制,都能让你在从事性能测试实施时显得更加顺手。

下面我们就HTTP协议及性能测试过程必须掌握的一些分析工具来进行分享。

重点分享性能测试实施过程中必须掌握的关键技术、工具。更细节的请参考HTTP相关书籍或RFC文档。

HTTP基本架构

下面我们用一张简单的流程图来展示HTTP协议基本架构,以便大家先有个基本的了解。

Web Client可以是浏览器、搜索引擎、机器人等等一切基于HTTP协议发起http请求的工具。Web Server可以是任何的能解析HTTP请求,并返回给Web Client可识别的响应的服务,常见的有apache、nginx、IIS等等web服务器。浓缩就是精华,看下最简洁的HTTP交互图:

HTTP报文结构

请求报文HTTP请求报文由请求行、请求头、空行和请求内容4个部分构成。

如下图所示:

下面对上图进行简单的分析:

请求行

由请求方法字段、URL字段、协议版本字段三部分构成,它们之间由空格隔开。常用的请求方法有:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。

请求头

请求头由key/value对组成,每行为一对,key和value之间通过冒号(:)分割。请求头的作用主要用于通知服务端有关于客户端的请求信息。

典型的请求头有:

User-Agent:生成请求的浏览器类型

Accept:客户端可识别的响应内容类型列表;星号*用于按范围将类型分组。*/*表示可接受全部类型,type/*表示可接受type类型的所有子类型。

Accept-Language: 客户端可接受的自然语言

Accept-Encoding: 客户端可接受的编码压缩格式

Accept-Charset: 可接受的字符集

Host: 请求的主机名,允许多个域名绑定同一IP地址

connection:连接方式(close或keeplive)

Cookie: 存储在客户端的扩展字段

空行

最后一个请求头之后就是空行,用于告诉服务端以下内容不再是请求头的内容了。

请求内容

请求内容主要用于POST请求,与POST请求方法配套的请求头一般有Content-Type(标识请求内容的类型)和Content-Length(标识请求内容的长度)

响应报文HTTP响应报文由状态行、响应头、空行和响应内容4个部分构成。

如下图所示:

下面对响应报文格式进行简要的分析说明:

状态行

由HTTP协议版本、状态码、状态码描述三部分构成,它们之间由空格隔开。

状态码由3位数字组成,第一位标识响应的类型,常用的5大类状态码如下:

1xx:表示服务器已接收了客户端的请求,客户端可以继续发送请求

2xx:表示服务器已成功接收到请求并进行处理

3xx:表示服务器要求客户端重定向

4xx:表示客户端的请求有非法内容

5xx:标识服务器未能正常处理客户端的请求而出现意外错误

常见状态码说明:

200 OK: 表示客户端请求成功

400 Bad Request: 表示客户端请求有语法错误,不能被服务器端解析

401 Unauthonzed: 表示请求未经授权,该状态码必须与WWW-Authenticate报文头一起使用

404 Not Found:请求的资源不存在,例如输入了错误的url

500 Internal Server Error: 表示服务器发生了不可预期的错误,导致无法完成客户端的请求

503 Service Unavailable:表示服务器当前不能处理客户端的请求,在一段时间后服务器可能恢复正常

响应头

一般情况下,响应头会包含以下,甚至更多的信息。

Location:服务器返回给客户端,用于重定向到新的位置

Server: 包含服务器用来处理请求的软件信息及版本信息

Vary:标识不可缓存的请求头列表

Connection: 连接方式。

对于请求端来讲:close是告诉服务端,断开连接,不用等待后续的求请了。keeplive则是告诉服务端,在完成本次请求的响应后,保持连接,等待本次连接后的后续请求。

对于响应端来讲:close表示连接已经关闭。keeplive则表示连接保持中,可以继续处理后续请求。Keep-Alive表示如果请求端保持连接,则该请求头部信息表明期望服务端保持连接多长时间(秒),例如300秒,应该这样写Keep-Alive: 300

空行

最后一个响应头之后就是空行,用于告诉请求端以下内容不再是响应头的内容了。

响应内容

服务端返回给请求端的文本信息。

https://baijiahao.baidu.com/s?id=1596966404370818881&wfr=spider&for=pc

原文地址:https://www.cnblogs.com/SRH151219/p/11073395.html

时间: 2024-10-09 23:58:27

HTTP协议基础及报文抓包分析的相关文章

【基础】通过抓包分析微软DHCP报文和其它系统DHCP报文的不同(对比后才知道微软有多次)

1.    实验网络拓扑 使用ENSP模拟器(版本V100R002C00 1.2.00.350) 2.      实验需求: 1)       使用华为模拟器配置DHCP为C1自动分配IP地址 2)     使用VMware station搭建WindowsServer2008 DHCP服务器,并为Windows客户机分配IP地址 3)       使用wireshark抓取DHCP数据包 3.    实验步骤: 1)     华为设备IP地址规划配置如下: R2是G0/0/0的ip为192.1

Wireshark数据抓包分析——网络协议篇

Wireshark是目前最受欢迎的抓包工具.它可以运行在Windows.Linux及MAC OS X操作系统中,并提供了友好的图形界面.同时,Wireshark提供功能强大的数据抓包功能.使用它,可以以各种方式抓取用户所需要的网络数据包. 但是用户往往无法从数据包中直接获取所需要的数据.这是由于所有的信息在传输过程中,都会被按照各种网络协议进行封装.用户想要从海量的数据抓包中获取的有用的信息,必须了解各种常见的网络协议.为了方便用户对数据包的分析,本书详细介绍了常用的各种网络协议,如ARP.IP

第5组-17级通信工程3班-037-网络协议抓包分析

一.  地址规划表 本机地址 目的地址 网站 172.31.148.37 183.232.231.174/172 百度:www.baidu.com 39.137.28.125 中国移动:www.10086.cn 配置步骤:打开抓包软件,点击以太网进行抓包,然后打开浏览器进入www.baidu.com/www.10086.cn.等浏览器反应后等10s左右,然后关闭浏览器.在抓包软件上按上停止抓包按键,随后进行抓包分析. 二.应用层 2.1直播所测试的目的地址ip 图表 1 www.baidu.co

FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户名密码来登录的窗口. 今天我主要是有点好奇,在此过程中,究竟是否是用匿名账户“anonymous”该账户登录了,还是根本不需要登录呢? 于是用wireshark抓包了一下. 二.抓包过程 我这边直接用了捕获过滤器抓本机和ftp之间的包.抓包后直接ctrl+F进行文本查找. 果然发现是发送了USER

网络协议抓包分析——IP互联网协议

前言 IP协议是位于OSI模型的第三层协议,其主要目的就是使得网络间可以相互通信.在这一层上运行的协议不止IP协议,但是使用最为广泛的就是互联网协议. 什么是IP数据报 TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram).IP数据报是一个与硬件无关的虚拟包,由首部和数据两部分组成.首部部分主要包含版本.长度和IP地址等信息.数据部分一般用来传达其他协议如TCP.UDP和ICMP等.整个IP数据报的的首部表示总长度的字段位数为16位,于是可以表示的数据报最大大小

通信导论-网络协议抓包分析

一. 网络 网络规划表 源IP地址 默认网关 目的IP地址 域名 备注 192.168.43.16 192.168.43.1 104.74.21.164 360.com 360浏览器网页地址 192.168.43.16 192.168.43.1 182.232.136.130 yy.com 直播YY平台网页地址 2.配置 步骤:控制面板—网络和Internet—网络和共享中心—连接—属性—Internet协议版本4(TCP/IPv4)—属性—手动输入IP地址和DNS服务器地址 3.连通性测试 I

数据抓包分析基础

数据包分析基础 数据包分析 数据包嗅探或协议分析:指捕获和解析网络上在线传输数据的过程,为了能更好的了解网络上正在发生的事情. 目的 软件:Tcpdump.Omnipeek.Wireshark 监听网络线路 集线器嗅探方式 流经集线器的所有网络数据包都会被发送到每一个集线器连接的端口. 交换机嗅探方式 端口镜像.集线器输出.使用网络分流器.ARP欺骗方式等四种方式 端口镜像 设置连接的交换机的端口镜像功能,将交换机其他一个或多个端口的经过的数据包复制一份到嗅探器连接的端口上. 集线器输出 目标设

TcpIP协议,HTTP,DNS 实战:基于wireshark与BurpSuit抓包分析

TcpIP协议,HTTP,DNS 实战:基于wireshark与BurpSuite抓包分析

从wireshark抓包分析rtmp协议,并提取出H264视频流

利用wireshark抓取rtmp流数据, 分析到rtmp流后,写入过滤条件,如 tcp.stream eq 6 导出tcp流 保存16进制的数据为纯文本格式 一定要选择 Hex转储,然后点击 "Sava as"注意,这个流开始的第一个字节一定是03,才是正确的.至此,我们有了可以用于分析的rtmp流的数据. 从wireshark抓包分析rtmp协议,并提取出H264视频流 原文地址:https://www.cnblogs.com/russinovich/p/9240944.html