mirror of
https://github.com/golang/go
synced 2024-11-21 16:54:46 -07:00
net/http: Don't set Content-Type header for HEAD requests by default
since the real type is not inferred. Fixes #2885. R=golang-dev, dsymonds, bradfitz CC=golang-dev https://golang.org/cl/5633045
This commit is contained in:
parent
f2d2b38c92
commit
fb86bbe239
@ -504,8 +504,9 @@ func Test304Responses(t *testing.T) {
|
||||
}
|
||||
|
||||
// TestHeadResponses verifies that responses to HEAD requests don't
|
||||
// declare that they're chunking in their response headers and aren't
|
||||
// allowed to produce output.
|
||||
// declare that they're chunking in their response headers, aren't
|
||||
// allowed to produce output, and don't set a Content-Type since
|
||||
// the real type of the body data cannot be inferred.
|
||||
func TestHeadResponses(t *testing.T) {
|
||||
ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
|
||||
_, err := w.Write([]byte("Ignored body"))
|
||||
@ -527,6 +528,10 @@ func TestHeadResponses(t *testing.T) {
|
||||
if len(res.TransferEncoding) > 0 {
|
||||
t.Errorf("expected no TransferEncoding; got %v", res.TransferEncoding)
|
||||
}
|
||||
ct := res.Header.Get("Content-Type")
|
||||
if ct != "" {
|
||||
t.Errorf("expected no Content-Type; got %s", ct)
|
||||
}
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
|
@ -341,7 +341,7 @@ func (w *response) WriteHeader(code int) {
|
||||
}
|
||||
} else {
|
||||
// If no content type, apply sniffing algorithm to body.
|
||||
if w.header.Get("Content-Type") == "" {
|
||||
if w.header.Get("Content-Type") == "" && w.req.Method != "HEAD" {
|
||||
w.needSniff = true
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user