深入解析Wireshark1:从捕获到分析,一网打尽数据包之旅

news2024/11/23 22:05:36

目录

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.coloradmin.cn/o/1680789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】图形用户界面设计

1、设计并编写一个窗口程序,该窗口只有一个按钮,当用户单击时可在后台输出hello world. import tkinter as tk def on_button_click():print("hello world") # 创建主窗口 root tk.Tk() root.title("Hello World Button") # 设置窗口大小 root.geometry…

2005-2022年全国及各省绿色信贷水平测算数据(含原始数据+计算过程+计算结果)

2005-2022年全国及各省绿色信贷水平测算数据(含原始数据计算过程计算结果) 1、时间:2005-2022年 2、来源:工业统计年鉴、统计年鉴、其中2017年采用插值法填补 3、范围:31省 4、方法说明:选取各省六大高…

每日一题13:Pandas:方法链

一、每日一题 ;:: 解答: import pandas as pddef findHeavyAnimals(animals: pd.DataFrame) -> pd.DataFrame:heavy_animals animals[animals[weight] > 100].sort_values(byweight, ascendingFalse)result heavy_anim…

代码随想录--链表--反转链表

题目 题意:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 如果再定义一个新的链表,实现链表元素的反转,其实这是对内存空间的浪费。 其实只需要改变链表的next指针的…

Java项目:基于ssm框架实现的家政服务网站管理系统分前后台(B/S架构+源码+数据库+毕业论文+答辩PPT)

一、项目简介 本项目是一套基于ssm框架实现的家政服务网站管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 二、技术实现 jdk版本:1.…

Qt+C++串口调试工具

程序示例精选 QtC串口调试工具 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《QtC串口调试工具》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。 …

JWT生成token工具类实现

JWT简介 JWT定义 JWT全称为Json web token,也就是 Json 格式的 web token JWT数据结构 1.JWT由三段字符串组成,中间用.分隔 Project_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNzE2MzcwMTM0LCJpYXQiOjE3MTU3NjUzMzQsImp0aSI6IjllO…

关于DOCKER启动后如何添加新的端口映射

前段时间在用docker部署服务的时候发现,容器已经启动,但是需要新的端口映射(即容器在启动的时候只进行了部分的端口映射),经过查询资料后发现现在网上有2种方法,一中是修改json文件。另一种是将已经运行的容…

QT:QML中读取文件(QDesktopServices和QFile)

目录 一.介绍 二.QDesktopServices: 1.添加头文件 2.声明函数 3.操作 4.注册 5.qml调用 三.QFile: 1.添加头文件 2.声明函数 3.读取指定文件名的文件内容 4.注册 5.qml中调用 四.效果展示: 1.QDesktopServices:上方按钮点击打开…

纯血鸿蒙APP实战开发——Web获取相机拍照图片案例

介绍 本示例介绍如何在HTML页面中拉起原生相机进行拍照,并获取返回的图片。 效果预览图 使用说明 点击HTML页面中的选择文件按钮,拉起原生相机进行拍照。完成拍照后,将图片在HTML的img标签中显示。 实现思路 添加Web组件,设置…

一看就会的AOP事务

文章目录 AOPAOP简介AOP简介和作用AOP的应用场景为什么要学习AOP AOP入门案例思路分析代码实现AOP中的核心概念 AOP工作流程AOP工作流程AOP核心概念在测试类中验证代理对象 AOP切入点表达式语法格式通配符书写技巧 AOP通知类型AOP通知分类AOP通知详解 AOP案例案例-测量业务层接…

太极图形学——高级数据结构——稠密

太极是一个面向数据的编程语言 在并行计算的框架下,在计算上花费的时间反而是少数,大量的时间都花在了数据获取(也就是访问内存)上面,这一点在之前的games103课程上也有简单的提及 cpu的计算能力非常强大&#xff0c…

Qwen学习笔记3:Qwen模型调用外部API实现模型增强(openai的形式)

前言 本文记录了使用本地部署的Qwen模型,调用外部API实现模型的功能增强,非常的易用,大家用于开发自己的应用,只需要作简单的修改就可以进行使用了。 本文的代码来源视频教程: Qwen大模型变强了,通过API…

【SQL】SQL常见面试题总结(2)

目录 1、增删改操作1.1、插入记录(一)1.2、插入记录(二)1.3、插入记录(三)1.4、更新记录(一)1.5、更新记录(二)1.6、删除记录(一)1.7、…

【文末附gpt升级方案】腾讯混元文生图大模型开源:中文原生Sora同款DiT架构引领新潮流

在人工智能与计算机视觉技术迅猛发展的今天,腾讯再次引领行业潮流,宣布其旗下的混元文生图大模型全面升级并对外开源。这次开源的模型不仅具备强大的文生图能力,更采用了业内首个中文原生的Sora同款DiT架构,为中文世界的视觉生成领…

NodeJS V8引擎内存和垃圾回收器

关于max_old_space_size max_old_space_size参数用于指定V8引擎的老生代内存的最大大小。通过增加max_old_space_size参数的值,我们可以提供更多的内存给V8引擎,从而提高应用程序的性能和稳定性。 既然提到了老生代,就不得不提下什么是垃圾&…

IDEA 每次启动都显示选择项目页面

IDEA版本:2021.3.3 打开 Settings > Appearance & Behavior > System Settings 取消勾选 Reopen projects on startup 然后下次启动 IDEA 会显示选择项目页面

论文阅读 - Anatomy of an AI-powered malicious social botnet

论文链接: https://arxiv.org/pdf/2307.16336.pdf 目录 摘要 1引言 2 相关工作 2.1 LLM驱动的网络威胁 2.2 LLM生成的内容检测 2.3 社交机器人检测 2.4 由 LLM 增强的机器人 3 Fox8僵尸网络的识别 4 特性 4.1 配置文件 4.2 社交网络 4.3内容类型 4.4放…

全新多语言海外抢单刷单系统源码 订单自动匹配 支持分组 代理后台

安装教程 测试环境:Nginx PHP7.0 MySQL5.6 config/database 修改数据库 设置运行目录public 伪静态thinkphp 后台登录地址:/admin 账号admin 密码admin123 前端出现报错 删除runtime文件夹得缓存文件即可 源码免费下载地址抄笔记 (chaobiji.cn)

数据结构——冒泡排序

懒猫老师-数据结构-(63)冒泡排序(起泡排序)_哔哩哔哩_bilibili 交换排序的一类 基本思想 两两比较相邻记录的关键码,如果反序则交换,直到没有反序的记录为止。 过程 有序区不断扩大,无序区不断减小