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),