深入解析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 0
    Section number: 1
    Interface id: 0 (\Device\NPF_{ED2A4B3D-3280-43B2-A708-2837AEAA6158})
        Interface name: \Device\NPF_{ED2A4B3D-3280-43B2-A708-2837AEAA6158}
        Interface description: WLAN
    Encapsulation type: Ethernet (1)
    Arrival Time: May 15, 2024 22:55:33.021476000 中国标准时间
    UTC Arrival Time: May 15, 2024 14:55:33.021476000 UTC
    Epoch 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: 148
    Frame 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地址通常用于标识网络中的物理设备。
    • Addressdc: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),意味着数据包是发送给单个接收者的。

源地址(Source)

  • Intel_e5:4a:f2 (58:1c:f8:e5:4a:f2):这是数据包的源MAC地址,表示发送数据包的设备的物理地址。
    • Address58:1c:f8:e5:4a:f2 是发送设备的MAC地址。
    • LG bit: 与目标地址相同,这个比特设置为0,表示这是一个全局唯一地址。
    • IG bit: 同样地,这个比特设置为0,表示数据包是单播的。

类型字段(Type)

  • IPv4 (0x0800):这表示在以太网帧的载荷中封装的是IPv4数据包。类型字段用于指示以太网帧载荷中携带的上层协议类型。在这种情况下,它是IPv4协议,其十六进制表示形式为0x0800

结论

  1. 数据包是从一个具有MAC地址58:1c:f8:e5:4a:f2的设备发送到具有MAC地址dc:7c:f7:86:63:69的设备的。
  2. 这两个MAC地址都是全局唯一地址,并且都是单播地址。
  3. 数据包中封装的是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.70
    0100 .... = 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: 797
    Identification: 0xb0ff (45311)
    010. .... = Flags: 0x2, Don't fragment
        0... .... = Reserved bit: Not set
        .1.. .... = Don't fragment: Set
        ..0. .... = More fragments: Not set
    ...0 0000 0000 0000 = Fragment Offset: 0
    Time to Live: 64
    Protocol: TCP (6)
    Header Checksum: 0x0000 [validation disabled]
    [Header checksum status: Unverified]
    Source Address: 192.168.1.5
    Destination 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.536.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: 757
    Source Port: 49697
    Destination 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): 3080737260
    0101 .... = 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 Protocol
    POST /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: POST
        Request URI: /imewis/msugg?ifc=4&em=4
            Request URI Path: /imewis/msugg
            Request URI Query: ifc=4&em=4
                Request URI Query Parameter: ifc=4
                Request URI Query Parameter: em=4
        Request Version: HTTP/1.1
    Host: sor.html5.qq.com\r\n
    User-Agent: SogouPSI\r\n
    Accept: */*\r\n
    Accept-Encoding: gzip,deflate\r\n
    Content-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):

  • Hostsor.html5.qq.com
    • 请求的服务器域名。
  • User-AgentSogouPSI
    • 客户端的标识,这里表明可能是搜狗的某个应用或工具。
  • Accept*/*
    • 客户端能够处理的内容类型,这里是任何类型。
  • Accept-Encodinggzip,deflate
    • 客户端支持的编码方式,这里支持gzip和deflate压缩。
  • Content-Length555
    • 请求体的长度,以字节为单位。
  • Content-Typeapplication/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)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/631143.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

定档 11.2-3,COSCon'24 第九届中国开源年会暨开源社十周年嘉年华正式启动!

中国开源年会 COSCon 是业界最具影响力的开源盛会之一,由开源社在2015年首次发起,今年将举办第九届。 以其独特定位及日益增加的影响力,COSCon 吸引了越来越多的国内外企业、高校、开源组织/社区的大力支持。与一般企业、IT 媒体、行业协会举…

2024生日快乐祝福HTML源码

源码介绍 2024生日快乐祝福HTML源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面, 源码截图 源码下载 2024生日快乐祝福HTML源码

【阿里云】云服务器ECS运行node服务

本文介绍如何在(CentOS 7.9 64位)操作系统的ECS实例上,安装Node.js并部署测试项目。 使用工具:FinalShell4.3.10 目录 步骤一:部署Node.js环境 1.远程连接已创建的ECS实例。 2.部署Node.js环境。 a.安装分布式版本管…

Unity射击游戏开发教程:(18)添加弹药计数+补充弹药

添加简单的弹药计数 我将讨论如何向游戏中添加简单的弹药计数。这将包括在 HUD 中添加弹药计数器,当弹药达到 0 时,文本会将颜色更改为红色以提醒玩家。另外,当弹药数为0时,玩家将无法再射击。让我们深入了解吧! 在播放器脚本中我们需要添加一些变量。我们将创建两个公共整…

