v / vlib / net / http / h2_hpack_static.v
73 lines · 71 sloc · 2.58 KB · c5fca67313f5184e98214e7af2b4a553e66a9b3d
Raw
1// Copyright (c) 2019-2024 Alexander Medvednikov. All rights reserved.
2// Use of this source code is governed by an MIT license
3// that can be found in the LICENSE file.
4module http
5
6// h2_hpack_static_table is the HPACK static table (RFC 7541 Appendix A).
7// HPACK indexes into it are 1-based, so entry N is at index N-1 here.
8const h2_hpack_static_table = [
9 H2HeaderField{':authority', ''},
10 H2HeaderField{':method', 'GET'},
11 H2HeaderField{':method', 'POST'},
12 H2HeaderField{':path', '/'},
13 H2HeaderField{':path', '/index.html'},
14 H2HeaderField{':scheme', 'http'},
15 H2HeaderField{':scheme', 'https'},
16 H2HeaderField{':status', '200'},
17 H2HeaderField{':status', '204'},
18 H2HeaderField{':status', '206'},
19 H2HeaderField{':status', '304'},
20 H2HeaderField{':status', '400'},
21 H2HeaderField{':status', '404'},
22 H2HeaderField{':status', '500'},
23 H2HeaderField{'accept-charset', ''},
24 H2HeaderField{'accept-encoding', 'gzip, deflate'},
25 H2HeaderField{'accept-language', ''},
26 H2HeaderField{'accept-ranges', ''},
27 H2HeaderField{'accept', ''},
28 H2HeaderField{'access-control-allow-origin', ''},
29 H2HeaderField{'age', ''},
30 H2HeaderField{'allow', ''},
31 H2HeaderField{'authorization', ''},
32 H2HeaderField{'cache-control', ''},
33 H2HeaderField{'content-disposition', ''},
34 H2HeaderField{'content-encoding', ''},
35 H2HeaderField{'content-language', ''},
36 H2HeaderField{'content-length', ''},
37 H2HeaderField{'content-location', ''},
38 H2HeaderField{'content-range', ''},
39 H2HeaderField{'content-type', ''},
40 H2HeaderField{'cookie', ''},
41 H2HeaderField{'date', ''},
42 H2HeaderField{'etag', ''},
43 H2HeaderField{'expect', ''},
44 H2HeaderField{'expires', ''},
45 H2HeaderField{'from', ''},
46 H2HeaderField{'host', ''},
47 H2HeaderField{'if-match', ''},
48 H2HeaderField{'if-modified-since', ''},
49 H2HeaderField{'if-none-match', ''},
50 H2HeaderField{'if-range', ''},
51 H2HeaderField{'if-unmodified-since', ''},
52 H2HeaderField{'last-modified', ''},
53 H2HeaderField{'link', ''},
54 H2HeaderField{'location', ''},
55 H2HeaderField{'max-forwards', ''},
56 H2HeaderField{'proxy-authenticate', ''},
57 H2HeaderField{'proxy-authorization', ''},
58 H2HeaderField{'range', ''},
59 H2HeaderField{'referer', ''},
60 H2HeaderField{'refresh', ''},
61 H2HeaderField{'retry-after', ''},
62 H2HeaderField{'server', ''},
63 H2HeaderField{'set-cookie', ''},
64 H2HeaderField{'strict-transport-security', ''},
65 H2HeaderField{'transfer-encoding', ''},
66 H2HeaderField{'user-agent', ''},
67 H2HeaderField{'vary', ''},
68 H2HeaderField{'via', ''},
69 H2HeaderField{'www-authenticate', ''},
70]!
71
72// h2_hpack_static_len is the number of entries in the HPACK static table.
73const h2_hpack_static_len = h2_hpack_static_table.len
74