aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/server.go
diff options
context:
space:
mode:
authorMichael Anthony Knyszek <mknyszek@google.com>2021-12-03 11:58:15 -0500
committerMichael Anthony Knyszek <mknyszek@google.com>2021-12-03 11:58:15 -0500
commitc884bd9ef2f1f36a98fa89bb4be07d4f9fe66589 (patch)
treef0543c1806db096c0ab766a14f05d2725e6c0791 /src/net/http/server.go
parent06a4b2790c5bb6530e0c4f05277b19c187134f49 (diff)
parent8faefcbfce6d2b2875ab74d81bb4e94b2e3adaf5 (diff)
downloadgo-c884bd9ef2f1f36a98fa89bb4be07d4f9fe66589.tar.gz
go-c884bd9ef2f1f36a98fa89bb4be07d4f9fe66589.zip
[dev.boringcrypto.go1.16] all: merge go1.16.11 into dev.boringcrypto.go1.16
Change-Id: I38f5b727d23d22238bf6886a7e33b5f72edeaa38
Diffstat (limited to 'src/net/http/server.go')
-rw-r--r--src/net/http/server.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/net/http/server.go b/src/net/http/server.go
index 198102ffd2..f9e518416d 100644
--- a/src/net/http/server.go
+++ b/src/net/http/server.go
@@ -1407,11 +1407,11 @@ func (cw *chunkWriter) writeHeader(p []byte) {
hasCL = false
}
- if w.req.Method == "HEAD" || !bodyAllowedForStatus(code) {
- // do nothing
- } else if code == StatusNoContent {
+ if w.req.Method == "HEAD" || !bodyAllowedForStatus(code) || code == StatusNoContent {
+ // Response has no body.
delHeader("Transfer-Encoding")
} else if hasCL {
+ // Content-Length has been provided, so no chunking is to be done.
delHeader("Transfer-Encoding")
} else if w.req.ProtoAtLeast(1, 1) {
// HTTP/1.1 or greater: Transfer-Encoding has been set to identity, and no
@@ -1422,6 +1422,7 @@ func (cw *chunkWriter) writeHeader(p []byte) {
if hasTE && te == "identity" {
cw.chunking = false
w.closeAfterReply = true
+ delHeader("Transfer-Encoding")
} else {
// HTTP/1.1 or greater: use chunked transfer encoding
// to avoid closing the connection at EOF.