Golang Cookie最大年龄vs过期



Cookie结构中的Expires和Max Age之间有什么区别?我无法理解。

type Cookie struct {
Name  string
Value string
Path       string    // optional
Domain     string    // optional
Expires    time.Time // optional
RawExpires string    // for reading cookies only
// MaxAge=0 means no 'Max-Age' attribute specified.
// MaxAge<0 means delete cookie now, equivalently 'Max-Age: 0'
// MaxAge>0 means Max-Age attribute present and given in seconds
MaxAge   int
Secure   bool
HttpOnly bool
SameSite SameSite
Raw      string
Unparsed []string // Raw text of unparsed attribute-value pairs
}

它们实际上是Set-Cookie标头的不同字段,并不是Go特有的。

来自Mozilla文档:

到期

将cookie的最长生存期表示为HTTP日期时间戳。有关所需格式,请参见Date

如果未指定,cookie将成为会话cookie。当客户端关闭时,会话结束,然后删除会话cookie。

警告:许多web浏览器都具有会话恢复功能,可以保存所有选项卡,并在下次使用浏览器时进行恢复。会话cookie也将被恢复,就好像浏览器从未关闭过一样。

设置Expires日期时,截止日期是相对于设置cookie的客户端,而不是服务器。

最大年龄

指示cookie过期前的秒数。零或负数将使cookie立即过期。如果同时设置了ExpiresMax-Age,则Max-Age具有优先级。

相关内容

  • 没有找到相关文章

最新更新