gin操作cookie
每次访问网页都会携带cookie,默认肯定会携带Cookie: gin_cookie=test
//如果客户端没有cookie,则第一次访问,没有cookie,即err非nil
//然后创建一个cookie给客户端 (响应cookie),下次访问携带
cookie, err := context.Cookie("www")
if err != nil {
//创建cookie
cookie = "NotSet"
context.SetCookie("www", "123", 3600, "/", "localhost", false, true)
}
setCookie底层探究
http.SetCookie(c.Writer, &http.Cookie{
Name: name,
Value: url.QueryEscape(value),
// MaxAge=0表示未设置Max-Age属性
// MaxAge<0表示立刻删除该cookie,等价于"Max-Age: 0"
// MaxAge>0表示存在Max-Age属性,单位是秒 存到磁盘中,开机关机不影响
MaxAge: maxAge,
//只允许某路径下可以访问
Path: path,
//cookie跨域
/*当自己域名是 顶级域名:hello.com
二级域名:hi.hello.com
三级域名:big.hi.hello.com
对应设置的domain首先不能高过自己的(不能说二级或三级等),也就是说 如自己是hello.com,设置Domain不能低过自己,不然无法获得cookie;另外访问的域名不能低于设置的domain*/
Domain: domain,
Secure: secure, //否需要安全传输,为true时只有https才会传输该cookie
HttpOnly: httpOnly, //为true时,不能通过js读取该cookie的值
})

