メインコンテンツまでスキップ

Appendix A. Static Table (静的テーブル)

このテーブルは、2018年の実際のインターネットトラフィックを分析し、サポートされていない値や非標準の値をフィルタリングした後、最も一般的なヘッダーフィールドを含めることによって生成されました。この方法論により、最も一般的なヘッダーフィールドの一部が QPACK 静的テーブルから欠落しています。以下で説明します。

「accept-encoding」ヘッダーは、その値が各クライアントに固有である可能性が高く、エンコーダーがアプリケーションコンテキストに基づいてインデックス化する内容を選択できる場合、動的テーブルスペースがより有効に活用されるため、静的テーブルにはありません。

以下のヘッダーフィールドは、コーパスでは一般的でしたが、HTTP/3 でエントロピー符号化されているため、静的テーブルにはありません。したがって、明示的に送信されなくなりました:「:authority」、「:method」、「:path」、「:scheme」、および「:status」。

「user-agent」ヘッダーは比較的一般的で、静的テーブルの良い候補です。ただし、その値は非常に多様であるため、静的テーブルではほとんど価値を提供せず、「accept-encoding」と同様に、エンコーダーがインデックス化する内容を選択できる場合、動的テーブルスペースがより有効に活用されます。

「content-length」ヘッダーも、その値が通常各レスポンスに固有であり、静的テーブルに含めることからほとんど利益を得られないため、この静的テーブルにはありません。

QPACK 静的テーブルは、0〜98 の範囲の固定インデックスを持つ 99 のフィールド行の事前定義されたリストで構成されています。

IndexNameValue
0:authority
1:path/
2age0
3content-disposition
4content-length0
5cookie
6date
7etag
8if-modified-since
9if-none-match
10last-modified
11link
12location
13referer
14set-cookie
15:methodCONNECT
16:methodDELETE
17:methodGET
18:methodHEAD
19:methodOPTIONS
20:methodPOST
21:methodPUT
22:schemehttp
23:schemehttps
24:status103
25:status200
26:status304
27:status404
28:status503
29accept*/*
30acceptapplication/dns-message
31accept-encodinggzip, deflate, br
32accept-rangesbytes
33access-control-allow-headerscache-control
34access-control-allow-headerscontent-type
35access-control-allow-origin*
36cache-controlmax-age=0
37cache-controlmax-age=2592000
38cache-controlmax-age=604800
39cache-controlno-cache
40cache-controlno-store
41cache-controlpublic, max-age=31536000
42content-encodingbr
43content-encodinggzip
44content-typeapplication/dns-message
45content-typeapplication/javascript
46content-typeapplication/json
47content-typeapplication/x-www-form-urlencoded
48content-typeimage/gif
49content-typeimage/jpeg
50content-typeimage/png
51content-typetext/css
52content-typetext/html; charset=utf-8
53content-typetext/plain
54content-typetext/plain;charset=utf-8
55rangebytes=0-
56strict-transport-securitymax-age=31536000
57strict-transport-securitymax-age=31536000; includesubdomains
58strict-transport-securitymax-age=31536000; includesubdomains; preload
59varyaccept-encoding
60varyorigin
61x-content-type-optionsnosniff
62x-xss-protection1; mode=block
63:status100
64:status204
65:status206
66:status302
67:status400
68:status403
69:status421
70:status425
71:status500
72accept-language
73access-control-allow-credentialsFALSE
74access-control-allow-credentialsTRUE
75access-control-allow-headers*
76access-control-allow-methodsget
77access-control-allow-methodsget, post, options
78access-control-allow-methodsoptions
79access-control-expose-headerscontent-length
80access-control-request-headerscontent-type
81access-control-request-methodget
82access-control-request-methodpost
83alt-svcclear
84authorization
85content-security-policyscript-src 'none'; object-src 'none'; base-uri 'none'
86early-data1
87expect-ct
88forwarded
89if-range
90origin
91purposeprefetch
92server
93timing-allow-origin*
94upgrade-insecure-requests1
95user-agent
96x-forwarded-for
97x-frame-optionsdeny
98x-frame-optionssameorigin

表 4: 静的テーブル

フィールド名または値に表示される改行は、フォーマットの理由によるものです。