From aa333f4feb559bab53750ae9c5516425b899b7b4 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Tue, 21 May 2013 15:21:30 -0700 Subject: net/http: don't send Accept-Encoding on HEAD requests Works around a bug in nginx: http://trac.nginx.org/nginx/ticket/358 Fixes Issue 5522 R=iant CC=gobot, golang-dev https://codereview.appspot.com/9627043 --- src/pkg/net/http/transport.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/pkg/net/http/transport.go') diff --git a/src/pkg/net/http/transport.go b/src/pkg/net/http/transport.go index 4cd0533ff..41ac7dea1 100644 --- a/src/pkg/net/http/transport.go +++ b/src/pkg/net/http/transport.go @@ -831,10 +831,15 @@ func (pc *persistConn) roundTrip(req *transportRequest) (resp *Response, err err // uncompress the gzip stream if we were the layer that // requested it. requestedGzip := false - if !pc.t.DisableCompression && req.Header.Get("Accept-Encoding") == "" { + if !pc.t.DisableCompression && req.Header.Get("Accept-Encoding") == "" && req.Method != "HEAD" { // Request gzip only, not deflate. Deflate is ambiguous and // not as universally supported anyway. // See: http://www.gzip.org/zlib/zlib_faq.html#faq38 + // + // Note that we don't request this for HEAD requests, + // due to a bug in nginx: + // http://trac.nginx.org/nginx/ticket/358 + // http://golang.org/issue/5522 requestedGzip = true req.extraHeaders().Set("Accept-Encoding", "gzip") } -- cgit v1.2.1