79 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
// 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)
 | 
						|
}
 |