一次HTTP(S)请求究竟需要多少流量?Wireshark抓包分析

Wireshark抓包和分析步骤 右键点击一个TCP数据包,选择**Follow TCP Stream**,可以查看完整的TCP会话信息,包括请求和响应。抓取完成后,可以点击**File -> Save As**保存捕获的.pcap文件,以便以后分析。- **TCP/UDP**:可以查看源和目的端口号、标志位等。分析网络中的TCP连接或UDP流量情况。- **HTTP**:可分析请求方法、状态码、URL等。3. **安全监控**:检测网络中的潜在威胁,如未加密的敏感数据传输。- **协议过滤**:`http`、`dns`、`icmp`等。 阅读详情
AI摘要

本文通过Wireshark抓包分析揭示HTTP(S)请求流量分布,重点讲解TCP三次握手、TLS加密对流量的影响,解释HTTPS安全性和带宽占用的奥秘。

来自:指月 https://www.lixueduan.com

原文:https://www.lixueduan.com/post/network/06-http-flow/

本文主要通过抓包分析了一次 HTTP(S) 请求究竟需要多少流量,同时也分析了一下整个 HTTP 请求的执行流程。


如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎关注微信公众号。

扫描下方二维码或搜索公众号【探索云原生】即可订阅


1. 背景

最近查询监控,观察到某个负载的带宽峰值在最高的时候都达到了近 30M,然后查了对应时间段的系统 QPS,发现确实是有一个明细的峰值,但是也不应该有这种多流量吧?

根据QPS和接口响应数据大致计算下来,最多 5M 带宽就够了。

后续对接口响应进行了优化和精简,整体响应数据降低了 20% 左右,但是负载的带宽峰值还是没什么变化,有降低但是并不明显。

HTTP 响应除了包含我们业务数据的响应体之外还有状态行和响应头,这些都是要算流量的,所以多出的流量是不是在这些地方呢?

对比了几个请求后发现,虽然这部分会消耗一定流量,但是并不多,还没有业务数据多呢。

这就很奇怪了,也找不到流量到底消耗到哪儿去了,于是想着通过抓包来分析一下。

2. 抓包分析

没办法,HTTP 层找不到原因只能从更底层找了,这里使用的是Wireshark工具进行抓包分析。

具体的抓包结果如下图所示:

由于一台机器上网络请求较多,我加了筛选条件,仅显示客户端和服务端通信的网络请求,所以请求的序号是不连续的。

ws-tcp-3

ws-tls

ws-logic

因为没有保存,导致有部分截图漏掉了,所以又抓了一次,下面是第二次抓包的结果。

ws-keep-alive

ws-tcp-4

按阶段拆分了一下,可以看到整个流程可以分为 5 个阶段:

  • 1)TCP 3 次握手
  • 2)TLS 握手
  • 3)正常业务请求
  • 4)Keep-Alive 保持连接
  • 5)TCP 4 次挥手

TCP 三次握手,四次挥手详情见计算机网络(二)—TCP三次握手四次挥手

2.1 TCP 三次握手

ws-tcp-3

首先是 三次握手,毕竟 HTTP 也是基于 TCP 的,所以需要先建立 TCP 连接。

从图中可以看到,客户端发送两次请求,总共 66+54 字节,服务端一次请求共 66 字节。

2.2 TLS 握手

ws-tls

由于是 HTTPS,所以还需要进行额外的一个 TLS 握手,具体步骤如下:

  • 1)客户端提供【客户端随机数、可选算法套件、sessionId】等信息
  • 2)服务端提供【服务端随机数、选用算法套件、sessionId】等信息
  • 3)服务端提供证书
  • 4)服务端与客户端互换算法需要的参数
  • 5)客户端根据前面提到的随机数和参数生成master secret,确认开始使用指定算法加密,并将握手信息加密传输给服务端,用来校验握手信息、秘钥是否正确
  • 6)服务端进行与(5)一样的操作
  • 7)客户端、服务端可以用master secret进行加密通讯

从截图或者步骤中可以看到,服务端需要提供证书给客户端,所以肯定会耗费较多的流量。

客户端:571(步骤1)+54(ACK)+147(步骤4)+153(步骤5)+576(步骤5)

服务端:60(ACK)+1446(步骤2)+1446(步骤3)+220(步骤4)+60(ACK)+312(步骤6)

2.3 业务请求

ws-logic

建立 TLS 连接后才能进行真正的业务请求,这里一共进行了 3 个请求。

