aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/responsewrite_test.go
diff options
context:
space:
mode:
authorMatt Layher <mdlayher@gmail.com>2016-09-01 16:30:15 -0400
committerBrad Fitzpatrick <bradfitz@golang.org>2016-09-01 21:10:22 +0000
commit88ccb3c945daeba7c08dfe9b39be18ec78941a45 (patch)
treef3ed5e6f61ec019443d9646652a3db9037310745 /src/net/http/responsewrite_test.go
parent8895a99c9ff522cf41f3a1bee365bd0c7e0c7900 (diff)
downloadgo-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.go21
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",
},
}