You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ma...@apache.org on 2019/01/24 02:54:51 UTC

[trafficserver] branch quic-latest updated: Update QPACK Static Table

This is an automated email from the ASF dual-hosted git repository.

masaori pushed a commit to branch quic-latest
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/quic-latest by this push:
     new 866fe92  Update QPACK Static Table
866fe92 is described below

commit 866fe9298e02ee8f644133d1cea119c4d69c6ae4
Author: Masaori Koshiba <ma...@apache.org>
AuthorDate: Thu Jan 24 11:54:31 2019 +0900

    Update QPACK Static Table
---
 proxy/http3/QPACK.cc | 163 +++++++++++++++++++++++++++++++--------------------
 1 file changed, 101 insertions(+), 62 deletions(-)

diff --git a/proxy/http3/QPACK.cc b/proxy/http3/QPACK.cc
index 9417408..9fa397b 100644
--- a/proxy/http3/QPACK.cc
+++ b/proxy/http3/QPACK.cc
@@ -30,68 +30,107 @@
 #define QPACKDebug(fmt, ...) Debug("qpack", "[%s] " fmt, this->_qc->cids().data(), ##__VA_ARGS__)
 #define QPACKDTDebug(fmt, ...) Debug("qpack", "" fmt, ##__VA_ARGS__)
 
