| 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. |
| 4 | module 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. |
| 8 | const 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. |
| 73 | const h2_hpack_static_len = h2_hpack_static_table.len |
| 74 | |