Home / Class/ HpackStaticTable Class — netty Architecture

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));
    }

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