Home / Class/ QpackStaticTable Class — netty Architecture

QpackStaticTable Class — netty Architecture

Architecture documentation for the QpackStaticTable class in QpackStaticTable.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  3687ade4_986c_50be_e037_a38635c664d3["QpackStaticTable"]
  446054d0_ddfc_f502_5032_198aa7a7dbf8["QpackStaticTable.java"]
  3687ade4_986c_50be_e037_a38635c664d3 -->|defined in| 446054d0_ddfc_f502_5032_198aa7a7dbf8
  437e534a_d69e_5665_0812_65458a55b1f1["QpackHeaderField()"]
  3687ade4_986c_50be_e037_a38635c664d3 -->|method| 437e534a_d69e_5665_0812_65458a55b1f1
  81c0d369_f14a_5665_3b19_7752155510de["getIndex()"]
  3687ade4_986c_50be_e037_a38635c664d3 -->|method| 81c0d369_f14a_5665_3b19_7752155510de
  e40a6b68_f153_ac24_1ac1_4e91e6719775["findFieldIndex()"]
  3687ade4_986c_50be_e037_a38635c664d3 -->|method| e40a6b68_f153_ac24_1ac1_4e91e6719775
  fa91b2f9_ad1d_5c54_9a1a_3e2e2e9a0a5d["createMap()"]
  3687ade4_986c_50be_e037_a38635c664d3 -->|method| fa91b2f9_ad1d_5c54_9a1a_3e2e2e9a0a5d
  bcb2bbbc_282e_6506_b4fd_6227ad89386b["QpackStaticTable()"]
  3687ade4_986c_50be_e037_a38635c664d3 -->|method| bcb2bbbc_282e_6506_b4fd_6227ad89386b

Relationship Graph

Source Code

codec-http3/src/main/java/io/netty/handler/codec/http3/QpackStaticTable.java lines 25–227

final class QpackStaticTable {

    static final int NOT_FOUND = -1;

    /**
     * Special mask used to disambiguate exact pair index from
     * name only index and avoid executing lookup twice. Supposed
     * to be used internally. The value should be large enough
     * not to override bits from static table index (current size
     * of the table is 99 elements).
     */
    static final int MASK_NAME_REF = 1 << 10;

    /**
     * <a href="https://www.rfc-editor.org/rfc/rfc9204.html#name-static-table-2>Appendix A: Static Table</a>
     */
    private static final List<QpackHeaderField> STATIC_TABLE = Arrays.asList(
        newEmptyHeaderField(":authority"),
        newHeaderField(":path", "/"),
        newHeaderField("age", "0"),
        newEmptyHeaderField("content-disposition"),
        newHeaderField("content-length", "0"),
        newEmptyHeaderField("cookie"),
        newEmptyHeaderField("date"),
        newEmptyHeaderField("etag"),
        newEmptyHeaderField("if-modified-since"),
        newEmptyHeaderField("if-none-match"),
        newEmptyHeaderField("last-modified"),
        newEmptyHeaderField("link"),
        newEmptyHeaderField("location"),
        newEmptyHeaderField("referer"),
        newEmptyHeaderField("set-cookie"),
        newHeaderField(":method", "CONNECT"),
        newHeaderField(":method", "DELETE"),
        newHeaderField(":method", "GET"),
        newHeaderField(":method", "HEAD"),
        newHeaderField(":method", "OPTIONS"),
        newHeaderField(":method", "POST"),
        newHeaderField(":method", "PUT"),
        newHeaderField(":scheme", "http"),
        newHeaderField(":scheme", "https"),
        newHeaderField(":status", "103"),
        newHeaderField(":status", "200"),
        newHeaderField(":status", "304"),
        newHeaderField(":status", "404"),
        newHeaderField(":status", "503"),
        newHeaderField("accept", "*/*"),
        newHeaderField("accept", "application/dns-message"),
        newHeaderField("accept-encoding", "gzip, deflate, br"),
        newHeaderField("accept-ranges", "bytes"),
        newHeaderField("access-control-allow-headers", "cache-control"),
        newHeaderField("access-control-allow-headers", "content-type"),
        newHeaderField("access-control-allow-origin", "*"),
        newHeaderField("cache-control", "max-age=0"),
        newHeaderField("cache-control", "max-age=2592000"),
        newHeaderField("cache-control", "max-age=604800"),
        newHeaderField("cache-control", "no-cache"),
        newHeaderField("cache-control", "no-store"),
        newHeaderField("cache-control", "public, max-age=31536000"),
        newHeaderField("content-encoding", "br"),
        newHeaderField("content-encoding", "gzip"),
        newHeaderField("content-type", "application/dns-message"),
        newHeaderField("content-type", "application/javascript"),
        newHeaderField("content-type", "application/json"),
        newHeaderField("content-type", "application/x-www-form-urlencoded"),
        newHeaderField("content-type", "image/gif"),
        newHeaderField("content-type", "image/jpeg"),
        newHeaderField("content-type", "image/png"),
        newHeaderField("content-type", "text/css"),
        newHeaderField("content-type", "text/html;charset=utf-8"),
        newHeaderField("content-type", "text/plain"),
        newHeaderField("content-type", "text/plain;charset=utf-8"),
        newHeaderField("range", "bytes=0-"),
        newHeaderField("strict-transport-security", "max-age=31536000"),
        newHeaderField("strict-transport-security", "max-age=31536000;includesubdomains"),
        newHeaderField("strict-transport-security", "max-age=31536000;includesubdomains;preload"),
        newHeaderField("vary", "accept-encoding"),
        newHeaderField("vary", "origin"),
        newHeaderField("x-content-type-options", "nosniff"),
        newHeaderField("x-xss-protection", "1; mode=block"),
        newHeaderField(":status", "100"),

Frequently Asked Questions

What is the QpackStaticTable class?
QpackStaticTable is a class in the netty codebase, defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackStaticTable.java.
Where is QpackStaticTable defined?
QpackStaticTable is defined in codec-http3/src/main/java/io/netty/handler/codec/http3/QpackStaticTable.java at line 25.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free