You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.4 KiB
78 lines
1.4 KiB
// Copyright 2014 The Go Authors. All rights reserved. |
|
// Use of this source code is governed by a BSD-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package http2 |
|
|
|
import ( |
|
"net/http" |
|
"strings" |
|
) |
|
|
|
var ( |
|
commonLowerHeader = map[string]string{} // Go-Canonical-Case -> lower-case |
|
commonCanonHeader = map[string]string{} // lower-case -> Go-Canonical-Case |
|
) |
|
|
|
func init() { |
|
for _, v := range []string{ |
|
"accept", |
|
"accept-charset", |
|
"accept-encoding", |
|
"accept-language", |
|
"accept-ranges", |
|
"age", |
|
"access-control-allow-origin", |
|
"allow", |
|
"authorization", |
|
"cache-control", |
|
"content-disposition", |
|
"content-encoding", |
|
"content-language", |
|
"content-length", |
|
"content-location", |
|
"content-range", |
|
"content-type", |
|
"cookie", |
|
"date", |
|
"etag", |
|
"expect", |
|
"expires", |
|
"from", |
|
"host", |
|
"if-match", |
|
"if-modified-since", |
|
"if-none-match", |
|
"if-unmodified-since", |
|
"last-modified", |
|
"link", |
|
"location", |
|
"max-forwards", |
|
"proxy-authenticate", |
|
"proxy-authorization", |
|
"range", |
|
"referer", |
|
"refresh", |
|
"retry-after", |
|
"server", |
|
"set-cookie", |
|
"strict-transport-security", |
|
"trailer", |
|
"transfer-encoding", |
|
"user-agent", |
|
"vary", |
|
"via", |
|
"www-authenticate", |
|
} { |
|
chk := http.CanonicalHeaderKey(v) |
|
commonLowerHeader[chk] = v |
|
commonCanonHeader[v] = chk |
|
} |
|
} |
|
|
|
func lowerHeader(v string) string { |
|
if s, ok := commonLowerHeader[v]; ok { |
|
return s |
|
} |
|
return strings.ToLower(v) |
|
}
|
|
|