diff options
| author | Matt Layher <mdlayher@gmail.com> | 2016-09-01 16:30:15 -0400 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2016-09-01 21:10:22 +0000 |
| commit | 88ccb3c945daeba7c08dfe9b39be18ec78941a45 (patch) | |
| tree | f3ed5e6f61ec019443d9646652a3db9037310745 /src/net/http/responsewrite_test.go | |
| parent | 8895a99c9ff522cf41f3a1bee365bd0c7e0c7900 (diff) | |
| download | go-88ccb3c945daeba7c08dfe9b39be18ec78941a45.tar.xz | |
net/http: omit Content-Length in Response.Write for 1xx or 204 status
Per RFC 7230, Section 3.3.2: "A server MUST NOT send a Content-Length
header field in any response with a status code of 1xx (Informational)
or 204 (No Content).".
Fixes #16942
Change-Id: I8006c76c126304e13618966e6eafb08a3885d3cd
Reviewed-on: https://go-review.googlesource.com/28351
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/net/http/responsewrite_test.go')
| -rw-r--r-- | src/net/http/responsewrite_test.go | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/net/http/responsewrite_test.go b/src/net/http/responsewrite_test.go index 90f6767d96..d41d89896e 100644 --- a/src/net/http/responsewrite_test.go +++ b/src/net/http/responsewrite_test.go @@ -241,7 +241,8 @@ func TestResponseWrite(t *testing.T) { "HTTP/1.0 007 license to violate specs\r\nContent-Length: 0\r\n\r\n", }, - // No stutter. + // No stutter. Status code in 1xx range response should + // not include a Content-Length header. See issue #16942. { Response{ StatusCode: 123, @@ -253,7 +254,23 @@ func TestResponseWrite(t *testing.T) { Body: nil, }, - "HTTP/1.0 123 Sesame Street\r\nContent-Length: 0\r\n\r\n", + "HTTP/1.0 123 Sesame Street\r\n\r\n", + }, + + // Status code 204 (No content) response should not include a + // Content-Length header. See issue #16942. + { + Response{ + StatusCode: 204, + Status: "No Content", + ProtoMajor: 1, + ProtoMinor: 0, + Request: dummyReq("GET"), + Header: Header{}, + Body: nil, + }, + + "HTTP/1.0 204 No Content\r\n\r\n", }, } |
