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