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的值 })