1. 背景
2. 原理
- 设置和更新cookie是服务端的行为,请求携带cookie是客户端行为,cookie是缓存在客户端
3. Cookie属性
- 过期时间
1. max-age -- 指定当前cookie多少秒后过期
2. expire -- 指定某个时间点后cookie过期
- 禁止
访问 cookie --document.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()
}