Passa al contenuto principale

Appendice A. Tabella Statica

Questa tabella è stata generata analizzando il traffico Internet reale nel 2018 e includendo i campi di intestazione più comuni, dopo aver filtrato alcuni valori non supportati e non standard. A causa di questa metodologia, alcuni dei campi di intestazione più comuni sono assenti dalla tabella statica QPACK, come spiegato di seguito.

L'intestazione "accept-encoding" è assente dalla tabella statica perché il suo valore è probabilmente univoco per ogni client e lo spazio della tabella dinamica è meglio utilizzato se l'encoder può scegliere cosa indicizzare in base al contesto dell'applicazione.

I seguenti campi di intestazione erano comuni nel corpus ma assenti dalla tabella statica perché sono codificati per entropia in HTTP/3, quindi non vengono più trasmessi esplicitamente: ":authority", ":method", ":path", ":scheme" e ":status".

L'intestazione "user-agent" è relativamente comune e un buon candidato per la tabella statica. Tuttavia, il suo valore è così vario che fornirebbe poco valore nella tabella statica e, come con "accept-encoding", lo spazio della tabella dinamica è meglio utilizzato se l'encoder può scegliere cosa indicizzare.

L'intestazione "content-length" è anche assente da questa tabella statica perché il suo valore è solitamente univoco per ogni risposta e trarrebbe poco beneficio dall'inclusione nella tabella statica.

La tabella statica QPACK è composta da un elenco predefinito di 99 righe di campo, ciascuna con un indice fisso nell'intervallo 0-98.

IndiceNomeValore
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

Tabella 4: Tabella Statica

Qualsiasi interruzione di riga che appare in un nome o valore di campo è dovuta alla formattazione.