diff --git a/src/net/http/server.go b/src/net/http/server.go index 371c660145..0b56edf231 100644 --- a/src/net/http/server.go +++ b/src/net/http/server.go @@ -3683,9 +3683,7 @@ func (h *timeoutHandler) ServeHTTP(w ResponseWriter, r *Request) { tw.mu.Lock() defer tw.mu.Unlock() dst := w.Header() - for k, vv := range tw.h { - dst[k] = vv - } + maps.Copy(dst, tw.h) if !tw.wroteHeader { tw.code = StatusOK } diff --git a/src/net/http/transfer.go b/src/net/http/transfer.go index f7eef6475e..675551287f 100644 --- a/src/net/http/transfer.go +++ b/src/net/http/transfer.go @@ -11,6 +11,7 @@ import ( "fmt" "internal/godebug" "io" + "maps" "net/http/httptrace" "net/http/internal" "net/http/internal/ascii" @@ -954,9 +955,7 @@ func mergeSetHeader(dst *Header, src Header) { *dst = src return } - for k, vv := range src { - (*dst)[k] = vv - } + maps.Copy(*dst, src) } // unreadDataSizeLocked returns the number of bytes of unread input.