不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核
  • GO基础

  • 面向对象

  • 并发编程

  • 常用库

  • 数据库操作

  • Beego框架

    • 01.Beego安装
    • 02.Beego创建项目
    • 03.获取参数传值
    • 04.路由
    • 05.模板基本使用
    • 06.Model封装公共方法
    • 07.Config参数配置
    • 08.Cookie
      • 01.Cookie 介绍
        • 1.1 cookie介绍
        • 1.2 Cookie能实现的功能
      • 02.cookie基本使用
        • 2.0 使用演示
        • 2.1 设置获取 Cookie
        • 2.2 SetCookie传入多个参数
        • 2.3 设置加密 Cookie 以及中文 Cookie
        • 2.4 删除 Cookie
      • 03.多个二级域名共享 cookie
      • 04.使用 Cookie 注意事项
    • 09.Session
    • 10.日志模块
    • 11.上传文件
    • 12.GORM操作
    • 13.GORM查询
    • 14.GORM 关联查询
    • 15.GORM原生SQL
  • Beego商城

  • GIN框架

  • GIN论坛

  • 微服务

  • 设计模式

  • Go
  • Beego框架
xiaonaiqiang
2021-05-24
目录

08.Cookie

# 01.Cookie 介绍

# 1.1 cookie介绍

  • HTTP 是无状态协议。

  • 简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面

  • 服务器无法认识到这是同一个浏览器在访问同一个网站。

  • 每一次的访问,都是没有任何关系的。

  • 如果我们要实现多个页面之间共享数据的话我们就可以使用 Cookie 或者 Session 实现

  • cookie 是存储于访问者计算机的浏览器中。

  • 可以让我们用同一个浏览器访问同一个域名的时候共享数据

# 1.2 Cookie能实现的功能

  • 1、保持用户登录状态

  • 2、保存用户浏览的历史记录

  • 3、猜你喜欢,智能推荐

  • 4、电商网站的加入购物车

# 02.cookie基本使用

# 2.0 使用演示

func (c *UserController) UsersGet() {
	//1、设置cookie
	c.Ctx.SetCookie("username", "zhangsan")

	//2、设置cookie的过期时间   秒
	c.Ctx.SetCookie("username", "lisi", 10)

	//3、设置cookie访问的路径
	c.Ctx.SetCookie("username", "wangwu", 1000, "/article")

	//4、cookie 的路径 Domain  (二级域名下面也可以访问cookie)
	//itying.com     www.itying.com    a.itying.com    b.itying.com
	c.Ctx.SetCookie("username", "wangwu111111111", 1000, "/", ".itying.com")

	// 5、SetCookie没法设置中文cookie
	c.Ctx.SetCookie("username", "张三", 10000)

	//6、cookie的加密  设置中文cookie     aaaaaa表示设置cookie的时候加密字符串
	c.Ctx.SetSecureCookie("aaaaaa", "username", "李四", 1000)

	c.TplName = "index.html"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 2.1 设置获取 Cookie

  • 注意:SetCookie 没法设置中文 cookie,如果要设置中文 Cookie 需要用 SetSecureCookie
this.Ctx.SetCookie("user","admin")
this.Ctx.GetCookie("user")
1
2

# 2.2 SetCookie传入多个参数

  • 1)传入三个参数
    • SetCookie 的第三个参数是时间,单位是秒 。
    • 如果不设置时间,Cookie 只在本次回话有效,默认存活时间为 3600 秒
this.Ctx.SetCookie("user","admin",10)
1
  • 2)七个参数的意义
this.Ctx.SetCookie("user","admin",nil,"/",".example.com",false,true)
1

第一个参数 key 第二个参数 value 第三个参数 过期时间 第四个参数 cookie 的路径 第五个参数 cookie 的路径 Domain 作用域(可不写) 第六个参数是 secure ,当 secure 值为 true 时 ,cookie 在 HTTP 中是无效,在 HTTPS中才有效 ,默认 false 第七个参数 httpOnly,是微软对 COOKIE 做的扩展。如果在 COOKIE 中设置了“httpOnly” 属性,则通过程序(JS 脚本、applet 等)将无法读取到 COOKIE 信息,防止 XSS 攻击产生 默认 false

# 2.3 设置加密 Cookie 以及中文 Cookie

this.SetSecureCookie("123456", "userinfo", "张三")
userinfo, ok := this.GetSecureCookie("123456", "userinfo")
1
2
  • SetSecureCookie 、GetSecureCookie 和 SetCookie 、GetCookie 用法基本是一样的
  • 要注意的是 SetSecureCookie 、GetSecureCookie 的第一个参数是加密字符串
  • 设置和获取的时候必须一样才能获取到值

# 2.4 删除 Cookie

  • beego 中并没有删除 Cookie 的函数
  • 但是我们可通过 SetCookie 把 Cookie 设为空值,即可达成删除的效果

# 03.多个二级域名共享 cookie

  • 1.分别把 a.itying.com 和 b.itying.com 解析到我们的服务器
  • 2.我们想的是用户在 a.itying.com 中设置 Cookie 信息后在 b.itying.com 中获取刚才设置的cookie
  • 3.也就是实现多个二级域名共享 cookie
  • 4.这时候的话我们就可以这样设置 cookie
c.Ctx.SetSecureCookie("sign", "name", "lisi", 1000, "/", ".itying.com")
1

# 04.使用 Cookie 注意事项

  • Cookie 使用明文存储安全性差,可以直接查看浏览器获得,重要信息需要加密存储

  • 各个浏览器对 Cookie 有限制,大概只能保存每个网站的 20 个 cookie。

上次更新: 2024/3/13 15:35:10
07.Config参数配置
09.Session

← 07.Config参数配置 09.Session→

最近更新
01
04.数组双指针排序_子数组
03-25
02
08.动态规划
03-25
03
06.回溯算法
03-25
更多文章>
Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式