【智能算法】清道夫优化算法(CFO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,W Zhang受到清道夫自然行为启发,提出了清道夫优化算法(Cleaner Fish Optimization Algorithm, CFO)。 2.算法原理 2.1算法思想 CF…

线性系统(一)

线性系统(一) 1.什么是线性系统2.高斯消元法3.高斯-约旦消元法4.线性方程组解的结构 链接: 线性系统(二) 1.什么是线性系统 线性:未知数只能是一次方项 非线性: 同时,读者也可以通过作图来更直观地感受&…

【保姆级】生成式网络模型基础知识(图像合成/语音合成/GPT)

生成式模型基础知识 初步接触生成任务 生成任务,顾名思义就是要去生成一个东西,比如生成图片/音频/文字等等。 大家接触最多比如chatGPT、stable diffusion、还有一些语音合成相关的东西。 那么问题来了,具体生成步骤是什么样的&#xff…

iOS plist文件增删改查

一. plist简介 plist文件,即属性列表文件,全名是Property List,这种文件的扩展名为.plist,因此,通常被叫做plist文件。它是一种用来存储串行化后的对象的文件,在iOS开发中通常用来存储用户设置&#xff0c…

【leetcode面试经典150题】-26. 删除有序数组中的重复项

26. 删除有序数组中的重复项 1 题目介绍1 个人解题思路1.1 解题代码1.2 思路解析 2、分析官方题解2.1 快慢双指针 1 题目介绍 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新…

Google:站长移除无效网址

当您的网址不需要呈现在Google站长中时,您可以在站长工具中移除网址 操作步骤:登录Google站长,绑定网站完成后,点击左侧删除 >> 输入网址 如果遇到一些网址,可以找寻网址间的规律,比如说&#xff0…

幻兽帕鲁Palworld服务器手动+docker部署方法+备份迁移

目录 帕鲁部署官方文档帕鲁手动安装法手动安装steamcmd通过steamcmd安装帕鲁后端 docker容器一键部署幻兽帕鲁绿联云NAS机器部署幻兽帕鲁客户端连接附录1:PalServer.sh的启动项附录2:配置文件游戏存档保存和迁移 关于阿里云计算巢 帕鲁部署官方文档 htt…

TikTok Shop认知课 打通TK小店全流程

资料 001-先导课.mp4 002-如何用思维导图工具做课程笔记.mp4 003-TTS入驻模式.mp4 004-如何获取店铺.mp4 005-TTS店铺注册全流程,mp4 006-店铺整体运营思路.mp4 007-运营的几个误区.mp4 008-新店起店准备工作,mp4 009-规店铺风控注意事项,mp4 010-店铺基础设置之店铺…

SpringCloudAlibaba5.2sentinel配置流控

概述 简介 监控应用流量的QPS或并发线程数,当达到指定的阈值时对流量进行控制 规则 1.资源名:请求路径 2.针对来源:配置该规则微服务,一般填写调用方的微服务名称,多个用","分割 3.阈值类型:二…

C++ | Leetcode C++题解之第92题反转链表II

题目: 题解: class Solution { public:ListNode *reverseBetween(ListNode *head, int left, int right) {// 设置 dummyNode 是这一类问题的一般做法ListNode *dummyNode new ListNode(-1);dummyNode->next head;ListNode *pre dummyNode;for (i…

24HN逆向部分wp

24H&N逆向部分wp 菜鸡新手师傅wp,Re 5/9,记录一下qaq(好久没写博客了,水一篇hh) 最喜欢的逆向题 64位,进主函数之后直接看,要求输入第5位为i,然后后面依次相等,长…

springboot005学生心理咨询评估系统

springboot005学生心理咨询评估系统 亲测完美运行带论文:获取源码,私信评论或者v:niliuapp 运行视频 包含的文件列表(含论文) 数据库脚本:db.sql其他文件:ppt.ppt论文:开题.doc论文&#xf…

WebRTC实时音视频通话之语音通话设计与实践

一、背景 在移动互联网流量时代,很多业务场景都有音视频通信的需求,比如IM场景,除了文字交流还需要音视频通话进行实时交互。为了帮助58、赶集、安居客等业务线更好的为用户提供服务,节约沟通成本,提升效率&#xff0…

月薪3万,沉迷“薅羊毛”

在网购江湖中,蟹老板是一位拥有十年经验的资深“羊毛党”。 他不仅是位精明的数学家,更是一位高效的“生产线”工人,专注于各大网购平台的优惠机制。每逢618大促,他总能凭借超凡的洞察力和手速,轻松斩获丰厚的“羊毛”…

C语言 | Leetcode C语言题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; int numDecodings(char* s) {int n strlen(s);// a f[i-2], b f[i-1], c f[i]int a 0, b 1, c;for (int i 1; i < n; i) {c 0;if (s[i - 1] ! 0) {c b;}if (i > 1 && s[i - 2] ! 0 && ((s[i - 2] - 0) * 10…

Ubuntu22 下配置 Qt5 环境

1. Qt 简介 Qt5 中的新功能&#xff0c;可以看到各个版本的情况Whats New in Qt 5 | Qt 5.15 Qt 源文件网址Index of /archive/qt 2. 安装 Qt Creator cd 到安装包所在目录&#xff0c;进行软件安装。赋予可执行权限&#xff0c;加上 sudo 权限进入安装&#xff0c;这样会安…