HTTP/2 协议-HPACK(HTTP2 头部压缩)原理介绍

简介: HTTP/2 协议-HPACK(HTTP2 头部压缩)原理介绍

HTTP/1 协议是一个无状态的协议,这样就导致每次请求都会传输重复的大量HTTP头部,使得HTTP/1协议的效率非常低下,HTTP/2使用HPACK(HTTP头部压缩算法)解决了这样效率低下的问题,这篇文章简单介绍一下HPACK算法原理。

1.HPACK 中的三种压缩方式

  • 静态字典
  • 动态字典
  • 压缩算法:Huffman 编码(最高压缩比 8:5


1.1 静态字典

       比如需要传递 GET 这样一个数据,只需要传递它的静态字典 index 的值 2 就可以用来表达 GET 这样的含义,在 RFC7541 文档中对静态表的定义如下:


RFC7541文档关于'静态表'描述地址:

https://httpwg.org/specs/rfc7541.html#static.table.definition

1.2 静态字典附录表

Index Header
Name
He0er
Value
1 :authority
2 :method GET
3 :method POST
4 :path /
5 :path /index.html
6 :scheme http
7 :scheme https
8 :status 200
9 :status 204
10 :status 206
11 :status 304
12 :status 400
13 :status 404
14 :status 500
15 accept-charset
16 accept-encoding gzip, deflate
17 accept-language
18 accept-ranges
19 accept
20 access-control-allow-origin
21 age
22 allow
23 authorization
24 cache-control
25 content-disposition
26 content-encoding
27 content-language
28 content-length
29 content-location
30 content-range
31 content-type
32 cookie
33 date
34 etag
35 expect
36 expires
37 from
38 host
39 if-match
40 if-modified-since
41 if-none-match
42 if-range
43 if-unmodified-since
44 last-modified
45 link
46 location
47 max-forwards
48 proxy-authenticate
49 proxy-authorization
50 range
51 referer
52 refresh
53 retry-after
54 server
55 set-cookie
56 strict-transport-security
57 transfer-encoding
58 user-agent
59 vary
60 via
61 www-authenticate



1.3 HEADER 压缩编码示意图

Tips:'Huffman'算法是一种压缩算法。


1.4 HEADER 压缩编码示意图


     动态表可以简单理解为在请求过程中映射的索引表,比如第一个请求(frame)使用静态表+Huffman算法构成的索引表(静态表+动态表)可以在下一次请求帧(frame)中只需要传递新增的内容使用 Huffman算法,不变的内容可以使用索引表中的值(和静态表类似)替代,下图使用 h2load 工具检验静态表+动态表+Huffman 压缩空间图:


2.哈夫曼(Huffman)编码原理介绍

  • 原理:出现概率较大的符号采用较短的编码,概率较小的符号采用较长的编码。
  • 静态 Huffman 编码
  • 动态 Huffman 编码

Huffman编码附录表

                                                 code

                      code as bits                 as hex   len

    sym              aligned to MSB                aligned   in

                                                   to LSB   bits

   (  0)  |11111111|11000                             1ff8  [13]

   (  1)  |11111111|11111111|1011000                7fffd8  [23]

   (  2)  |11111111|11111111|11111110|0010         fffffe2  [28]

   (  3)  |11111111|11111111|11111110|0011         fffffe3  [28]

   (  4)  |11111111|11111111|11111110|0100         fffffe4  [28]

   (  5)  |11111111|11111111|11111110|0101         fffffe5  [28]

   (  6)  |11111111|11111111|11111110|0110         fffffe6  [28]

   (  7)  |11111111|11111111|11111110|0111         fffffe7  [28]

   (  8)  |11111111|11111111|11111110|1000         fffffe8  [28]

   (  9)  |11111111|11111111|11101010               ffffea  [24]

   ( 10)  |11111111|11111111|11111111|111100      3ffffffc  [30]

   ( 11)  |11111111|11111111|11111110|1001         fffffe9  [28]

   ( 12)  |11111111|11111111|11111110|1010         fffffea  [28]

   ( 13)  |11111111|11111111|11111111|111101      3ffffffd  [30]

   ( 14)  |11111111|11111111|11111110|1011         fffffeb  [28]

   ( 15)  |11111111|11111111|11111110|1100         fffffec  [28]

   ( 16)  |11111111|11111111|11111110|1101         fffffed  [28]

   ( 17)  |11111111|11111111|11111110|1110         fffffee  [28]

   ( 18)  |11111111|11111111|11111110|1111         fffffef  [28]

   ( 19)  |11111111|11111111|11111111|0000         ffffff0  [28]

   ( 20)  |11111111|11111111|11111111|0001         ffffff1  [28]

   ( 21)  |11111111|11111111|11111111|0010         ffffff2  [28]

   ( 22)  |11111111|11111111|11111111|111110      3ffffffe  [30]

   ( 23)  |11111111|11111111|11111111|0011         ffffff3  [28]

   ( 24)  |11111111|11111111|11111111|0100         ffffff4  [28]

   ( 25)  |11111111|11111111|11111111|0101         ffffff5  [28]

   ( 26)  |11111111|11111111|11111111|0110         ffffff6  [28]

   ( 27)  |11111111|11111111|11111111|0111         ffffff7  [28]

   ( 28)  |11111111|11111111|11111111|1000         ffffff8  [28]

   ( 29)  |11111111|11111111|11111111|1001         ffffff9  [28]

   ( 30)  |11111111|11111111|11111111|1010         ffffffa  [28]

   ( 31)  |11111111|11111111|11111111|1011         ffffffb  [28]

' ' ( 32)  |010100                                       14  [ 6]

'!' ( 33)  |11111110|00                                 3f8  [10]

'"' ( 34)  |11111110|01                                 3f9  [10]

'#' ( 35)  |11111111|1010                               ffa  [12]

'$' ( 36)  |11111111|11001                             1ff9  [13]

'%' ( 37)  |010101                                       15  [ 6]

'&' ( 38)  |11111000                                     f8  [ 8]

''' ( 39)  |11111111|010                                7fa  [11]

'(' ( 40)  |11111110|10                                 3fa  [10]

')' ( 41)  |11111110|11                                 3fb  [10]

'*' ( 42)  |11111001                                     f9  [ 8]

'+' ( 43)  |11111111|011                                7fb  [11]

',' ( 44)  |11111010                                     fa  [ 8]

'-' ( 45)  |010110                                       16  [ 6]

'.' ( 46)  |010111                                       17  [ 6]

'/' ( 47)  |011000                                       18  [ 6]

'0' ( 48)  |00000                                         0  [ 5]

'1' ( 49)  |00001                                         1  [ 5]

'2' ( 50)  |00010                                         2  [ 5]

'3' ( 51)  |011001                                       19  [ 6]

'4' ( 52)  |011010                                       1a  [ 6]

'5' ( 53)  |011011                                       1b  [ 6]

'6' ( 54)  |011100                                       1c  [ 6]

'7' ( 55)  |011101                                       1d  [ 6]

'8' ( 56)  |011110                                       1e  [ 6]

'9' ( 57)  |011111                                       1f  [ 6]

':' ( 58)  |1011100                                      5c  [ 7]

';' ( 59)  |11111011                                     fb  [ 8]

'<' ( 60)  |11111111|1111100                           7ffc  [15]

'=' ( 61)  |100000                                       20  [ 6]

'>' ( 62)  |11111111|1011                               ffb  [12]

'?' ( 63)  |11111111|00                                 3fc  [10]

'@' ( 64)  |11111111|11010                             1ffa  [13]

'A' ( 65)  |100001                                       21  [ 6]

'B' ( 66)  |1011101                                      5d  [ 7]

'C' ( 67)  |1011110                                      5e  [ 7]

'D' ( 68)  |1011111                                      5f  [ 7]

'E' ( 69)  |1100000                                      60  [ 7]

'F' ( 70)  |1100001                                      61  [ 7]

'G' ( 71)  |1100010                                      62  [ 7]

'H' ( 72)  |1100011                                      63  [ 7]

'I' ( 73)  |1100100                                      64  [ 7]

'J' ( 74)  |1100101                                      65  [ 7]

'K' ( 75)  |1100110                                      66  [ 7]

'L' ( 76)  |1100111                                      67  [ 7]

'M' ( 77)  |1101000                                      68  [ 7]

'N' ( 78)  |1101001                                      69  [ 7]

'O' ( 79)  |1101010                                      6a  [ 7]

'P' ( 80)  |1101011                                      6b  [ 7]

'Q' ( 81)  |1101100                                      6c  [ 7]

'R' ( 82)  |1101101                                      6d  [ 7]

'S' ( 83)  |1101110                                      6e  [ 7]

'T' ( 84)  |1101111                                      6f  [ 7]

'U' ( 85)  |1110000                                      70  [ 7]

'V' ( 86)  |1110001                                      71  [ 7]

'W' ( 87)  |1110010                                      72  [ 7]

'X' ( 88)  |11111100                                     fc  [ 8]

'Y' ( 89)  |1110011                                      73  [ 7]

'Z' ( 90)  |11111101                                     fd  [ 8]

'[' ( 91)  |11111111|11011                             1ffb  [13]

'\' ( 92)  |11111111|11111110|000                     7fff0  [19]

']' ( 93)  |11111111|11100                             1ffc  [13]

'^' ( 94)  |11111111|111100                            3ffc  [14]

'_' ( 95)  |100010                                       22  [ 6]

'`' ( 96)  |11111111|1111101                           7ffd  [15]

'a' ( 97)  |00011                                         3  [ 5]

'b' ( 98)  |100011                                       23  [ 6]

'c' ( 99)  |00100                                         4  [ 5]

'd' (100)  |100100                                       24  [ 6]

'e' (101)  |00101                                         5  [ 5]

'f' (102)  |100101                                       25  [ 6]

'g' (103)  |100110                                       26  [ 6]

'h' (104)  |100111                                       27  [ 6]

'i' (105)  |00110                                         6  [ 5]

'j' (106)  |1110100                                      74  [ 7]

'k' (107)  |1110101                                      75  [ 7]

'l' (108)  |101000                                       28  [ 6]

'm' (109)  |101001                                       29  [ 6]

'n' (110)  |101010                                       2a  [ 6]

'o' (111)  |00111                                         7  [ 5]

'p' (112)  |101011                                       2b  [ 6]

'q' (113)  |1110110                                      76  [ 7]

'r' (114)  |101100                                       2c  [ 6]

's' (115)  |01000                                         8  [ 5]

't' (116)  |01001                                         9  [ 5]

'u' (117)  |101101                                       2d  [ 6]

'v' (118)  |1110111                                      77  [ 7]

'w' (119)  |1111000                                      78  [ 7]

'x' (120)  |1111001                                      79  [ 7]

'y' (121)  |1111010                                      7a  [ 7]

'z' (122)  |1111011                                      7b  [ 7]

'{' (123)  |11111111|1111110                           7ffe  [15]

'|' (124)  |11111111|100                                7fc  [11]

'}' (125)  |11111111|111101                            3ffd  [14]

'~' (126)  |11111111|11101                             1ffd  [13]

   (127)  |11111111|11111111|11111111|1100         ffffffc  [28]

   (128)  |11111111|11111110|0110                    fffe6  [20]

   (129)  |11111111|11111111|010010                 3fffd2  [22]

   (130)  |11111111|11111110|0111                    fffe7  [20]

   (131)  |11111111|11111110|1000                    fffe8  [20]

   (132)  |11111111|11111111|010011                 3fffd3  [22]

   (133)  |11111111|11111111|010100                 3fffd4  [22]

   (134)  |11111111|11111111|010101                 3fffd5  [22]

   (135)  |11111111|11111111|1011001                7fffd9  [23]

   (136)  |11111111|11111111|010110                 3fffd6  [22]

   (137)  |11111111|11111111|1011010                7fffda  [23]

   (138)  |11111111|11111111|1011011                7fffdb  [23]

   (139)  |11111111|11111111|1011100                7fffdc  [23]

   (140)  |11111111|11111111|1011101                7fffdd  [23]

   (141)  |11111111|11111111|1011110                7fffde  [23]

   (142)  |11111111|11111111|11101011               ffffeb  [24]

   (143)  |11111111|11111111|1011111                7fffdf  [23]

   (144)  |11111111|11111111|11101100               ffffec  [24]

   (145)  |11111111|11111111|11101101               ffffed  [24]

   (146)  |11111111|11111111|010111                 3fffd7  [22]

   (147)  |11111111|11111111|1100000                7fffe0  [23]

   (148)  |11111111|11111111|11101110               ffffee  [24]

   (149)  |11111111|11111111|1100001                7fffe1  [23]

   (150)  |11111111|11111111|1100010                7fffe2  [23]

   (151)  |11111111|11111111|1100011                7fffe3  [23]

   (152)  |11111111|11111111|1100100                7fffe4  [23]

   (153)  |11111111|11111110|11100                  1fffdc  [21]

   (154)  |11111111|11111111|011000                 3fffd8  [22]

   (155)  |11111111|11111111|1100101                7fffe5  [23]

   (156)  |11111111|11111111|011001                 3fffd9  [22]

   (157)  |11111111|11111111|1100110                7fffe6  [23]

   (158)  |11111111|11111111|1100111                7fffe7  [23]

   (159)  |11111111|11111111|11101111               ffffef  [24]

   (160)  |11111111|11111111|011010                 3fffda  [22]

   (161)  |11111111|11111110|11101                  1fffdd  [21]

   (162)  |11111111|11111110|1001                    fffe9  [20]

   (163)  |11111111|11111111|011011                 3fffdb  [22]

   (164)  |11111111|11111111|011100                 3fffdc  [22]

   (165)  |11111111|11111111|1101000                7fffe8  [23]

   (166)  |11111111|11111111|1101001                7fffe9  [23]

   (167)  |11111111|11111110|11110                  1fffde  [21]

   (168)  |11111111|11111111|1101010                7fffea  [23]

   (169)  |11111111|11111111|011101                 3fffdd  [22]

   (170)  |11111111|11111111|011110                 3fffde  [22]

   (171)  |11111111|11111111|11110000               fffff0  [24]

   (172)  |11111111|11111110|11111                  1fffdf  [21]

   (173)  |11111111|11111111|011111                 3fffdf  [22]

   (174)  |11111111|11111111|1101011                7fffeb  [23]

   (175)  |11111111|11111111|1101100                7fffec  [23]

   (176)  |11111111|11111111|00000                  1fffe0  [21]

   (177)  |11111111|11111111|00001                  1fffe1  [21]

   (178)  |11111111|11111111|100000                 3fffe0  [22]

   (179)  |11111111|11111111|00010                  1fffe2  [21]

   (180)  |11111111|11111111|1101101                7fffed  [23]

   (181)  |11111111|11111111|100001                 3fffe1  [22]

   (182)  |11111111|11111111|1101110                7fffee  [23]

   (183)  |11111111|11111111|1101111                7fffef  [23]

   (184)  |11111111|11111110|1010                    fffea  [20]

   (185)  |11111111|11111111|100010                 3fffe2  [22]

   (186)  |11111111|11111111|100011                 3fffe3  [22]

   (187)  |11111111|11111111|100100                 3fffe4  [22]

   (188)  |11111111|11111111|1110000                7ffff0  [23]

   (189)  |11111111|11111111|100101                 3fffe5  [22]

   (190)  |11111111|11111111|100110                 3fffe6  [22]

   (191)  |11111111|11111111|1110001                7ffff1  [23]

   (192)  |11111111|11111111|11111000|00           3ffffe0  [26]

   (193)  |11111111|11111111|11111000|01           3ffffe1  [26]

   (194)  |11111111|11111110|1011                    fffeb  [20]

   (195)  |11111111|11111110|001                     7fff1  [19]

   (196)  |11111111|11111111|100111                 3fffe7  [22]

   (197)  |11111111|11111111|1110010                7ffff2  [23]

   (198)  |11111111|11111111|101000                 3fffe8  [22]

   (199)  |11111111|11111111|11110110|0            1ffffec  [25]

   (200)  |11111111|11111111|11111000|10           3ffffe2  [26]

   (201)  |11111111|11111111|11111000|11           3ffffe3  [26]

   (202)  |11111111|11111111|11111001|00           3ffffe4  [26]

   (203)  |11111111|11111111|11111011|110          7ffffde  [27]

   (204)  |11111111|11111111|11111011|111          7ffffdf  [27]

   (205)  |11111111|11111111|11111001|01           3ffffe5  [26]

   (206)  |11111111|11111111|11110001               fffff1  [24]

   (207)  |11111111|11111111|11110110|1            1ffffed  [25]

   (208)  |11111111|11111110|010                     7fff2  [19]

   (209)  |11111111|11111111|00011                  1fffe3  [21]

   (210)  |11111111|11111111|11111001|10           3ffffe6  [26]

   (211)  |11111111|11111111|11111100|000          7ffffe0  [27]

   (212)  |11111111|11111111|11111100|001          7ffffe1  [27]

   (213)  |11111111|11111111|11111001|11           3ffffe7  [26]

   (214)  |11111111|11111111|11111100|010          7ffffe2  [27]

   (215)  |11111111|11111111|11110010               fffff2  [24]

   (216)  |11111111|11111111|00100                  1fffe4  [21]

   (217)  |11111111|11111111|00101                  1fffe5  [21]

   (218)  |11111111|11111111|11111010|00           3ffffe8  [26]

   (219)  |11111111|11111111|11111010|01           3ffffe9  [26]

   (220)  |11111111|11111111|11111111|1101         ffffffd  [28]

   (221)  |11111111|11111111|11111100|011          7ffffe3  [27]

   (222)  |11111111|11111111|11111100|100          7ffffe4  [27]

   (223)  |11111111|11111111|11111100|101          7ffffe5  [27]

   (224)  |11111111|11111110|1100                    fffec  [20]

   (225)  |11111111|11111111|11110011               fffff3  [24]

   (226)  |11111111|11111110|1101                    fffed  [20]

   (227)  |11111111|11111111|00110                  1fffe6  [21]

   (228)  |11111111|11111111|101001                 3fffe9  [22]

   (229)  |11111111|11111111|00111                  1fffe7  [21]

   (230)  |11111111|11111111|01000                  1fffe8  [21]

   (231)  |11111111|11111111|1110011                7ffff3  [23]

   (232)  |11111111|11111111|101010                 3fffea  [22]

   (233)  |11111111|11111111|101011                 3fffeb  [22]

   (234)  |11111111|11111111|11110111|0            1ffffee  [25]

   (235)  |11111111|11111111|11110111|1            1ffffef  [25]

   (236)  |11111111|11111111|11110100               fffff4  [24]

   (237)  |11111111|11111111|11110101               fffff5  [24]

   (238)  |11111111|11111111|11111010|10           3ffffea  [26]

   (239)  |11111111|11111111|1110100                7ffff4  [23]

   (240)  |11111111|11111111|11111010|11           3ffffeb  [26]

   (241)  |11111111|11111111|11111100|110          7ffffe6  [27]

   (242)  |11111111|11111111|11111011|00           3ffffec  [26]

   (243)  |11111111|11111111|11111011|01           3ffffed  [26]

   (244)  |11111111|11111111|11111100|111          7ffffe7  [27]

   (245)  |11111111|11111111|11111101|000          7ffffe8  [27]

   (246)  |11111111|11111111|11111101|001          7ffffe9  [27]

   (247)  |11111111|11111111|11111101|010          7ffffea  [27]

   (248)  |11111111|11111111|11111101|011          7ffffeb  [27]

   (249)  |11111111|11111111|11111111|1110         ffffffe  [28]

   (250)  |11111111|11111111|11111101|100          7ffffec  [27]

   (251)  |11111111|11111111|11111101|101          7ffffed  [27]

   (252)  |11111111|11111111|11111101|110          7ffffee  [27]

   (253)  |11111111|11111111|11111101|111          7ffffef  [27]

   (254)  |11111111|11111111|11111110|000          7fffff0  [27]

   (255)  |11111111|11111111|11111011|10           3ffffee  [26]

EOS (256)  |11111111|11111111|11111111|111111      3fffffff  [30]



RFC7541文档关于'Huffman编码'描述地址:

https://httpwg.org/specs/rfc7541.html#huffman.code

3.哈夫曼(Huffman)树的构造过程

  • (1)计算各个字母出现的概率
  • (2)将出现频率最小的两个字母相加构成子树,左小右大
  • (3)重复步骤 2,直到完成树的构造
  • (4)给树的左儿子编码为 0,右儿子编码为 1
  • (5)每个字母的编码即从根节点至所在结点中所有链接的编码

3.1 哈夫曼(Huffman)树构造举例


singwa 这六个字需要编码,各个字母出现概率如下图:

Tips:其中 `frequency` 表示出现的次数。

步骤1:将出现频率最小的字母 a(5) w(6) 构成子树,父亲节点是它们的

步骤2:继续找出现频率最小两个的字母 g(7) n(7)父亲节点是它们的

步骤3:继续找到出现频率最小的字母 i(10)将它与步骤1生成的子树合并:

步骤4:继续找到出现频率最小的字母 s(12)将它与步骤2生成的子树合并:

步骤5:将步骤3步骤4生成的子树合并:


Tips:最后形成的树,按照左儿子为0,右儿子为1 标记,如上图所示,这样就可以对每个字符编码如 a 的编码为000

3.2 对字符编码

           最终构造出的哈夫曼(Huffman)树对应的各个字符编码如下:

3.3 抓取报文简单分析

     还是以之前抓取的 sina.com.cn 首页数据为例,找到其中一个数据分析如下:

Tips:如图所示的二进制数据是根据 静态表+动态表+Huffman 得出的编码。

相关文章
|
2月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
|
4月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
538 2
|
4月前
|
应用服务中间件
HTTP协议中常见的状态码
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类,常见状态码包括:101(请求已接受)、200(请求成功)、302(重定向)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在),以及500(服务器错误)、502(网关错误)、503(服务不可用)、504(网关超时)等。
160 0
|
4月前
|
网络协议 安全 网络安全
什么是HTTP协议
HTTP协议是超文本传输协议,基于TCP,规定了客户端与服务器端通信规则,但数据以明文传输,安全性低。HTTPS则通过SSL加密保障数据安全。两者默认端口不同,HTTP为80,HTTPS为443。HTTPS安全性更高,但消耗更多服务器资源。
192 0
|
4月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
313 0
|
5月前
|
存储 网络协议 安全
HTTP 协议及会话跟踪机制详解
本文详解了 HTTP 协议的核心知识,包括其定义(超文本传输协议,基于 TCP,规定客户端与服务器通信规则)及与 HTTPS 的区别(安全性、端口、资源消耗)。 介绍了 GET 与 POST 请求的差异(参数限制、安全性、应用场景),以及 Restful 风格(通过 URL 定位资源,请求方式决定操作)。列举了常见 HTTP 状态码(如 200 成功、404 资源未找到),对比了转发与重定向的区别(服务器端一次请求 vs 客户端两次请求)。 还阐述了会话跟踪机制:Cookie 基于客户端存储,通过Set-Cookie和Cookie头实现,安全性较低;Session 基于服务端存储,依赖 C
556 1
|
4月前
|
缓存 网络协议 UED
深度解析HTTP协议从版本0.9至3.0的演进和特性。
总的来说,HTTP的演进是互联网技术不断发展和需求日益增长的结果。每一次重要更新都旨在优化性能,增进用户体验,适应新的应用场景,而且保证了向后兼容,让互联网的基础架构得以稳定发展。随着网络技术继续进步,我们可以预期HTTP协议在未来还会继续演化。
456 0
|
5月前
|
XML 安全 网络架构
深度对比SOAP与HTTP协议:详细理解它们的工作原理和差异
在设计服务和系统交云策略时,考虑到上述差异是至关重要的。SOAP适合需要高安全性、可靠性和事务支持的企业级应用。而HTTP适合Web界面浏览、RESTful服务和需要快速响应的轻量级通信。根据具体需求和上下文,开发者可以选择合适的协议以实现最优的系统性能和用户体验。
500 0
|
5月前
HTTP协议中常见的状态码 ?
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类。常见状态码包括:101(切换协议)、200(请求成功)、302(重定向)、401(未认证)、404(资源未找到)、500(服务器错误)。
448 0