go/doc/next/6-stdlib
Damien Neil 879ace1434 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>
2024-06-18 19:33:10 +00:00
..
99-minor net/http: keep Content-Encoding in Error, add GODEBUG for ServeContent 2024-06-18 19:33:10 +00:00
0-heading.md doc: fix various release notes mistakes 2024-03-15 03:39:16 +00:00
1-time.md doc/next: populate TODOs found with relnote todo 2024-05-23 20:49:22 +00:00
2-unique.md doc: simplify links for release notes 2024-05-20 18:34:13 +00:00
3-iter.md doc/next: reword map iterator function notes 2024-06-12 18:30:46 +00:00
4-structs.md doc/next: reword map iterator function notes 2024-06-12 18:30:46 +00:00