Re: [PATCH] Enable info/refs gzip decompression in HTTP client

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH] Enable info/refs gzip decompression in HTTP client

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:54:49

"Shawn O. Pearce" [off-list ref] writes:
From: "Shawn O. Pearce" <redacted>

Some HTTP servers try to use gzip compression on the /info/refs
request to save transfer bandwidth. Repositories with many tags
may find the /info/refs request can be gzipped to be 50% of the
original size due to the few but often repeated bytes used (hex
SHA-1 and commonly digits in tag names).

For most HTTP requests enable "Accept-Encoding: gzip" ensuring
the /info/refs payload can use this encoding format.

Disable the Accept-Encoding header on probe RPCs as response bodies
are supposed to be exactly 4 bytes long, "0000". The HTTP headers
requesting and indicating compression use more space than the data
transferred in the body.
All of the above sounds very convincing, but ...
quoted hunk
diff --git a/t/t5551-http-fetch.sh b/t/t5551-http-fetch.sh
index 2db5c35..380c175 100755
--- a/t/t5551-http-fetch.sh
+++ b/t/t5551-http-fetch.sh
@@ -32,13 +32,14 @@ setup_askpass_helper
 cat >exp <<EOF
 > GET /smart/repo.git/info/refs?service=git-upload-pack HTTP/1.1
 > Accept: */*
+> Accept-Encoding: gzip
 > Pragma: no-cache
 < HTTP/1.1 200 OK
 < Pragma: no-cache
 < Cache-Control: no-cache, max-age=0, must-revalidate
 < Content-Type: application/x-git-upload-pack-advertisement
 > POST /smart/repo.git/git-upload-pack HTTP/1.1
-> Accept-Encoding: deflate, gzip
+> Accept-Encoding: gzip
... was loss of "deflate" intended?  If so why?  Could you explain
it in the log message?
 > Content-Type: application/x-git-upload-pack-request
 > Accept: application/x-git-upload-pack-result
 > Content-Length: xxx

Re: [PATCH] Enable info/refs gzip decompression in HTTP client

From: Shawn Pearce <hidden>
Date: 2016-06-15 22:54:49

On Wed, Sep 19, 2012 at 5:43 PM, Junio C Hamano [off-list ref] wrote:
quoted
-> Accept-Encoding: deflate, gzip
+> Accept-Encoding: gzip
... was loss of "deflate" intended?  If so why?  Could you explain
it in the log message?
Yes. I would add the following to the end of the commit message as a
new paragraph, please amend this for me:

--8<--
Only request gzip encoding from servers. Although deflate is
supported by libcurl, most servers have standardized on gzip
encoding for compression as that is what most browsers support.
Asking for deflate increases request sizes by a few bytes, but
is unlikely to ever be used by a server.
-->8--
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help