天天看点

http-cookie

1. 背景

2. 原理

  • 设置和更新cookie是服务端的行为,请求携带cookie是客户端行为,cookie是缓存在客户端

3. Cookie属性

  • 过期时间
1. max-age -- 指定当前cookie多少秒后过期
2. expire -- 指定某个时间点后cookie过期
           
  • 禁止

    document.cookie

    访问 cookie --

    httpOnly

4. Cookie机制

1. cookie数据结构
Cookie: "k=v,max-age=1000;k2=v2"

值使用key=value形式,多个键值之间使用分号隔开,key=value的属性使用逗号隔开
           

5. Demo

package main

import (
   "fmt"
   "github.com/gin-gonic/gin"
)

func main() {
   // 获取Engine示例
   router := gin.Default()
   
   // 设置路由
   router.GET("/cookie", func(c *gin.Context) {
      // 获取cookie值
      cookie, err := c.Cookie("gin_cookie")
      
      if err != nil {
         cookie = "NotSet"
         // 设置cookie
         c.SetCookie("gin_cookie", "test", 3600, "/", "localhost", false,
            true)
      }
      fmt.Printf("Cookie value: %s \n", cookie)
   })
   // 启动web服务
   router.Run()
}
           

继续阅读