客户端:189(业务数据)+54(ACK)+268(业务数据)+54(ACK)+683(业务数据)+54(ACK)

服务端:636(业务数据)+92+350(业务数据)+92+257(业务数据)+92

2.4 Keep-Alive

ws-keep-alive

为了防止连接被关闭,客户端会自动发送 Keep-Alive 请求来保持连接。

必须要在 HTTP Request 中开启 Keep-Alive 才行

每个心跳包:客户端 55 字节,服务端 66 字节。

2.5 TCP 四次挥手

最后则是 TCP 的四次挥手了。

ws-tcp-4

客户端:54+54

服务端:60+60

3. 结论

经过前面的分析,基本上已经可以确定流量到底是消耗在哪个阶段了,这里还是总结一下,具体流量消耗请求见下表:

CS / 阶段TCP 3 次握手TLS 握手正常业务请求Keep-Alive 保持连接TCP 4 次挥手总计
Client12015101302551053092
Server6635441515661205311

从表格中可以看到,一共发起了 3 个 HTTP 请求,客户端消耗了 3092 字节,服务端则多达 5311 字节。

客户端真正发送的业务数据为:1140 字节,占比 36%

服务端真正的响应数据为 1243 字节,占比只有 23%。

不管是客户端还是服务端 TLS 握手消耗占比都超过了 50%,这也是为什么要保持连接,不然每请求一次都要走一遍 TLS 握手,那这个消耗可太大了。

理论上讲 HTTP 肯定是比 HTTPS 快的,但是 HTTPS 多了 TLS 层极大增强了安全性,相比之下还是安全更重要,这也是为什么现在大部分网站都上 HTTPS 了。

这也印证了为什么负载带宽这么高,且减少响应数据后带宽变化不大。毕竟真正消耗带宽的地方并不是业务数据。

Wireshark (三) wireshark分析HTTP协议 Wireshark 是一款强大的网络协议分析工具,它可以捕获网络中传输的数据包,并提供了丰富的功能来分析这些数据包。可以针对 HTTP 协议,Wireshark 能够深入理解客户端和服务器之间的通信过程,包括请求和响应的详细内容。 阅读详情

相关推荐

Wireshark:HTTP、MQTT、WebSocket 抓包详细教程

本文详细介绍了Wireshark网络抓包分析的完整流程。主要内容包括:1)安装配置,强调管理员权限和正确网卡选择;2)基础操作指南,包含捕获过滤器和常用设置;3)针对HTTP/MQTT/WebSocket三大协议的抓包技巧,详细说明捕获、过滤、分析和导出方法;4)HTTPS/TLS解密方案,重点介绍SSLKEYLOGFILE和代理两种方式;5)移动设备和IoT设备的抓包实践技巧;6)常用过滤器和命令行工具tshark的使用示例。文章还提供了实战流程演示和常见问题排查清单,是一份全面的网络协议分析实用指南。

moton2017的博客 2311

HTTP协议简介

HTTP协议超级详解 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W...

g200407331的专栏 1358

Wireshark抓包实战:如何快速定位HTTP登录请求(附常见问题排查)

本文详细介绍了如何使用Wireshark抓包工具快速定位HTTP登录请求,包括基础配置、捕获流程、高级过滤技巧及常见问题排查。通过实战案例,帮助网络安全工程师和开发者掌握网络流量分析的核心技能,提升HTTP协议分析与安全防护能力。

weixin_30296405的博客 1633

一次HTTP链接会产生多少数据流量

分析了一个http包引发了网络通信流量,分析了来往包的含义和大小

danteLiujie的专栏 1万+

一文探讨Http与Https:差异与安全机制对比

在当今互联网中,数据传输的安全性至关重要。HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是两种最基础的网络协议,但它们在安全性、性能和应用场景上存在显著差异。

bjxiaxueliang的CODING小栈 1677

http 服务器程序统计流量分析

http 服务器程序统计流量分析 客户端请求资源,服务器端统计请求资源流量。

Wireshark流量分析

Wireshark流量分析开始抓包wireshark过滤器表达式wireshark着色规则数据流的追踪数据包的统计分析数据包的大致结构网络分析只抓包头 开始抓包 打开wireshark后,按ctrl+K,勾选需要抓包的网卡 点击Start开始抓包 wireshark过滤器表达式 协议过滤 TCP:只显示TCP协议的数据流 HTTP:只显示HTTP协议的数据流 ICMP:只显示ICMP协议的数据流 ARP:只显示ARP协议的数据流 DNS:显示DNS协议的数据流 IP过滤 ip.addr =

