github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/net/http/header.go (about) 1 // Copyright 2010 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package http 6 7 import ( 8 "github.com/shogo82148/std/io" 9 "github.com/shogo82148/std/time" 10 ) 11 12 // Headerは、HTTPヘッダー内のキーと値のペアを表します。 13 // 14 // キーは、[CanonicalHeaderKey] が返すように正規化された形式である必要があります。 15 type Header map[string][]string 16 17 // Addは、ヘッダーにキーと値のペアを追加します。 18 // キーに関連付けられた既存の値に追加します。 19 // キーは大文字小文字を区別せず、[CanonicalHeaderKey] によって正規化されます。 20 func (h Header) Add(key, value string) 21 22 // Setは、キーに関連付けられたヘッダーエントリを単一の要素値に設定します。 23 // キーに関連付けられた既存の値を置き換えます。 24 // キーは大文字小文字を区別せず、[textproto.CanonicalMIMEHeaderKey] によって正規化されます。 25 // 非正規のキーを使用するには、直接マップに割り当ててください。 26 func (h Header) Set(key, value string) 27 28 // Getは、指定されたキーに関連付けられた最初の値を取得します。 29 // キーに関連付けられた値がない場合、Getは""を返します。 30 // 大文字小文字を区別せず、[textproto.CanonicalMIMEHeaderKey] が提供されたキーを正規化することに注意してください。 31 // Getは、すべてのキーが正規形式で格納されていると想定しています。非正規のキーを使用するには、直接マップにアクセスしてください。 32 func (h Header) Get(key string) string 33 34 // Valuesは、指定されたキーに関連付けられたすべての値を返します。 35 // 大文字小文字を区別せず、[textproto.CanonicalMIMEHeaderKey] が提供されたキーを正規化することに注意してください。 36 // 非正規のキーを使用するには、直接マップにアクセスしてください。 37 // 返されるスライスはコピーではありません。 38 func (h Header) Values(key string) []string 39 40 // Delは、キーに関連付けられた値を削除します。 41 // キーは大文字小文字を区別せず、[CanonicalHeaderKey] によって正規化されます。 42 func (h Header) Del(key string) 43 44 // Writeは、ワイヤーフォーマットでヘッダーを書き込みます。 45 func (h Header) Write(w io.Writer) error 46 47 // Cloneは、hのコピーを返します。hがnilの場合はnilを返します。 48 func (h Header) Clone() Header 49 50 // ParseTimeは、HTTP/1.1で許可されている3つのフォーマットのうちの1つ、[TimeFormat]、[time.RFC850]、および [time.ANSIC] をそれぞれ試して、時間ヘッダー(Date:ヘッダーなど)を解析します。 51 func ParseTime(text string) (t time.Time, err error) 52 53 // WriteSubsetはワイヤーフォーマットでヘッダーを書き込みます。 54 // excludeがnilでない場合、exclude[key] == trueのキーは書き込まれません。 55 // excludeマップをチェックする前にキーは正規化されません。 56 func (h Header) WriteSubset(w io.Writer, exclude map[string]bool) error 57 58 // CanonicalHeaderKeyは、ヘッダーキーsの正規形式を返します。 59 // 正規化により、最初の文字とハイフンに続く任意の文字が大文字に変換されます。 60 // それ以外の文字は小文字に変換されます。 61 // たとえば、「accept-encoding」の正規キーは「Accept-Encoding」です。 62 // sにスペースまたは無効なヘッダーフィールドバイトが含まれている場合、変更せずに返されます。 63 func CanonicalHeaderKey(s string) string