]> Cypherpunks repositories - gostls13.git/commit
net/http: use HTTP 307 redirects in ServeMux
authorSean Liao <sean@liao.dev>
Sat, 15 Nov 2025 23:58:58 +0000 (23:58 +0000)
committerSean Liao <sean@liao.dev>
Fri, 21 Nov 2025 20:47:40 +0000 (12:47 -0800)
commit831af61120b9b846965996ed1d4daaa079847b2a
treeb40fd55381095eaa9c5b7ad7ad725cedf7aaaa8f
parent87269224cb3609a967b821c89f5a920864969a10
net/http: use HTTP 307 redirects in ServeMux

Clients receiving an HTTP 301 Moved Permanently may conservatively
change the method of a POST request to GET.
The newer HTTP 307 Temporary Redirect and 308 Permanent Redirect
explicitly allows retrying POST requests after the redirect.
These should be safe for ServeMux as this internal redirect is generated
before user provided handlers are called.
As ServeMux is making the redirect for the user without explicit
direction, and clients may cache Permanent Redirects indefinitely,
Temporary Redirect is used in case the user adds a handler for a path,
that was previously redirected but no longer should.

Fixes #50243
Fixes #60769

Change-Id: I6c0b735bab03bb7b50f05457b3b8a8ba813badb2
Reviewed-on: https://go-review.googlesource.com/c/go/+/720820
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
src/net/http/serve_test.go
src/net/http/server.go
src/net/http/server_test.go