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