LYJ20010728的博客 1万+

避坑指南:DDR4内存条Margin测试Fail?从Intel RMT工具到PCB Layout的完整排错思路

本文深入探讨了DDR4内存条在Margin测试中Fail的完整排错思路,从Intel RMT工具分析到PCB Layout优化。通过实战案例,详细解析了信号完整性问题的诊断与解决方案,包括拓扑结构影响、传输线参数优化及HyperLynx仿真验证,为硬件设计工程师提供了宝贵的避坑指南。

weixin_42530458的博客 455

WireShark抓包http,解密https

本文介绍了HTTP协议的基本概念和抓包分析技术。主要内容包括:1)HTTP协议的发展历程,从HTTP1.x到HTTP3的演变,重点说明加密机制的变化;2)HTTP抓包方法,演示如何通过Wireshark捕获明文HTTP流量;3)HTTPS解密技术,详细讲解配置浏览器导出TLS密钥实现HTTPS流量解密的过程;4)HTTP状态码分类,列举了1XX-5XX共5大类状态码及其具体含义。文章通过实际案例展示了网络协议分析的技术细节,为理解HTTP/HTTPS协议工作原理提供了实用参考。

微小冷的学习笔记 4289

新一代XMOS会议四麦方案主控芯片 XVF3800

2023年,知名的音频芯片制造厂商 XMOS 正式发布了新一代会议麦阵芯片片 XVF3800 ,这款芯片采用最先进的四麦音频算法,可在嘈杂的环境中提供高质量语音,算法支持圆形、条形阵列,可根据应用场景组成不同的产品形态。传统的麦阵解决方案,不仅需要捕捉会议中的人声,也会同时捕捉环境中的其他噪声,而 XMOS 先进的语音算法解决了这一问题。声学回声消除功能可消除麦克风音频输入的回声,同时减少远端回声,使 XVF3800 能提取清晰的语音信号。• 180度拾音条形麦克风阵列。• 360度拾音环形麦克风阵列。

PawPaw_electron的博客 785

模拟IC设计笔记:拆解一个经典的时钟占空比校正(DCC)电路模块,从理论到SPICE仿真

本文深入解析了时钟占空比校正(DCC)电路在模拟IC设计中的关键作用,特别是在高速ADC应用中。通过晶体管级拆解,详细介绍了基于电荷泵和积分器的模拟反馈型DCC电路设计,包括占空比检测、误差放大与校正执行单元的实现。文章还提供了SPICE仿真验证方法,确保电路在100MHz时钟下的稳定性和性能。

weixin_33725722的博客 429

Linux流量分析:tcpdump & wireshark

最近因为工作需要,研究了下如何使用tcpdump和wireshark分析业务流量。如果要使用tcpdump分析具体的HTTP请求耗时,需捕获网络数据包并分析时间戳信息,重点关注TCP连接的建立、HTTP请求发送到响应接收的全过程。精准抓包:指定接口、端口和过滤规则。定位关键节点:握手、请求发送、响应接收的时间戳。工具分析:Wireshark:可视化时序和流量统计。命令行:结合grep/awk快速计算耗时。优化策略:针对高延迟环节(如握手慢、重传多)深入排查。

巫山老妖 1334

UVM自学笔记3——项目之三——从零开始搭建ahb_sramc验证平台

创建如下所示的目录结构: 2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和39行将接口以virtual interface的形式配置给ahb_agent和sramc_agent下

ZhangShuHuai11的博客 9479

WireShark抓包及常用协议分析

Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。WireShark使用WinPCAP(kali自带)作为接口,直接与网卡进行数据报文交换。混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下的网卡只接收发给本机的包(包括广播包)传递给上层程序,其他的包一律丢弃。一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。

weixin_68254517的博客 3887

借助OSS搭建在线教育视频课程分享网站-阿里云的课程体验和记录

阿里云的《搭建在线教育网站》免费课程里面讲的啥,我点进去看了看

LegendNoTitle的博客 3023

STM32 RTC_WaitForSynchro()死循环问题分析与LSI时钟优化实践

本文深入分析了STM32使用LSI时钟源时,调用RTC_WaitForSynchro()函数陷入死循环的根本原因。问题核心在于RTC时钟域未正确使能,导致硬件同步标志RSF无法置位。文章提供了通过显式调用RCC_RTCCLKCmd(ENABLE)函数启用RTC时钟总开关的解决方案,并分享了编写健壮RTC/BKP初始化代码、增加超时机制等最佳实践,确保系统稳定运行。