-const QPACK::Header QPACK::StaticTable::STATIC_HEADER_FIELDS[] = {{"", ""}, // Index 0 is invalid
-                                                                  {":authority", ""},
-                                                                  {":method", "GET"},
-                                                                  {":method", "POST"},
-                                                                  {":path", "/"},
-                                                                  {":path", "/index.html"},
-                                                                  {":scheme", "http"},
-                                                                  {":scheme", "https"},
-                                                                  {":status", "200"},
-                                                                  {":status", "204"},
-                                                                  {":status", "206"},
-                                                                  {":status", "304"},
-                                                                  {":status", "400"},
-                                                                  {":status", "404"},
-                                                                  {":status", "500"},
-                                                                  {"accept-charset", ""},
-                                                                  {"accept-encoding", "gzip, deflate"},
-                                                                  {"accept-language", ""},
-                                                                  {"accept-ranges", ""},
-                                                                  {"accept", ""},
-                                                                  {"access-control-allow-origin", ""},
-                                                                  {"age", ""},
-                                                                  {"allow", ""},
-                                                                  {"authorization", ""},
-                                                                  {"cache-control", ""},
-                                                                  {"content-disposition", ""},
-                                                                  {"content-encoding", ""},
-                                                                  {"content-language", ""},
-                                                                  {"content-length", ""},
-                                                                  {"content-location", ""},
-                                                                  {"content-range", ""},
-                                                                  {"content-type", ""},
-                                                                  {"cookie", ""},
-                                                                  {"date", ""},
-                                                                  {"etag", ""},
-                                                                  {"expect", ""},
-                                                                  {"expires", ""},
-                                                                  {"from", ""},
-                                                                  {"host", ""},
-                                                                  {"if-match", ""},
-                                                                  {"if-modified-since", ""},
-                                                                  {"if-none-match", ""},
-                                                                  {"if-range", ""},
-                                                                  {"if-unmodified-since", ""},
-                                                                  {"last-modified", ""},
-                                                                  {"link", ""},
-                                                                  {"location", ""},
-                                                                  {"max-forwards", ""},
-                                                                  {"proxy-authenticate", ""},
-                                                                  {"proxy-authorization", ""},
-                                                                  {"range", ""},
-                                                                  {"referer", ""},
-                                                                  {"refresh", ""},
-                                                                  {"retry-after", ""},
-                                                                  {"server", ""},
-                                                                  {"set-cookie", ""},
-                                                                  {"strict-transport-security", ""},
-                                                                  {"transfer-encoding", ""},
-                                                                  {"user-agent", ""},
-                                                                  {"vary", ""},
-                                                                  {"via", ""},
-                                                                  {"www-authenticate", ""}};
+// qpack-05 Appendix A.
+const QPACK::Header QPACK::StaticTable::STATIC_HEADER_FIELDS[] = {
+  {":authority", ""},
+  {":path", "/"},
+  {"age", "0"},
+  {"content-disposition", ""},
+  {"content-length", "0"},
+  {"cookie", ""},
+  {"date", ""},
+  {"etag", ""},
+  {"if-modified-since", ""},
+  {"if-none-match", ""},
+  {"last-modified", ""},
+  {"link", ""},
+  {"location", ""},
+  {"referer", ""},
+  {"set-cookie", ""},
+  {":method", "CONNECT"},
+  {":method", "DELETE"},
+  {":method", "GET"},
+  {":method", "HEAD"},
+  {":method", "OPTIONS"},
+  {":method", "POST"},
+  {":method", "PUT"},
+  {":scheme", "http"},
+  {":scheme", "https"},
+  {":status", "103"},
+  {":status", "200"},
+  {":status", "304"},
+  {":status", "404"},
+  {":status", "503"},
+  {"accept", "*/*"},
+  {"accept", "application/dns-message"},
+  {"accept-encoding", "gzip, deflate, br"},
+  {"accept-ranges", "bytes"},
+  {"access-control-allow-headers", "cache-control"},
+  {"access-control-allow-headers", "content-type"},
+  {"access-control-allow-origin", "*"},
+  {"cache-control", "max-age=0"},
+  {"cache-control", "max-age=2592000"},
+  {"cache-control", "max-age=604800"},
+  {"cache-control", "no-cache"},
+  {"cache-control", "no-store"},
+  {"cache-control", "public, max-age=31536000"},
+  {"content-encoding", "br"},
+  {"content-encoding", "gzip"},
+  {"content-type", "application/dns-message"},
+  {"content-type", "application/javascript"},
+  {"content-type", "application/json"},
+  {"content-type", "application/x-www-form-urlencoded"},
+  {"content-type", "image/gif"},
+  {"content-type", "image/jpeg"},
+  {"content-type", "image/png"},
+  {"content-type", "text/css"},
+  {"content-type", "text/html; charset=utf-8"},
+  {"content-type", "text/plain"},
+  {"content-type", "text/plain;charset=utf-8"},
+  {"range", "bytes=0-"},
+  {"strict-transport-security", "max-age=31536000"},
+  {"strict-transport-security", "max-age=31536000; includesubdomains"},
+  {"strict-transport-security", "max-age=31536000; includesubdomains; preload"},
+  {"vary", "accept-encoding"},
+  {"vary", "origin"},
+  {"x-content-type-options", "nosniff"},
+  {"x-xss-protection", "1; mode=block"},
+  {":status", "100"},
+  {":status", "204"},
+  {":status", "206"},
+  {":status", "302"},
+  {":status", "400"},
+  {":status", "403"},
+  {":status", "421"},
+  {":status", "425"},
+  {":status", "500"},
+  {"accept-language", ""},
+  {"access-control-allow-credentials", "FALSE"},
+  {"access-control-allow-credentials", "TRUE"},
+  {"access-control-allow-headers", "*"},
+  {"access-control-allow-methods", "get"},
+  {"access-control-allow-methods", "get, post, options"},
+  {"access-control-allow-methods", "options"},
+  {"access-control-expose-headers", "content-length"},
+  {"access-control-request-headers", "content-type"},
+  {"access-control-request-method", "get"},
+  {"access-control-request-method", "post"},
+  {"alt-svc", "clear"},
+  {"authorization", ""},
+  {"content-security-policy", "script-src 'none'; object-src 'none'; base-uri 'none'"},
+  {"early-data", "1"},
+  {"expect-ct", ""},
+  {"forwarded", ""},
+  {"if-range", ""},
+  {"origin", ""},
+  {"purpose", "prefetch"},
+  {"server", ""},
+  {"timing-allow-origin", "*"},
+  {"upgrade-insecure-requests", "1"},
+  {"user-agent", ""},
+  {"x-forwarded-for", ""},
+  {"x-frame-options", "deny"},
+  {"x-frame-options", "sameorigin"}};
 
 QPACK::QPACK(QUICConnection *qc, uint16_t max_table_size, uint16_t max_blocking_streams)
   : QUICApplication(qc),