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

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

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

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

如下图所示:

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

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

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

1.6 双击该条HTTP 请求数据:

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

2.Chrome 抓包:Network 面板分析

2.1  Network 示意图

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)模型是一种理论概念模型,并未真正被实现过,但是在实现网络协议需要参考这种模型,才能更好的去理解网络中的协议和分层:

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

4.TCP/IP 模型

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

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 相关的数据:

相关文章
|
28天前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
162 61
|
27天前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
2月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
87 18
|
2月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
79 19
|
3月前
|
XML JSON 网络协议
利用HTTP POST协议实现简单的RPC协议:WireShark抓包分析
通过这种方式,我们可以使用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这不仅可以帮助我们理解RPC协议的工作原理,也可以帮助我们调试和优化我们的代码。
143 30
|
2月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
250 20
|
2月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
92 1
|
3月前
|
JSON 数据格式
利用HTTP POST协议实现简单的RPC协议,并使用WireShark进行抓包分析
通过这种方式,我们可以利用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这种方式简单易懂,实用性强,可以应用于各种网络编程场景。
129 16
|
3月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
196 3
|
3月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
114 22
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问