Aller au contenu principal

Annexe A. Table Statique

Cette table a été générée en analysant le trafic Internet réel en 2018 et en incluant les champs d'en-tête les plus courants, après avoir filtré certaines valeurs non prises en charge et non standard. En raison de cette méthodologie, certains des champs d'en-tête les plus courants sont absents de la table statique QPACK, comme expliqué ci-dessous.

L'en-tête "accept-encoding" est absent de la table statique car sa valeur est susceptible d'être unique à chaque client et l'espace de table dynamique est mieux utilisé si l'encodeur peut choisir quoi indexer en fonction du contexte d'application.

Les champs d'en-tête suivants étaient courants dans le corpus mais absents de la table statique car ils sont codés par entropie dans HTTP/3, ils ne sont donc plus transmis explicitement : ":authority", ":method", ":path", ":scheme" et ":status".

L'en-tête "user-agent" est relativement courant et un bon candidat pour la table statique. Cependant, sa valeur est si variée qu'elle fournirait peu de valeur dans la table statique, et comme avec "accept-encoding", l'espace de table dynamique est mieux utilisé si l'encodeur peut choisir quoi indexer.

L'en-tête "content-length" est également absent de cette table statique car sa valeur est généralement unique à chaque réponse et elle bénéficierait peu de l'inclusion dans la table statique.

La table statique QPACK se compose d'une liste prédéfinie de 99 lignes de champs, chacune avec un index fixe sur la plage 0-98.

IndexNomValeur
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

Tableau 4 : Table Statique

Toute nouvelle ligne apparaissant dans un nom ou une valeur de champ est due au formatage.