HTTP实战之Wireshark抓包分析

0.引言
写这篇文章目的是为了能够在通过HTTP协议拉取ts流 , 能够看懂各类型数据包 。 这里也会有Wireshark使用 , 关于Wireshark使用和HLS分析 , 也可以看看前面文章 。
详细分析HLS框架
手把手配置HLS流媒体服务器
HLS实战之Wireshark抓包分析
详解HTTP协议与RESTFUL
HTTP协议参考文档:
参考文档界面:
HTTP实战之Wireshark抓包分析文章插图
书籍:<<图解HTTP>>
这本书使用很清晰的图片展示HTTP协议 , 易懂 。
如果想要这本<<图解HTTP>> pdf版本 , 可以关注 , 然后私信 , 我发给各位朋友 。 如果大家有什么好书推荐的 , 也可以私信我 , 互相学习 , 一起进步 , 谢谢 。
<<图解HTTP>>封面如下:
HTTP实战之Wireshark抓包分析文章插图
<<图解HTTP>>目录如下:
HTTP实战之Wireshark抓包分析文章插图
HTTP实战之Wireshark抓包分析文章插图
HTTP实战之Wireshark抓包分析文章插图
HTTP实战之Wireshark抓包分析文章插图
HTTP实战之Wireshark抓包分析文章插图
HTTP实战之Wireshark抓包分析文章插图
HTTP实战之Wireshark抓包分析文章插图
这篇文章也讲解了关于http协议的内容 , 可以参考 , 详解HTTP协议与RESTFUL
1.TCP报?结构
这里讲解TCP报文 , 是为了能够更容易了解HTTP , 毕竟HTTP是以TCP为基础 。 如果做过开发的朋友 , 应该知道 , 对TCP/UDP报文的格式应该都有所了解 。 如TCP报文 , 在实际要传输的数据之前附加了?个20 字节的头部数据 , 其包含了TCP 协议必须的额外信息 , 发送?的端?号、接收?的端?号、包序号、标志位等等 。 通过TCP头 , 数据包才能够正确传输 , 到了?的地后把头部去掉 , 就可以拿到真正的数据 。 TCP基本的数据字段如下图:
HTTP实战之Wireshark抓包分析文章插图
类似 , HTTP 协议也是与 TCP/UDP 类似 , 也有头部数据 , 与 TCP/UDP不同的是 , 它是?个“纯?本”的协议 , 所以头数据都是 ASCII 码的?本 , 可以很容易地??眼阅读 , 不?借助程序解析也能够看懂 。
HTTP 协议的请求报?和响应报?的结构基本相同 , 由三?部分组成:
(1)起始?(start line):描述请求或响应的基本信息 。
(2)头部字段集合(header):使? key-value 形式更详细地说明报? 。
(3)消息正?(entity):实际传输的数据 , 它不?定是纯?本 , 可以是图?、视频等?进制数据 。
一般把起始?和头部字段经常?合称为“请求头”或“响应头” , 消息正??称为“实体”或响应正文 , 与“header”对应 , 很多时候就直接称为“body” 。
注意:HTTP 协议规定报?必须有 header , 但可以没有 body , ?且在 header 之后必须要有?个“空?” , 也就是“CRLF” , ?六进制的“0D0A” 。 在 header 和 body 之间有?个“空?” , 这个空行是用作分包使用 。
关于HTTP , 数据分层结构 , 如下图:
HTTP实战之Wireshark抓包分析文章插图
使用Wireshark抓包 , 看看是否与上面讲解的模式一样 。 如下图:
在这个报文里 , 第??“GET / HTTP/1.1”就是请求? , ?后?的“Host” , “Connection”等等都属于 header , 报?的最后是?个空??结束 , 没有body 。
HTTP实战之Wireshark抓包分析文章插图
1.1 请求?
使用WireShark抓包分析
HTTP实战之Wireshark抓包分析文章插图
了解了 HTTP 报?的基本结构后 , 我们来看看请求报??的起始?也就是请求?(request line) , 它简要地描述了客户端想要如何操作服务器端的资源 。
请求?(或起始行)由三部分构成:
(1)请求方法:如 GET/POST , 表示对资源的操作 。
(2)请求?标:通常是?个 URI , 标记了请求?法要操作的资源 。
(3)版本号:报?使?的 HTTP 协议版本 。
HTTP实战之Wireshark抓包分析文章插图
这三个部分通常使?空格(space)来分隔 , 最后要? CRLF 换?表示结束 。 SP表示空格 。 请求行格式如下图所示: