-
- Downloads
net/http: keep Content-Encoding in Error, add GODEBUG for ServeContent
This reverts the changes to Error from CL 571995, and adds a GODEBUG controlling the changes to ServeContent/ServeFile/ServeFS. The change to remove the Content-Encoding header when serving an error breaks middleware which sets Content-Encoding: gzip and wraps a ResponseWriter in one which compresses the response body. This middleware already breaks when ServeContent handles a Range request. Correct uses of ServeContent which serve pre-compressed content with a Content-Encoding: gzip header break if we don't remove that header when serving errors. Therefore, we keep the change to ServeContent/ ServeFile/ServeFS, but we add the ability to disable the new behavior by setting GODEBUG=httpservecontentkeepheaders=1. We revert the change to Error, because users who don't want to include a Content-Encoding header in errors can simply remove the header themselves, or not add it in the first place. Fixes #66343 Change-Id: Ic19a24b73624a5ac1a258ed7a8fe7d9bf86c6a38 Reviewed-on: https://go-review.googlesource.com/c/go/+/593157 Reviewed-by:Russ Cox <rsc@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Showing
- doc/godebug.md 9 additions, 0 deletionsdoc/godebug.md
- doc/next/6-stdlib/99-minor/net/http/66343.md 16 additions, 1 deletiondoc/next/6-stdlib/99-minor/net/http/66343.md
- src/internal/godebugs/table.go 1 addition, 0 deletionssrc/internal/godebugs/table.go
- src/net/http/fs.go 33 additions, 4 deletionssrc/net/http/fs.go
- src/net/http/fs_test.go 41 additions, 8 deletionssrc/net/http/fs_test.go
- src/net/http/serve_test.go 1 addition, 2 deletionssrc/net/http/serve_test.go
- src/net/http/server.go 9 additions, 4 deletionssrc/net/http/server.go
- src/runtime/metrics/doc.go 5 additions, 0 deletionssrc/runtime/metrics/doc.go
Loading
Please register or sign in to comment