网络协议-HTTP 协议(抓包实战和网络分层)

​这篇文章主要介绍一下 Wireshark 抓包工具获取到的 HTTP协议 相关的数据,而后对这些数据进行简单的分析,主要目的是更深刻的理解 HTTP协议,而后了解一下网络为何要分层, OSI模型TCP/IP模型的区别。css

1.HTTP 协议抓包实战(Wireshark)

1.1 打开 Wireshark 工具,选中正在使用的网卡 以太网4(以本身电脑实际使用为准),点击 捕获,而后选择 选项

1.2 在新窗口中的过滤栏中输入 port 80
缓存

Tips:输入  port 80 以后点击  开始便可开始捕获, port 80表示筛选出和  80端口 相关的数据请求。

1.3 打开 Telnet 工具模拟 HTTP 请求:网络

telnet singwa666.com 80
GET /themes/simpleboot3/portal/public/assets/css/moco.css HTTP/1.1
Host: singwa666.com

以下图所示:
dom

1.4 Telnet 模拟 HTTP 请求以后,点击左上角红色 按钮中止抓取报文:
ide

1.5 找到 WireShark 中抓取到的该条 HTTP 请求的相关报文:
工具

Tips:找到  Telnet 中模拟请求的那条数据  双击

1.6 双击该条HTTP 请求数据:
网站

Tips:如图所示看到的报文信息都是符合基于  ABNF 描述的  HTTP 协议格式规范的。

2.Chrome 抓包:Network 面板分析 

2.1 Network 示意图spa

Tips:从 概要能够看出, 29 requests 表示  29 个请求, 46.9 kB transferred 表示经过网络传输了  46.9KB数据, 960 kB resources 表示页面加载了  960KB 的资源, Finish: 421 ms 表示总共完成花了  421 ms 时间, DOMContentLoaded: 201 ms 表示  DOM 内容加载总共消耗  201 msLoad: 376 表示 DOM加载消耗了  376 ms

2.2 Network 面板说明

  • 控制器:控制面板的外观和功能
  • 过滤器:过滤请求列表中显示的资源(按住 Ctrl 能够选择过滤多个条件)
  • 概览:显示 HTTP 请求、响应的时间轴
  • 请求列表:默认时间排序,可选择显示列
  • 概要:请求总数、总数据量、总花费时间

2.3  控制器说明

  • 开始抓包
  • 中止抓包
  • 清除请求
  • 要跨页面加载保存请求,好比某个网站页面有跳转时想保留原来的请求列表,可选择该项
  • 中止使用缓存
  • 离线模拟:
  • 模拟其余网速链接:,其中包含了自定义网速
  • 隐藏 Filter 窗格
  • 手动清除缓存:右键点击请求选择 Clear Browser Cache

2.4  过滤器说明

  • 过滤 AllXHRJSCSSImgMediaFontDocWS(WebSocket)ManifestOther 类型。
  • 按住 Ctrl 能够选择过滤多个条件。
  • 按时间过滤:概览面板,拖动滚动条。
  • Hide Data URLs
  • domain:

2.5  请求列表

  • 默认是时间排序
  • 按列排序
  • 按照活动时间排序,Start Time 发出的第一个请求位于顶部,Response Time 开始下载的第一个请求位于顶部,End Time 完成的第一个请求位于顶部,Total Duration 链接设置时间和请求/响应时间最短的请求位于顶部,Latency 等待时间最短响应的请求位于顶部
  • Names:资源名称
  • StatusHTTP 状态码
  • Type:请求的资源的 MIME类型
  • Initiator:发起请求的对象或进程,Parser(解析器)表示 ChromeHTML解析器发起了请求,Redirect(重定向)表示HTTP重定向启动了请求,Script(脚本):脚本启动了请求,Other(其余):一些其余进程或动做发起请求,例如用户点击连接跳转到页面或在地址栏中输入网址

3. OSI 模型

OSI (Open System Interconnection Reference Model)模型是一种理论概念模型,并未真正被实现过,可是在实现网络协议须要参考这种模型,才能更好的去理解网络中的协议和分层:
3d

Tips: 应用层解决的是业务问题, 表示层负责把网络中的消息转化为 应用层能够读写的消息(如TLS/SSL), 会话层负责创建会话、握手、维持链接、关闭, 传输层解决进程与进程之间的通讯, 网络层负责 ip地址之间创建链接, 数据链路层负责局域网中链接  MAC 地址链接到中交换机、路由器等, 物理层主要负责信号是如何传递的。

4.TCP/IP 模型

实际在因特网中使用的是 TCP/IP 模型,在 TCP/IP 模型中对 OSI 模型作了不少简化,好比应用层没有对 表示层会话层作严格的区分,数据链路层和 物理层也没有作严格的区分:
code

Tips:网络分层中各层只须要负责各层本身所作的事情,不用关心其它层的工做,但会增长额外的数据处理延迟。

5.报文头部

6.抓包分析

下载一个抓包演示用的报文文件,地址 http://www.singwa666.com/demo.pcapng

6.1 首先用 WireShark 打开报文文件,而且用 http 过滤:

6.2 点开其中的一条进行分析:

6.3 点开 Ethernet II 能够看到数据链路层相关的数据:

Tips:以太网层展现了  MAC 地址相关信息。

6.4 点开 Internet Protocol ... 能够看到 IP层 相关的数据:

6.5 点开 Transmission Control Protocol ... 能够看到 TCP层 相关的数据:

6.6 点开 Hypertext Transfer Protocol 能够看到 应用层 HTTP 相关的数据:

扫码关注爱因诗贤

相关文章
相关标签/搜索