深入解析Wireshark1:从捕获到分析,一网打尽数据包之旅
目录
1 认识 Wireshark
1.1 选择网卡界面
1.2 捕获数据包界面
1.3 常用按钮功能介绍
1.4 数据包列表信息
1.5 数据包详细信息
2 数据包案例分析
Frame: 物理层的数据帧概况
Ethernet II: 数据链路层以太网帧头部信息
Internet Protocol Version 4 (IPv4): 互联网层IP包头部信息
User Datagram Protocol (UDP): 传输层的数据段头部信息
Hypertext Transfer Protocol (HTTP): 应用层的信息
1 认识 Wireshark
Wireshark(前称Ethereal)是一个非常流行的网络封包分析软件,其功能十分强大,可以截取各种网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark是开源软件,使用者可以以免费的途径取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。
软件官网: Wireshark · Go Deep
1.1 选择网卡界面
1.2 捕获数据包界面
1.3 常用按钮功能介绍
开始捕获分组:
这个按钮用于开始捕获数据包。一旦点击,Wireshark将开始从选定的接口捕获传入和传出的数据包。
停止捕获分组:
这个按钮用于暂停当前的捕获操作。捕获的数据包将停止添加到捕获窗口中,但之前捕获的数据包仍然可以进行分析。
重新开始当前捕获:
这个按钮用于停止当前捕获会话并立即开始一个新的捕获会话。
捕获选项:
捕获选项按钮允许用户设置抓包时的各种参数。这些参数包括选择用于捕获数据包的网络接口、设置数据包捕获的过滤条件(如只捕获特定IP地址或端口的数据包)、配置捕获文件的保存设置等。
当完成这些设置后,Wireshark会保留这些设置,并在下次启动或进行新的捕获时默认使用它们。
打开已保存的捕获文件:
该按钮允许用户加载并查看之前保存的网络数据包捕获文件。这些文件可能包含TCP、UDP、ICMP等协议的数据包,对于网络分析、故障排除和性能优化等方面非常有用。
Wireshark支持多种文件格式,包括它自身保存的.pcap或.pcapng格式,以及由其他网络分析工具(如tcpdump)使用-w参数保存的文件。
点击此按钮后,用户可以浏览并选择要打开的捕获文件,并在Wireshark中进行分析。
保存捕获文件:
保存捕获文件的功能允许用户将当前捕获或分析的网络数据包结果保存到文件中,以便后续查看、分析或共享。
关闭捕获文件:
关闭捕获文件的功能允许用户停止当前捕获会话(如果正在进行)并关闭当前加载的捕获文件。当文件被关闭后,Wireshark的界面通常会返回到初始状态,即没有打开任何捕获文件的状态。
这个功能在用户完成对数据包的查看和分析后非常有用,因为它可以清理屏幕并释放系统资源。同时,关闭捕获文件也是开始新的捕获会话或加载另一个捕获文件的准备步骤。
重新加载文件:
使用重新加载文件功能,Wireshark会重新读取指定的捕获文件,并在主界面中重新展示该文件中的所有数据包。用户可以再次使用Wireshark的各种过滤、分析工具来查看和处理这些数据包。
查找一个分组:
该按钮用于在捕获的数据包中搜索特定条件的数据包。点击后,输入关键字或条件,如IP地址、端口号等,Wireshark会显示匹配的数据包。
转到前一个分组:
该按钮的作用是使数据包列表窗格中的光标跳转到前一个数据包的位置。这个功能对于在大量数据包中快速定位和查看相邻数据包非常有用。用户无需手动滚动数据包列表或使用其他复杂的导航方式,只需点击“转到前一个分组”按钮,即可快速回到前一个数据包。
转到下一个分组:
该按钮的作用是使数据包列表窗格中的光标跳转到下一个数据包的位置。这个功能对于在捕获的大量数据包中快速浏览和定位特定数据包非常有用。当你正在查看一个数据包,并希望快速查看其后的数据包时,可以点击这个按钮,Wireshark会自动滚动到下一个数据包并显示其详细信息。
转到特定分组:
该按钮的作用是将数据包列表窗格中的光标快速跳转到指定的数据包位置。
当你点击这个按钮时,Wireshark通常会提供一个输入框,允许你输入数据包的序号或其他标识符。输入完毕后,点击“转到分组”,Wireshark就会将光标定位到指定的数据包上,并显示该数据包的详细信息。
转到首个分组:
该按钮的作用是使数据包列表窗格中的光标快速跳转到第一个数据包的位置。
当你在数据包列表中滚动浏览了多个数据包后,如果你想快速回到数据包的起始位置,即第一个捕获的数据包,可以点击这个按钮。Wireshark会立即将光标定位到第一个数据包,并显示其详细信息。
在实时捕获时,自动滚动屏幕到最新的分组:
该按钮的作用是当新的数据包被捕获时,自动将数据包列表窗格滚动到最新的数据包位置。
这个功能特别适用于实时捕获网络流量的场景。当网络上有新的数据包传输时,Wireshark会不断捕获这些数据包并显示在数据包列表窗格中。如果数据包列表窗格中的数据包数量较多,新的数据包可能会出现在列表的底部,用户需要手动滚动才能看到。而开启自动滚动屏幕到最新的分组功能后,每当有新的数据包被捕获,Wireshark都会自动将数据包列表窗格滚动到最新的数据包位置,方便用户实时查看最新的网络流量数据。
使用着色规则绘制分组:
该按钮的主要作用是,根据用户定义的着色规则为数据包列表中的不同分组或数据包设置不同的颜色或背景色。
这种功能可以帮助用户更直观、清晰地观察和分析网络数据包。例如,你可以设置规则将所有来自特定IP地址的数据包标记为黄色背景,或者将所有HTTP协议的数据包标记为蓝色字体。这样,在数据包列表中,你就可以快速识别出符合特定条件的数据包,从而更方便地进行后续的分析和排查。
放大主窗口文本:
该按钮用于调整数据包列表区和数据包详细区的字体大小:字号变大
收缩主窗口文本:
该按钮用于调整数据包列表区和数据包详细区的字体大小:字号变小
使主窗口文字返回正常大小:
该按钮用于调整数据包列表区和数据包详细区的字体大小:正常字号
调整分组列表列以适应内容:
该按钮用于自动调整数据包列表(分组列表)中各列的宽度,以便更好地显示列中的内容。
1.4 数据包列表信息
No.:
这列显示了数据包的编号。通常按照数据包被捕获的顺序进行编号,方便用户追踪和识别。
Time:
这列显示了数据包被捕获的时间戳。时间戳通常包括日期、时间,甚至可能包括毫秒或微秒级别的精度,以便更准确地分析数据包之间的时间间隔。
Source:
这列显示了数据包的源地址。对于IP数据包,这通常是一个IP地址,表示数据包从哪里发送出来。
Destination:
这列显示了数据包的目的地址。同样,对于IP数据包,这通常是一个IP地址,表示数据包要发送到的目标位置。
Protocol:
这列显示了数据包使用的协议。比如TCP、UDP、ICMP等,这有助于用户了解数据包在网络中是如何传输的,以及应用层使用了哪种协议。
Length:
这列显示了数据包的长度。长度可能包括数据包的全部内容(包括头部和数据部分),或者只是数据包的数据部分长度,具体取决于Wireshark的显示设置。
Info:
这列通常包含了关于数据包的额外信息,比如TCP或UDP的端口号、HTTP的请求方法等。这些信息有助于用户进一步了解数据包的内容和用途。
1.5 数据包详细信息
2 数据包案例分析
Frame: 物理层的数据帧概况
显示了捕获帧的物理层相关信息,包括帧到达的时间戳、帧长度、捕获长度(实际捕获的字节数)、网络接口信息(如哪个网卡捕获了此帧)等。
Frame 148: 811 bytes on wire (6488 bits), 811 bytes captured (6488 bits) on interface \Device\NPF_{ED2A4B3D-3280-43B2-A708-2837AEAA6158}, id 0Section number: 1Interface id: 0 (\Device\NPF_{ED2A4B3D-3280-43B2-A708-2837AEAA6158})Interface name: \Device\NPF_{ED2A4B3D-3280-43B2-A708-2837AEAA6158}Interface description: WLANEncapsulation type: Ethernet (1)Arrival Time: May 15, 2024 22:55:33.021476000 中国标准时间UTC Arrival Time: May 15, 2024 14:55:33.021476000 UTCEpoch Arrival Time: 1715784933.021476000[Time shift for this packet: 0.000000000 seconds][Time delta from previous captured frame: 0.000353000 seconds][Time delta from previous displayed frame: 0.000000000 seconds][Time since reference or first frame: 5.079050000 seconds]Frame Number: 148Frame Length: 811 bytes (6488 bits)Capture Length: 811 bytes (6488 bits)[Frame is marked: False][Frame is ignored: False][Protocols in frame: eth:ethertype:ip:tcp:http:urlencoded-form][Coloring Rule Name: HTTP][Coloring Rule String: http || tcp.port == 80 || http2]
基本信息
- Frame 148: 这是数据包在捕获文件中的序号,表示这是第148个被捕获的数据包。
- 811 bytes on wire (6488 bits): 数据包在传输线上的实际大小是811字节,转换为比特是6488比特。
- 811 bytes captured (6488 bits) on interface \Device\NPF_{ED2A4B3D-3280-43B2-A708-2837AEAA6158}: 数据包在接口上被捕获的大小也是811字节,与线上传输的大小相同,说明没有数据丢失。接口ID是一个唯一标识符,代表特定的网络接口。
接口信息
- Interface id: 与前面捕获长度中提到的接口ID相同。
- Interface name: 具体的网络接口名称,这里是一个NPF(Npcap Packet Filter)驱动创建的虚拟接口。
- Interface description: 描述了接口的类型,这里是WLAN,即无线局域网。
- Encapsulation type: 数据包封装类型,这里是Ethernet(以太网)。
时间信息
- Arrival Time: 数据包到达本地时间的时间戳。
- UTC Arrival Time: 数据包到达的UTC时间戳。
- Epoch Arrival Time: 数据包到达的时间戳,以Unix时间戳(从1970年1月1日00:00:00 UTC开始的秒数)形式表示。
- Time shift for this packet: 时间偏移量,对于此数据包为0,表示没有应用时间偏移。
- Time delta from previous captured frame: 与前一个捕获的数据包之间的时间差。
- Time delta from previous displayed frame: 与前一个显示的数据包之间的时间差(如果前一个数据包也被显示的话)。
- Time since reference or first frame: 从参考帧或第一个帧开始的时间。
数据包详情
- Frame Number: 数据包的序号。
- Frame Length: 数据包的总长度。
- Capture Length: 实际捕获的数据包长度(可能与Frame Length相同,也可能因为捕获设置而较小)。
- Frame is marked/ignored: 这两个标志表明数据包是否被标记或忽略。在此情况下,它们都被设置为False。
- Protocols in frame: 数据包中包含的协议层,从底层到上层依次为以太网(eth)、以太网类型(ethertype)、IP、TCP、HTTP和urlencoded-form(可能是HTTP请求中的表单数据编码格式)。
- Coloring Rule Name/String: 数据包着色的规则名称和规则字符串。这里使用了HTTP相关的着色规则,以便在数据包列表中更容易识别HTTP数据包。
结论
此数据包是一个来自WLAN接口、大小为811字节的以太网数据包,包含了从IP层到HTTP层的信息。从着色规则来看,这是一个与HTTP相关的数据包,可能是一个HTTP请求或响应。要进一步了解数据包的具体内容(如HTTP请求头、请求体等),需要在Wireshark中展开数据包的各个协议层。
Ethernet II: 数据链路层以太网帧头部信息
显示了以太网帧的头部信息,如目的MAC地址、源MAC地址、以太网类型(如IPv4、ARP等)。
Ethernet II, Src: Intel_e5:4a:f2 (58:1c:f8:e5:4a:f2), Dst: ChinaMobileG_86:63:69 (dc:7c:f7:86:63:69)Destination: ChinaMobileG_86:63:69 (dc:7c:f7:86:63:69)Address: ChinaMobileG_86:63:69 (dc:7c:f7:86:63:69).... ..0. .... .... .... .... = LG bit: Globally unique address (factory default).... ...0 .... .... .... .... = IG bit: Individual address (unicast)Source: Intel_e5:4a:f2 (58:1c:f8:e5:4a:f2)Address: Intel_e5:4a:f2 (58:1c:f8:e5:4a:f2).... ..0. .... .... .... .... = LG bit: Globally unique address (factory default).... ...0 .... .... .... .... = IG bit: Individual address (unicast)Type: IPv4 (0x0800)
目标地址(Destination)
- ChinaMobileG_86:63:69 (dc:7c:f7:86:63:69):这是数据包的目标MAC地址。MAC地址通常用于标识网络中的物理设备。
- Address:
dc:7c:f7:86:63:69
是目标设备的MAC地址。 - LG bit (Locally/Globally Administered bit): 这个比特设置为0,表示这是一个全局唯一地址(Globally Unique Address),也称为工厂默认地址(factory default)。
- IG bit (Individual/Group bit): 这个比特也设置为0,表示这是一个单播地址(Individual Address),意味着数据包是发送给单个接收者的。
- Address:
源地址(Source)
- Intel_e5:4a:f2 (58:1c:f8:e5:4a:f2):这是数据包的源MAC地址,表示发送数据包的设备的物理地址。
- Address:
58:1c:f8:e5:4a:f2
是发送设备的MAC地址。 - LG bit: 与目标地址相同,这个比特设置为0,表示这是一个全局唯一地址。
- IG bit: 同样地,这个比特设置为0,表示数据包是单播的。
- Address:
类型字段(Type)
- IPv4 (0x0800):这表示在以太网帧的载荷中封装的是IPv4数据包。类型字段用于指示以太网帧载荷中携带的上层协议类型。在这种情况下,它是IPv4协议,其十六进制表示形式为
0x0800
。
结论
- 数据包是从一个具有MAC地址
58:1c:f8:e5:4a:f2
的设备发送到具有MAC地址dc:7c:f7:86:63:69
的设备的。 - 这两个MAC地址都是全局唯一地址,并且都是单播地址。
- 数据包中封装的是IPv4协议的数据。
Internet Protocol Version 4 (IPv4): 互联网层IP包头部信息
显示了IPv4数据包的头部信息,包括版本、头部长度、服务类型(TOS)、总长度、标识、标志、片段偏移量、生存时间(TTL)、协议(如TCP、UDP)、头部校验和、源IP地址、目的IP地址等。
Internet Protocol Version 4, Src: 192.168.1.5, Dst: 36.155.251.700100 .... = Version: 4.... 0101 = Header Length: 20 bytes (5)Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)0000 00.. = Differentiated Services Codepoint: Default (0).... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)Total Length: 797Identification: 0xb0ff (45311)010. .... = Flags: 0x2, Don't fragment0... .... = Reserved bit: Not set.1.. .... = Don't fragment: Set..0. .... = More fragments: Not set...0 0000 0000 0000 = Fragment Offset: 0Time to Live: 64Protocol: TCP (6)Header Checksum: 0x0000 [validation disabled][Header checksum status: Unverified]Source Address: 192.168.1.5Destination Address: 36.155.251.70
这是一个IPv4数据包的头部信息分析。下面是对各个字段的详细解释:
Version (版本):
0100 .... = Version: 4
- 这表示这是一个IPv4数据包。
Header Length (头部长度):
.... 0101 = Header Length: 20 bytes (5)
- 这表示IPv4头部长度是20字节(因为长度是以4字节为单位的,所以5*4=20字节)。
Differentiated Services Field (区分服务字段):
0000 00.. = Differentiated Services Codepoint: Default (0)
- 这是DSCP(区分服务编码点)字段,值为0表示默认服务等级。
.... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
- 这是ECN(显式拥塞通知)位,值为0表示此传输不支持ECN。
Total Length (总长度):
Total Length: 797
- 这表示整个IP数据报(包括头部和数据)的长度为797字节。
Identification (标识):
Identification: 0xb0ff (45311)
- 每个IP数据包都有一个唯一的标识符,用于在数据包的碎片重组时识别它们。
Flags (标志):
010. .... = Flags: 0x2, Don't fragment
0... .... = Reserved bit: Not set
- 这是一个保留位,这里未设置。
.1.. .... = Don't fragment: Set
- 设置了这个位,意味着路由器在转发此数据包时不应该对其进行分片。
..0. .... = More fragments: Not set
- 这个位未设置,表示这不是一个分片数据包的后续部分。
Fragment Offset (碎片偏移):
...0 0000 0000 0000 = Fragment Offset: 0
- 这表示数据包中没有碎片,或者它是碎片数据包的第一个片段。
Time to Live (生存时间):
Time to Live: 64
- 这是数据包在网络中允许传输的最大跳数(或时间)。每经过一个路由器,TTL值减1。当TTL值减至0时,数据包将被丢弃。
Protocol (协议):
Protocol: TCP (6)
- 这表示数据包的有效载荷是TCP数据。
Header Checksum (头部校验和):
Header Checksum: 0x0000 [validation disabled]
- 这是IPv4头部的校验和。由于“validation disabled”,这个值可能不准确或未经验证。
Source Address (源地址):
Source Address: 192.168.1.5
- 这是发送数据包的设备的IP地址。
Destination Address (目标地址):
Destination Address: 36.155.251.70
- 这是数据包的目标IP地址。
结论
这个IPv4数据包是一个从192.168.1.5
到36.155.251.70
的TCP数据包,不允许分片,总长度为797字节,TTL为64,并且其头部校验和未经验证。
User Datagram Protocol (UDP): 传输层的数据段头部信息
显示了UDP数据段的头部信息,包括源端口号、目的端口号、长度、校验和等。如果数据包使用的是TCP而不是UDP,则这里会显示TCP的头部信息,如序列号、确认号、窗口大小、校验和、选项等。
Transmission Control Protocol, Src Port: 49697, Dst Port: 80, Seq: 1, Ack: 1, Len: 757Source Port: 49697Destination Port: 80[Stream index: 15][Conversation completeness: Complete, WITH_DATA (31)]..0. .... = RST: Absent...1 .... = FIN: Present.... 1... = Data: Present.... .1.. = ACK: Present.... ..1. = SYN-ACK: Present.... ...1 = SYN: Present[Completeness Flags: ·FDASS][TCP Segment Len: 757]Sequence Number: 1 (relative sequence number)Sequence Number (raw): 3579494717[Next Sequence Number: 758 (relative sequence number)]Acknowledgment Number: 1 (relative ack number)Acknowledgment number (raw): 30807372600101 .... = Header Length: 20 bytes (5)Flags: 0x018 (PSH, ACK)000. .... .... = Reserved: Not set...0 .... .... = Accurate ECN: Not set.... 0... .... = Congestion Window Reduced: Not set.... .0.. .... = ECN-Echo: Not set.... ..0. .... = Urgent: Not set.... ...1 .... = Acknowledgment: Set.... .... 1... = Push: Set.... .... .0.. = Reset: Not set.... .... ..0. = Syn: Not set.... .... ...0 = Fin: Not set[TCP Flags: ·······AP···]Window: 514[Calculated window size: 131584][Window size scaling factor: 256]Checksum: 0xe49e [unverified][Checksum Status: Unverified]Urgent Pointer: 0[Timestamps][Time since first frame in this TCP stream: 0.018441000 seconds][Time since previous frame in this TCP stream: 0.000353000 seconds][SEQ/ACK analysis][iRTT: 0.018088000 seconds][Bytes in flight: 757][Bytes sent since last PSH flag: 757]TCP payload (757 bytes)
这是一个TCP数据包的详细分析。以下是对各个字段的解释:
基本信息
- 源端口 (Source Port): 49697
- 发送数据包的源端口号。
- 目标端口 (Destination Port): 80
- 数据包的目的地端口号,80通常是HTTP服务的默认端口。
- 流索引 (Stream index): 15
- 用于标识在多个TCP流中的这个特定流。
- 会话完整性 (Conversation completeness): Complete, WITH_DATA (31)
- 表示这是一个完整的TCP会话,并且包含数据。
TCP标志位
- RST: Absent
- 重置标志未设置,表示这不是一个重置数据包。
- FIN: Present (但实际上在Flags字段中是Not set)
- 终止标志在Flags字段中并未设置,但在分析中提到它是Present,这可能是一个错误或误解。
- SYN: Present
- 同步标志设置,这通常用于三次握手建立连接时的第一个数据包。
- ACK: Present
- 确认标志设置,表示这是一个确认数据包。
- SYN-ACK: Present (但实际上在Flags字段中未明确提到)
- SYN-ACK是SYN和ACK标志同时设置的情况,但在这个数据包的Flags字段中,只明确提到了ACK。
- PSH: Present
- 推送标志设置,表示接收方应立即将数据递交给应用程序。
其他字段
- 序列号 (Sequence Number): 1 (relative) / 3579494717 (raw)
- 用于标识发送端发送的字节流中的字节位置。
- 确认号 (Acknowledgment Number): 1 (relative) / 3080737260 (raw)
- 接收端期望从发送端接收的下一个字节的序列号。
- 头部长度 (Header Length): 20 bytes
- TCP头部长度,以4字节为单位,所以是5个4字节单位,即20字节。
- 窗口大小 (Window): 514 (scaled)
- 用于流量控制的窗口大小,实际窗口大小可能是514乘以缩放因子(这里是256),即131584字节。
- 校验和 (Checksum): 0xe49e [unverified]
- 用于验证数据完整性的校验和值。
- 紧急指针 (Urgent Pointer): 0
- 用于标识TCP数据流中的紧急数据的位置。
时间戳
- 时间戳提供了自TCP流中第一个帧和上一个帧以来的时间信息,这有助于性能分析和网络诊断。
负载数据
- TCP payload: 757 bytes
- TCP数据包中实际传输的数据大小。
注意事项
- 在Flags字段中,SYN和FIN标志的描述与分析中提到的有出入。Flags字段明确指出了ACK和PSH标志被设置,但没有提到SYN或FIN。
- SYN-ACK通常指的是SYN和ACK标志同时设置的情况,但在Flags字段中并未直接提到。
- TCP负载大小为757字节,这通常包含应用程序的数据。
Hypertext Transfer Protocol (HTTP): 应用层的信息
这是应用层协议的一个例子。HTTP信息显示了HTTP请求或响应的详细内容,包括请求行(方法、URL、HTTP版本)、请求头部、请求体(如果有的话)等。对于其他应用层协议(如FTP、SMTP、DNS等),这里将显示相应协议的详细信息。
Hypertext Transfer ProtocolPOST /imewis/msugg?ifc=4&em=4 HTTP/1.1\r\n[Expert Info (Chat/Sequence): POST /imewis/msugg?ifc=4&em=4 HTTP/1.1\r\n][POST /imewis/msugg?ifc=4&em=4 HTTP/1.1\r\n][Severity level: Chat][Group: Sequence]Request Method: POSTRequest URI: /imewis/msugg?ifc=4&em=4Request URI Path: /imewis/msuggRequest URI Query: ifc=4&em=4Request URI Query Parameter: ifc=4Request URI Query Parameter: em=4Request Version: HTTP/1.1Host: sor.html5.qq.com\r\nUser-Agent: SogouPSI\r\nAccept: */*\r\nAccept-Encoding: gzip,deflate\r\nContent-Length: 555\r\n[Content length: 555]Content-Type: application/x-www-form-urlencoded\r\n\r\n[Full request URI: http://sor.html5.qq.com/imewis/msugg?ifc=4&em=4][HTTP request 1/1][Response in frame: 204]File Data: 555 bytes
这是一个HTTP POST请求的详细分析。以下是各个部分的解释:
请求行 (Request Line):
- 方法 (Method):
POST
- 表示这是一个向指定资源提交数据进行处理的请求。
- 请求URI (Request URI):
/imewis/msugg?ifc=4&em=4
- 请求的资源路径和查询参数。
- 路径:
/imewis/msugg
- 查询参数:
ifc=4
em=4
- 版本 (Version):
HTTP/1.1
- 使用的HTTP协议版本。
头部字段 (Header Fields):
Host
:sor.html5.qq.com
- 请求的服务器域名。
User-Agent
:SogouPSI
- 客户端的标识,这里表明可能是搜狗的某个应用或工具。
Accept
:*/*
- 客户端能够处理的内容类型,这里是任何类型。
Accept-Encoding
:gzip,deflate
- 客户端支持的编码方式,这里支持gzip和deflate压缩。
Content-Length
:555
- 请求体的长度,以字节为单位。
Content-Type
:application/x-www-form-urlencoded
- 请求体的媒体类型,这里是URL编码的表单数据。
空行 (Empty Line):
\r\n
- 表示请求头部结束,之后是请求体(如果有的话)。
请求体 (Request Body):
- 大小:
555 bytes
- 由于这里只是给出了大小,并没有具体的内容,所以我们不知道请求体实际包含了什么数据。但从
Content-Type
可以推测,这是一个URL编码的表单数据。
- 由于这里只是给出了大小,并没有具体的内容,所以我们不知道请求体实际包含了什么数据。但从
附加信息:
[Full request URI: http://sor.html5.qq.com/imewis/msugg?ifc=4&em=4]
- 完整的请求URI,包括协议和域名。
[HTTP request 1/1]
- 表示这是第1个也是唯一一个HTTP请求。
[Response in frame: 204]
- 表示响应数据在帧204中。HTTP状态码204表示服务器成功处理了请求,但不需要返回任何内容。
结论
这是一个使用HTTP/1.1协议的POST请求,向sor.html5.qq.com
服务器的/imewis/msugg
路径提交了一些数据(具体数据在请求体中,大小为555字节),并带有一些查询参数。服务器对请求的处理结果是一个没有内容体的响应(HTTP状态码204)。
相关文章:

深入解析Wireshark1:从捕获到分析,一网打尽数据包之旅
目录 1 认识 Wireshark 1.1 选择网卡界面 1.2 捕获数据包界面 1.3 常用按钮功能介绍 1.4 数据包列表信息 1.5 数据包详细信息 2 数据包案例分析 Frame: 物理层的数据帧概况 Ethernet II: 数据链路层以太网帧头部信息 Internet Protocol Version 4 (IPv4): 互联网层IP…...

C++语法|指向类成员(成员变量和成员方法)的指针及其相关应用场景
文章目录 1.基本语法指向成员变量的指针示例 指向成员函数的指针示例 注意事项 2.应用场景泛型编程和模板:通用成员访问打印函数回调机制和事件处理:基于简单GUI框架的事件处理 1.基本语法 指向类成员的指针是一种特殊的指针类型,用于指向类…...

【C语言】通讯录系统实现
目录 1、通讯录系统介绍 2、代码分装 3、代码实现步骤 3.1制作菜单函数以及游戏运行逻辑流程 3.2、封装人的信息PeoInfo以及通讯录Contact结构体类型 3.3、初始化通讯录InitContact函数 3.4、增加联系人AddContact函数 3.5、显示所有联系人ShowContact函数 3.6、删除联系人D…...

(delphi11最新学习资料) Object Pascal 学习笔记---第12章第1节 ( 类静态方法与Windows API回调)
12.1.4 类静态方法与Windows API回调 静态类方法没有隐藏的Self参数意味着静态类方法可以作为回调函数传递给操作系统(例如,在Windows上)。实际上,您可以声明一个具有stdcall调用约定的静态类方法,并将其用作直接的…...

第一个Rust程序
在安装好Rust以后,我们就可以编写程序了。 首先,我们执行下面的命令,尽量让你的rust版本和我的版本相同,或者比我的版本大。 zhangdapengzhangdapeng:~$ cargo --version cargo 1.78.0 (54d8815d0 2024-03-26) zhangdapengzhangd…...

【LInux】<基础IO> 文件操作 | 文件描述符 | 重定向
👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…...

MySQL--增、删、改、查,
数据库的概述、发展、现状、历史、分类 MySQL关系型数据库、架构(C/S) window系统安装MySQL数据库 Linux系统【选学】 数据库对象——数据库(database) show、create、drop命令 数据库对象——表(tableÿ…...

5.12学习总结
一.JAVA聊天室项目 文件发送 使用 Java Socket 实现聊天内容或文件的传输的原理如下: 服务器端启动:聊天室的服务器端在指定的端口上监听客户端的连接。它创建一个 ServerSocket 对象,并通过调用 accept() 方法等待客户端的连接请求。客户…...

ansible利用playbook 部署lamp架构
搭建参考:ansible批量运维管理-CSDN博客 定义ansible主机清单 [rootansible-server ~]# vim /etc/hosts 192.168.200.129 host01 192.168.200.130 host02 [rootansible-server ~]# vim /etc/ansible/hosts [webserver] host01 host02 在ansible端编写index.html…...

SPI通信(使用SPI读写W25Q64)
SPI通信协议 • SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 • 四根通信线: SCLK:串行时钟线,用来提供时钟信号的。 MOSI:主机输出,从机输入 MISO:从机输出,主机输入 SS:…...

<sa8650>QCX Usecase 使用详解—拓扑图 XML 定义
<sa8650>QCX Usecase 使用详解—拓扑图 XML 定义 一 、前言二、拓扑图 XML 定义2.1 <Node, port, link>2.2 < XML prolog >2.3 < UsecaseDef >2.4 < Usecase>2.5 < Targets>2.5.1 < Target>2.5.2 < Range>2.6 < Pipeline>2.…...

使用C++11实现Golang的defer功能
本文主要用C11标准来实现Golang的defer功能。 背景 目前笔者的主力语言是Golang,其次是C,再次是JS、Delphi。在Golang工程中大量使用了defer关键字实现函数的延迟调用。如打开文件的出错处理。近来在C工程中遇到类似需求,在函数返回时进行某…...

前端之电力系统SVG图低代码
其实所有的图形都是由点,线,面组成的。点线面可以组成一个设备。下面就简单讲讲点线面是怎么画的吧 对于线,可以用path <g><path:d"M ${beginX},${beginY} L ${endX},${endY}":stroke-width"lineWidth":strok…...

括号生成[中等]
优质博文:IT-BLOG-CN 一、题目 数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:["((()))","(()())","(())(…...

配置ubuntu的VNC时遇到报错_XSERVTransmkdir: Mode of /tmp/.X11-unix should be set to 1777
现在win11内嵌了ubuntu系统,我在根据打造基于 VNC 的 Ubuntu 20.04 的远程桌面 配置VNC server时,到了 vncserver :1 这一步,遇到报错: vncserver: /usr/bin/Xtigervnc did not start up, please look into /root/.vnc/xxxxx.:1.…...

openstack部署nova中出现的问题:
[rootcontroller nova]# su -s /bin/sh -c “nova-manage db sync” nova /usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u’Duplicate index block_device_mapping_instance_uuid_virtual_name_device_name_idx. This is deprecated and will be…...

【OpenCV 基础知识 3】边缘检测
文章目录 cvCanny完整示例代码 cvCanny 这行代码使用OpenCV库中的 cvCanny 函数对灰度图像进行边缘检测。让我解释一下: cvCanny(gray, dst, 10, 100, 3);gray: 这是输入的灰度图像,即要进行边缘检测的图像。dst: 这是输出的边缘图像,即将结…...

拓宽知识储备量(指数级成长)
对于增强自己的知识储备,不是什么知识都往脑袋里去塞,最好的办法就是让自己的心态回到自己初心的时候,始终保值一颗学者的心,你像那些成功人士,比如格力,华为,腾讯等这样的大公司创始人哪个不是…...

x264 帧类型代价计算原理:slicetype_mb_cost 函数分析
slicetype_mb_cost 函数 函数功能 计算每个宏块 MB 的代价 cost。函数参数分析 x264_t *h:全局编码结构体x264_mb_analysis_t *a:宏块分析结构体x264_frame_t **frames:系列帧数据结构体int p0:帧序号之一,一般指向靠前帧int p1:帧序号之一,一般指向靠后帧int b:帧标志…...

战网国际服加速器哪个好用 暴雪战网免费加速器分享
战网国际服(Battle.net International或Battle.net Global)是由暴雪娱乐公司(Blizzard Entertainment)运营的面向全球玩家的多人在线游戏平台。与专注于特定地区的版本不同,国际服允许玩家不受地域限制地访问暴雪的多款…...

Java入门基础学习笔记26——break,continue
跳转关键字: break: 跳出并结束当前所在循环的执行。 continue: 用于跳出当前循环中的当次执行,直接进入循环中的下一次执行。 package cn.ensource.loop;public class BreakContinueDemo8 {public static void main(String[] a…...

HNU-算法设计与分析-作业6
第六次作业【分支限界法】 文章目录 第六次作业【分支限界法】<1> 算法实现题6-2 最小权顶点覆盖问题<2> 算法实现题6-6 n后问题<3> 算法实现题6-7 布线问题 <1> 算法实现题6-2 最小权顶点覆盖问题 ▲问题重述 问题描述: 给定一个赋权无向…...

2D Chests Assets - Mega Pack
科幻/奇幻/经典主题的箱子和容器。AAA质量,高分辨率,VFX,源PSD文件。 这是一个带有手绘套装的大包装: -【梦幻之栗】 -【科幻钱包】 AAA质量。高分辨率。一切都已准备就绪,可供使用。包括PSD文件。 在1.1版本中添加了VFX并将项目更新为URP。请注意,新的VFX仅适用于URP/HD…...

一种基于电场连续性的高压MOSFET紧凑模型,用于精确表征电容特性
来源:A Compact Model of High-Voltage MOSFET Based on Electric Field Continuity for Accurate Characterization of Capacitance(TED 24年) 摘要 本文提出了一种新的高压MOSFET(HV MOS)紧凑模型,以消…...

vue阶段性测试题,内容丰富,案例典型,题目配有答案
阶段性测试 理论题实践题 1)理论题 请简述Vue、Node.js、Vscode是什么,以及有什么关系 1. vue是一个轻量级、比较灵活的且支持组件开发的网络框架 2. node.js是让JavaScript运行在服务器上的一直环境 3. Vscode是一款有着丰富插件的代码编辑器 4. 关系…...

如何查看PC电脑已经已经连接上的网络WiFi密码?
运行ncpa.cpl...

Java 语言的特点分析及应用
Java语言自问世以来,因其独特的设计理念和广泛的应用领域,成为了编程语言中的一颗璀璨明星。以下是对Java语言特点的详细分析及其实际应用场景,希望能帮助面试者更好地理解和掌握Java的优势。 1. 简单易学 Java的语法简单,类似于…...

Golang | Leetcode Golang题解之第84题柱状图中最大的矩形
题目: 题解: func largestRectangleArea(heights []int) int {n : len(heights)left, right : make([]int, n), make([]int, n)for i : 0; i < n; i {right[i] n}mono_stack : []int{}for i : 0; i < n; i {for len(mono_stack) > 0 &&am…...

linux实用命令
一、常用命令 mkdir -p mkdir -p 命令用于在Unix和Linux系统中创建目录。其中,-p参数确保目录名称存在,如果目录不存在的就新创建一个。换句话说,-p参数允许创建一个目录和它不存在的父目录,确保了指定的整个目录路径都会被…...

创建和管理数据库
1. 一条数据的存储过程 存储数据是处理数据的第一步.只有正确的把数据存储起来,我们才能进行有效的处理和分析.否则,只能是一团乱麻.在MySQL中,一个完整的数据存储过程一共有四步 : 创建数据库,确认字段,创建数据表&a…...