• Golang gin Cookie的使用


    Cookie介绍


    • HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出
    • Cookie就是解决HTTP协议无状态的方案之一,中文是小甜饼的意思
    • Cookie实际上就是服务器保存在浏览器上的一段信息。浏览器有了Cookie之后,每次向服务器发送请求时都会同时将该信息发送给服务器,服务器收到请求后,就可以根据该信息处理请求
    • Cookie由服务器创建,并发送给浏览器,最终由浏览器保存

    Cookie的用途

    • 测试服务端发送cookie给客户端,客户端请求时携带cookie

     

     

    Cookie的使用


    • cookie的获取

    func (c *Context) Cookie(name string) (string, error)
    

    Cookie 返回请求中提供的命名 cookie,如果未找到则返回 ErrNoCookie。并返回命名的 cookie 是未转义的。如果多个 cookie 与给定名称匹配,则只会返回一个 cookie。

    • cookie的设置
    func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)
    

     SetCookie 将 Set-Cookie 标头添加到 ResponseWriter 的标头中。提供的 cookie 必须具有有效的名称。无效的 cookie 可能会被静默丢弃。

    参数:

    name:cookie的名称

    value:cookie的值

    maxAge int:cookie存活时间,单位为秒

    path:cookie所在目录

    domain string:域名

    secure:是否只能通过https访问

    httpOnly bool :是否允许别人通过js获取自己的cookie

    实例演示

    1. package main
    2. import (
    3. "fmt"
    4. "github.com/gin-gonic/gin"
    5. )
    6. func TestHandler(c *gin.Context) {
    7. // 获取客户端是否携带cookie
    8. if cookie, err := c.Cookie("username"); err != nil {
    9. fmt.Println("cookie", cookie)
    10. fmt.Println("err", err)
    11. cookie = "lucas"
    12. // 给客户端设置cookie
    13. c.SetCookie("username", cookie, 60*60, "/", "localhost", false, true)
    14. fmt.Printf("cookie的值为:%v\n", cookie)
    15. c.String(200, "测试cookie")
    16. }
    17. }
    18. func main() {
    19. // 1.创建路由
    20. // 默认使用了2个中间件Logger(), Recovery()
    21. engine := gin.Default()
    22. engine.GET("/cookie", TestHandler)
    23. engine.Run(":8888")
    24. }
    25. cookie
    26. err http: named cookie not present
    27. cookie的值为:lucas
    28. [GIN] 2023/09/12 - 18:29:13 | 200 | 924.4µs | ::1 | GET "/cookie"

     查看cookie

  • 相关阅读:
    毕设-基于SpringBoot房屋租赁系统
    【数据库数据恢复】Oracle数据库文件出现坏块报错的数据恢复案例
    分布式事务解决方案
    C++的类型转换
    Springboot整合JavaMail(发送邮件)
    .NET API 接口数据传输加密最佳实践
    asp.net家校互动系统VS开发sqlserver数据库web结构c#编程计算机网页项目
    Node.js躬行记(24)——低代码
    分类预测|基于黑翅鸢优化最小二乘支持向量机分类预测Matlab程序BKA-LSSVM 多特征输入多类别输出 含基础LSSVM
    Btrace入门
  • 原文地址:https://blog.csdn.net/qq_34556414/article/details/132837954