github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/net/http/cookie.go (about)

     1  // Copyright 2009 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/time"
     9  )
    10  
    11  // Cookieは、HTTP応答のSet-CookieヘッダーまたはHTTPリクエストのCookieヘッダーで送信されるHTTPクッキーを表します。
    12  //
    13  // 詳細については、https://tools.ietf.org/html/rfc6265 を参照してください。
    14  type Cookie struct {
    15  	Name  string
    16  	Value string
    17  
    18  	Path       string
    19  	Domain     string
    20  	Expires    time.Time
    21  	RawExpires string
    22  
    23  	// MaxAge=0は 'Max-Age'属性が指定されていないことを意味します。
    24  	// MaxAge<0は今すぐクッキーを削除することを意味し、'Max-Age: 0'と同等です。
    25  	// MaxAge>0はMax-Age属性が存在し、秒で指定されていることを意味します。
    26  	MaxAge   int
    27  	Secure   bool
    28  	HttpOnly bool
    29  	SameSite SameSite
    30  	Raw      string
    31  	Unparsed []string
    32  }
    33  
    34  // SameSiteは、サーバーがクッキー属性を定義して、ブラウザがクロスサイトリクエストと一緒にこのクッキーを送信できなくすることを可能にします。主な目的は、クロスオリジン情報漏洩のリスクを軽減し、クロスサイトリクエスト偽造攻撃に対する保護を提供することです。
    35  //
    36  // 詳細については、https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00 を参照してください。
    37  type SameSite int
    38  
    39  const (
    40  	SameSiteDefaultMode SameSite = iota + 1
    41  	SameSiteLaxMode
    42  	SameSiteStrictMode
    43  	SameSiteNoneMode
    44  )
    45  
    46  // SetCookieは、提供された [ResponseWriter] のヘッダーにSet-Cookieヘッダーを追加します。
    47  // 提供されたクッキーには有効な名前が必要です。無効なクッキーは黙って破棄される場合があります。
    48  func SetCookie(w ResponseWriter, cookie *Cookie)
    49  
    50  // Stringは、[Cookie] ヘッダー(NameとValueのみが設定されている場合)またはSet-Cookie応答ヘッダー(他のフィールドが設定されている場合)で使用するためのクッキーのシリアル化を返します。
    51  // cがnilであるか、c.Nameが無効な場合、空の文字列が返されます。
    52  func (c *Cookie) String() string
    53  
    54  // Validは、クッキーが有効かどうかを報告します。
    55  func (c *Cookie) Valid() error