zoukankan      html  css  js  c++  java
  • http-cookie

    1. 背景

    Http -- 无状态:每一个request请求都是独立且非关联的,为了建立起每个request请求之间的关联关系

    2. 原理

    cookie是保存在每个域(域由协议+IP/域名+端口三部分组成)下,cookie值是由服务端设置,然后接下的客户端每次当前域下的请求都会携带cookie

    img

    • 设置和更新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 
    ", cookie)
       })
       // 启动web服务
       router.Run()
    }
    
  • 相关阅读:
    P1092 虫食算
    P1040 加分二叉树
    cfER76 abcd
    cf599 div2 a/b1/b2/c
    AtCoder Contest 144 DE
    Round G 2019
    luogu3084 Photo 单调队列优化DP
    luogu4234 最小差值生成树
    luogu1373 小a和uim之大逃离
    luogu1070 道路游戏 单调队列
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/15212757.html
Copyright © 2011-2022 走看看