weixin_29185493的博客 512

tcpdump/wireshark 抓包及分析

tcpdump 和 wireshark 功能非常强大,组合起来更是网络排障的首选利器。这里介绍的内 容只是九牛一毛,更多的时候,你需要。

hao_wujing的专栏 1845

Python爬虫实战:使用最新技术抓取采购网招标公告信息

本文将详细介绍如何使用Python最新爬虫技术构建一个高效的采购网招标公告信息抓取系统。我们将从爬虫基础概念讲起,逐步深入到高级技巧,包括异步处理、反爬虫对策、数据解析与存储等,并提供完整的代码实现。本文旨在为读者提供一套完整的网络数据采集解决方案,适用于各类政府采购平台和商业招标网站。网络爬虫(Web Crawler)是一种自动抓取互联网信息的程序或脚本,它们按照一定的规则,自动地浏览万维网并提取所需数据。在现代商业环境中,爬虫技术广泛应用于价格监控、竞争情报收集、市场研究等领域。

2201_76125261的博客 1623

如何抓包分析http 400_tcpdump/wireshark抓包及分析

本文将展示如何使用tcpdump抓包,以及如何用tcpdump和wireshark分析网络流量。 文中的例子比较简单,适合作为入门参考。1 基础环境准备为方便大家跟着上手练习,本文将搭建一个容器环境。1.1 Pull Docker镜像$ sudo docker pull alpine:3.81.2 运行容器$ sudo docker run -d --name ctn-1 alpine:3.8 s...

weixin_39816448的博客 1058

【AUTOSAR-IpduM】-3.1-配置一个发送Tx Dynamic Container PDU(Multiple-PDU)

手把手教您如何配置一个Tx Dynamic Container PDU(Multiple-PDU),动态容器复用帧。并附上测试LOG帮助您进一步加深理解。

「汽车电子助手」的博客 1771

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

如何使用 tcpdump 抓包?如何用 tcpdump 和 wireshark 分析网络流量?

本文将展示如何使用 tcpdump 抓包,以及如何用 tcpdump 和 wireshark 分析网络流量。文中的例子比较简单,适合作为入门参考。为方便大家跟着上手练习,本文将搭建一个容器环境。Pull Docker 镜像 运行容器 进入容器 查看容器网络信息 安装 tcpdump HTTP/TCP 抓包 接下来我们用 wget 获取一个网站的首页文件(index.html),同时 tcpdump 抓包,对抓 到的网络流量进行分析。HTTP 请求:下载测试页面example.com 是

biyusr的专栏 2076

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

使用WireShark抓包分析Android网络请求时间(一)

WireShark是一个非常准确和稳定的tcp抓包工具,但看其40多m的安装包就可以想象其功能的强大,借助其功能强大的表达式筛选器,可以迅速的筛选出来我们所需要报文和记录,最近我就通过WireShark推断网络性能问题的故障点,收获颇丰。

lvshaorong的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Wireshark 抓包分析:网络安全转行必备的流量分析技能

摘要: Wireshark是网络安全中必备的流量分析工具,本文从安装到实战全面讲解其使用技巧。核心内容包括:1)基础界面与抓包设置,重点选择正确网卡;2)抓包与显示过滤器规则,如按IP、端口或协议筛选流量;3)实战案例:分析HTTP登录流量(明文密码)和检测SYN洪水攻击(大量异常SYN包)。通过掌握这些技能,可快速排查网络问题或安全攻击,适用于运维与安全岗位需求。文末还提供了简历撰写建议及网络安全学习资料。

ice_55的博客 650

网络流量分析——熟悉Wireshark

本实验指导用户使用Wireshark进行网络流量分析。主要内容包括:1)熟悉Wireshark图形界面和工具栏功能;2)设置捕获过滤器仅监控特定主机的流量;3)通过访问pepsi.com和apache.org生成流量,观察HTTP/HTTPS协议差异;4)分析数据包回答会话建立、应用协议及明文信息等问题;5)提供DNS和TLS过滤示例及常用命令备忘单。实验旨在帮助用户掌握Wireshark基本操作,包括接口选择、过滤器设置和流量分析技巧,为进一步网络诊断打下基础。

Atticus的博客 1961
上一篇: Go语言之防缓存穿透利器Singleflight
下一篇: Goland debug 断点无效解决方案
探索云原生
博客等级 码龄9年 730粉丝 131原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值