HpackStaticTable Class — netty Architecture
Architecture documentation for the HpackStaticTable class in HpackStaticTable.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 91d93899_a88f_0dfd_4a8f_513779e69441["HpackStaticTable"] d2e53ae8_281d_40e6_0b50_921d36bf566d["HpackStaticTable.java"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|defined in| d2e53ae8_281d_40e6_0b50_921d36bf566d aba80a85_35a5_73b8_7591_7c45e83f01b8["HpackHeaderField()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| aba80a85_35a5_73b8_7591_7c45e83f01b8 81a3407a_0974_8773_5632_2f3b69b8ff0d["getIndex()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| 81a3407a_0974_8773_5632_2f3b69b8ff0d cd3fdae1_cab1_fb99_e265_e31a1abdc0ce["getIndexInsensitive()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| cd3fdae1_cab1_fb99_e265_e31a1abdc0ce b228ad81_5997_7059_9679_15709a9d369b["HeaderNameIndex()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| b228ad81_5997_7059_9679_15709a9d369b cfaabf0d_cd73_1f85_5a69_c6f4a07554e4["headerNameBucket()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| cfaabf0d_cd73_1f85_5a69_c6f4a07554e4 dc8e3a71_b5f2_9f33_c378_bcda1c8ff70b["headerBucket()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| dc8e3a71_b5f2_9f33_c378_bcda1c8ff70b d67752bb_0811_252f_6036_ae77dd24095a["bucket()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| d67752bb_0811_252f_6036_ae77dd24095a 63663dbb_8365_cf12_654b_a6c3eaf8e975["HpackStaticTable()"] 91d93899_a88f_0dfd_4a8f_513779e69441 -->|method| 63663dbb_8365_cf12_654b_a6c3eaf8e975
Relationship Graph
Source Code
codec-http2/src/main/java/io/netty/handler/codec/http2/HpackStaticTable.java lines 46–281
final class HpackStaticTable {
static final int NOT_FOUND = -1;
// Appendix A: Static Table
// https://tools.ietf.org/html/rfc7541#appendix-A
private static final List<HpackHeaderField> STATIC_TABLE = Arrays.asList(
/* 1 */ newEmptyPseudoHeaderField(PseudoHeaderName.AUTHORITY),
/* 2 */ newPseudoHeaderMethodField(HttpMethod.GET),
/* 3 */ newPseudoHeaderMethodField(HttpMethod.POST),
/* 4 */ newPseudoHeaderField(PseudoHeaderName.PATH, "/"),
/* 5 */ newPseudoHeaderField(PseudoHeaderName.PATH, "/index.html"),
/* 6 */ newPseudoHeaderField(PseudoHeaderName.SCHEME, "http"),
/* 7 */ newPseudoHeaderField(PseudoHeaderName.SCHEME, "https"),
/* 8 */ newPseudoHeaderField(PseudoHeaderName.STATUS, HttpResponseStatus.OK.codeAsText()),
/* 9 */ newPseudoHeaderField(PseudoHeaderName.STATUS, HttpResponseStatus.NO_CONTENT.codeAsText()),
/* 10 */ newPseudoHeaderField(PseudoHeaderName.STATUS, HttpResponseStatus.PARTIAL_CONTENT.codeAsText()),
/* 11 */ newPseudoHeaderField(PseudoHeaderName.STATUS, HttpResponseStatus.NOT_MODIFIED.codeAsText()),
/* 12 */ newPseudoHeaderField(PseudoHeaderName.STATUS, HttpResponseStatus.BAD_REQUEST.codeAsText()),
/* 13 */ newPseudoHeaderField(PseudoHeaderName.STATUS, HttpResponseStatus.NOT_FOUND.codeAsText()),
/* 14 */ newPseudoHeaderField(PseudoHeaderName.STATUS, HttpResponseStatus.INTERNAL_SERVER_ERROR.codeAsText()),
/* 15 */ newEmptyHeaderField(HttpHeaderNames.ACCEPT_CHARSET),
/* 16 */ newHeaderField(HttpHeaderNames.ACCEPT_ENCODING, "gzip, deflate"),
/* 17 */ newEmptyHeaderField(HttpHeaderNames.ACCEPT_LANGUAGE),
/* 18 */ newEmptyHeaderField(HttpHeaderNames.ACCEPT_RANGES),
/* 19 */ newEmptyHeaderField(HttpHeaderNames.ACCEPT),
/* 20 */ newEmptyHeaderField(HttpHeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN),
/* 21 */ newEmptyHeaderField(HttpHeaderNames.AGE),
/* 22 */ newEmptyHeaderField(HttpHeaderNames.ALLOW),
/* 23 */ newEmptyHeaderField(HttpHeaderNames.AUTHORIZATION),
/* 24 */ newEmptyHeaderField(HttpHeaderNames.CACHE_CONTROL),
/* 25 */ newEmptyHeaderField(HttpHeaderNames.CONTENT_DISPOSITION),
/* 26 */ newEmptyHeaderField(HttpHeaderNames.CONTENT_ENCODING),
/* 27 */ newEmptyHeaderField(HttpHeaderNames.CONTENT_LANGUAGE),
/* 28 */ newEmptyHeaderField(HttpHeaderNames.CONTENT_LENGTH),
/* 29 */ newEmptyHeaderField(HttpHeaderNames.CONTENT_LOCATION),
/* 30 */ newEmptyHeaderField(HttpHeaderNames.CONTENT_RANGE),
/* 31 */ newEmptyHeaderField(HttpHeaderNames.CONTENT_TYPE),
/* 32 */ newEmptyHeaderField(HttpHeaderNames.COOKIE),
/* 33 */ newEmptyHeaderField(HttpHeaderNames.DATE),
/* 34 */ newEmptyHeaderField(HttpHeaderNames.ETAG),
/* 35 */ newEmptyHeaderField(HttpHeaderNames.EXPECT),
/* 36 */ newEmptyHeaderField(HttpHeaderNames.EXPIRES),
/* 37 */ newEmptyHeaderField(HttpHeaderNames.FROM),
/* 38 */ newEmptyHeaderField(HttpHeaderNames.HOST),
/* 39 */ newEmptyHeaderField(HttpHeaderNames.IF_MATCH),
/* 40 */ newEmptyHeaderField(HttpHeaderNames.IF_MODIFIED_SINCE),
/* 41 */ newEmptyHeaderField(HttpHeaderNames.IF_NONE_MATCH),
/* 42 */ newEmptyHeaderField(HttpHeaderNames.IF_RANGE),
/* 43 */ newEmptyHeaderField(HttpHeaderNames.IF_UNMODIFIED_SINCE),
/* 44 */ newEmptyHeaderField(HttpHeaderNames.LAST_MODIFIED),
/* 45 */ newEmptyHeaderField("link"),
/* 46 */ newEmptyHeaderField(HttpHeaderNames.LOCATION),
/* 47 */ newEmptyHeaderField(HttpHeaderNames.MAX_FORWARDS),
/* 48 */ newEmptyHeaderField(HttpHeaderNames.PROXY_AUTHENTICATE),
/* 49 */ newEmptyHeaderField(HttpHeaderNames.PROXY_AUTHORIZATION),
/* 50 */ newEmptyHeaderField(HttpHeaderNames.RANGE),
/* 51 */ newEmptyHeaderField(HttpHeaderNames.REFERER),
/* 52 */ newEmptyHeaderField("refresh"),
/* 53 */ newEmptyHeaderField(HttpHeaderNames.RETRY_AFTER),
/* 54 */ newEmptyHeaderField(HttpHeaderNames.SERVER),
/* 55 */ newEmptyHeaderField(HttpHeaderNames.SET_COOKIE),
/* 56 */ newEmptyHeaderField("strict-transport-security"),
/* 57 */ newEmptyHeaderField(HttpHeaderNames.TRANSFER_ENCODING),
/* 58 */ newEmptyHeaderField(HttpHeaderNames.USER_AGENT),
/* 59 */ newEmptyHeaderField(HttpHeaderNames.VARY),
/* 60 */ newEmptyHeaderField(HttpHeaderNames.VIA),
/* 61 */ newEmptyHeaderField(HttpHeaderNames.WWW_AUTHENTICATE)
);
private static HpackHeaderField newEmptyHeaderField(AsciiString name) {
return new HpackHeaderField(name, AsciiString.EMPTY_STRING);
}
private static HpackHeaderField newEmptyHeaderField(String name) {
return new HpackHeaderField(AsciiString.cached(name), AsciiString.EMPTY_STRING);
}
private static HpackHeaderField newHeaderField(AsciiString name, String value) {
return new HpackHeaderField(name, AsciiString.cached(value));
}
Source
Frequently Asked Questions
What is the HpackStaticTable class?
HpackStaticTable is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HpackStaticTable.java.
Where is HpackStaticTable defined?
HpackStaticTable is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/HpackStaticTable.java at line 46.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free