[tor-commits] [torspec/master] Merge prop278 (compression) into dir-spec.
nickm at torproject.org
nickm at torproject.org
Fri Feb 9 13:41:15 UTC 2018
Author: Nick Mathewson <nickm at torproject.org>
Date: Wed Jan 24 12:48:12 2018 -0500
Merge prop278 (compression) into dir-spec.
dir-spec.txt | 34 ++++++++++++++++------
proposals/000-index.txt | 4 +--
...78-directory-compression-scheme-negotiation.txt | 2 +-
3 files changed, 28 insertions(+), 12 deletions(-)
diff --git a/dir-spec.txt b/dir-spec.txt
index 2f4a766..c68918e 100644
@@ -3623,8 +3623,27 @@
6.1. HTTP headers
- Servers MAY set the Content-Length: header. Servers SHOULD set
- Content-Encoding to "deflate" or "identity".
+ Servers SHOULD set Content-Encoding to the algorithm used to compress the
+ document(s) being served. Recognized algorithms are:
+ - "identity" -- RFC2616 section 3.5
+ - "deflate" -- RFC2616 section 3.5
+ - "gzip" -- RFC2616 section 3.5
+ - "x-zstd" -- The zstandard compression algorithm (www.zstd.net)
+ - "x-tor-lzma" -- The lzma compression algorithm, with a "preset"
+ value no higher than 6.
+ Clients SHOULD use Accept-Encoding to indicate which of the above
+ compression algorithms they support. If they omit it (as Tor clients
+ did before 0.3.1.1-alpha), then the server should serve only "deflate"
+ or "identity" encoded documents, based on the presence or absence of
+ the ".z" suffix on the requested URL.
+ When receiving multiple documents, clients MUST accept compressed
+ concatenated documents and concatenated compressed documents as
+ Servers MAY set the Content-Length: header. When they do, it should
+ match the number of compressed bytes that they are sending.
Servers MAY include an X-Your-Address-Is: header, whose value is the
apparent IP address of the client connecting to them (as a dotted quad).
@@ -3780,13 +3799,10 @@ B. General-use HTTP URLs
three classes of URLs. Caches may support them, and MUST
support them if they have advertised "caches-extra-info".)
- For debugging, directories SHOULD expose non-compressed objects at URLs like
- the above, but without the final ".z".
- Clients MUST handle compressed concatenated information in two forms:
- - A concatenated list of zlib-compressed objects.
- - A zlib-compressed concatenated list of objects.
- Directory servers MAY generate either format: the former requires less
- CPU, but the latter requires less bandwidth.
+ For debugging, directories SHOULD expose non-compressed objects at
+ URLs like the above, but without the final ".z". If the client uses
+ Accept-Encodings header, it should override the presence or absence
+ of the ".z" (see section 6.1).
Clients SHOULD use upper case letters (A-F) when base16-encoding
fingerprints. Servers MUST accept both upper and lower case fingerprints
diff --git a/proposals/000-index.txt b/proposals/000-index.txt
index 8506966..7cfde0f 100644
@@ -198,7 +198,7 @@ Proposals by number:
275 Stop including meaningful "published" time in microdescriptor consensus [OPEN]
276 Report bandwidth with lower granularity in consensus documents [OPEN]
277 Detect multiple relay instances running with same ID [OPEN]
-278 Directory Compression Scheme Negotiation [FINISHED]
+278 Directory Compression Scheme Negotiation [CLOSED]
279 A Name System API for Tor Onion Services [DRAFT]
280 Privacy-Preserving Statistics with Privcount in Tor [SUPERSEDED]
281 Downloading microdescriptors in bulk [DRAFT]
@@ -287,7 +287,6 @@ Proposals by status:
217 Tor Extended ORPort Authentication [for 0.2.5.x]
232 Pluggable Transport through SOCKS proxy [in 0.2.6]
260 Rendezvous Single Onion Services [in 0.2.9.3-alpha]
- 278 Directory Compression Scheme Negotiation [in 0.3.1.1-alpha]
284 Hidden Service v3 Control Port
101 Voting on the Tor Directory System [in 0.2.0.x]
@@ -368,6 +367,7 @@ Proposals by status:
271 Another algorithm for guard selection [in 0.3.0.1-alpha]
272 Listed routers should be Valid, Running, and treated as such [in 0.2.9.3-alpha, 0.2.9.4-alpha]
274 Rotate onion keys less frequently [in 0.3.1.1-alpha]
+ 278 Directory Compression Scheme Negotiation [in 0.3.1.1-alpha]
112 Bring Back Pathlen Coin Weight
113 Simplifying directory authority administration
diff --git a/proposals/278-directory-compression-scheme-negotiation.txt b/proposals/278-directory-compression-scheme-negotiation.txt
index 4630bc4..6f509fc 100644
@@ -2,7 +2,7 @@ Filename: 278-directory-compression-scheme-negotiation.txt
Title: Directory Compression Scheme Negotiation
Author: Alexander Færøy
More information about the tor-commits