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()
    }
    
  • 相关阅读:
    mod_rewrite
    敏捷开发
    转python和ruby的相同点
    ESB总线知识小结
    使用 squid 2.7 for windows 进行无缓存反向代理
    初探K2workflow
    没激情的工作
    多易拍 二次开发
    查看数二进制代码片段
    生成随机数
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/15212757.html
Copyright © 2011-2022 走看看