Commit 107a6ef4 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

net/http: document Request.Header and Request.Close more

Updates #14227

Change-Id: If39f11471ecd307c9483f64e73f9c89fe906ae71
Reviewed-on: https://go-review.googlesource.com/19222Reviewed-by: default avatarAndrew Gerrand <adg@golang.org>
Reviewed-by: default avatarRuss Cox <rsc@golang.org>
parent 4d02b124
...@@ -99,30 +99,37 @@ type Request struct { ...@@ -99,30 +99,37 @@ type Request struct {
ProtoMajor int // 1 ProtoMajor int // 1
ProtoMinor int // 0 ProtoMinor int // 0
// A header maps request lines to their values. // Header contains the request header fields either received
// If the header says // by the server or to be sent by the client.
// //
// If a server received a request with header lines,
//
// Host: example.com
// accept-encoding: gzip, deflate // accept-encoding: gzip, deflate
// Accept-Language: en-us // Accept-Language: en-us
// Connection: keep-alive // fOO: Bar
// foo: two
// //
// then // then
// //
// Header = map[string][]string{ // Header = map[string][]string{
// "Accept-Encoding": {"gzip, deflate"}, // "Accept-Encoding": {"gzip, deflate"},
// "Accept-Language": {"en-us"}, // "Accept-Language": {"en-us"},
// "Connection": {"keep-alive"}, // "Foo": {"Bar", "two"},
// } // }
// //
// HTTP defines that header names are case-insensitive. // For incoming requests, the Host header is promoted to the
// The request parser implements this by canonicalizing the // Request.Host field and removed from the Header map.
// name, making the first character and any characters
// following a hyphen uppercase and the rest lowercase.
// //
// For client requests certain headers are automatically // HTTP defines that header names are case-insensitive. The
// added and may override values in Header. // request parser implements this by using CanonicalHeaderKey,
// making the first character and any characters following a
// hyphen uppercase and the rest lowercase.
// //
// See the documentation for the Request.Write method. // For client requests, certain headers such as Content-Length
// and Connection are automatically written when needed and
// values in Header may be ignored. See the documentation
// for the Request.Write method.
Header Header Header Header
// Body is the request's body. // Body is the request's body.
...@@ -152,8 +159,15 @@ type Request struct { ...@@ -152,8 +159,15 @@ type Request struct {
TransferEncoding []string TransferEncoding []string
// Close indicates whether to close the connection after // Close indicates whether to close the connection after
// replying to this request (for servers) or after sending // replying to this request (for servers) or after sending this
// the request (for clients). // request and reading its response (for clients).
//
// For server requests, the HTTP server handles this automatically
// and this field is not needed by Handlers.
//
// The client requests, setting this field prevents re-use of
// TCP connections between requests to the same hosts, as if
// Transport.DisableKeepAlives were set.
Close bool Close bool
// For server requests Host specifies the host on which the // For server requests Host specifies the host on which the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment