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,
        SameSite: c.sameSite,
        Secure:   secure,
        HttpOnly: httpOnly,
    })

正在整理笔记,如有雷同,请告知地址,本人必添上

 

原文地址:https://www.cnblogs.com/qzhc/p/13454576.html