浅谈golang的http cookie用法
作者:陈一刀 发布时间:2024-02-12 06:14:59
在服务端程序开发的过程中,cookie经常被用于验证用户登录。golang 的 net/http 包中自带 http cookie的定义,下面就来讲一下cookie的一般用法以及需要注意的问题。
http cookie的定义
先来看下golang对cookie结构体的定义:
type Cookie struct {
Name string
Value string
Path string // optional
Domain string // optional
Expires time.Time // optional
RawExpires string // for reading cookies only
// MaxAge=0 means no 'Max-Age' attribute specified.
// MaxAge<0 means delete cookie now, equivalently 'Max-Age: 0'
// MaxAge>0 means Max-Age attribute present and given in seconds
MaxAge int
Secure bool
HttpOnly bool
Raw string
Unparsed []string // Raw text of unparsed attribute-value pairs
}
常用参数:
Name : cookie的名称
Value : cookie名称对应的值
Domain : cookie的作用域
Expires : 设置cookie的过期时间
HttpOnly : 设置httpOnly属性(说明:Cookie的HttpOnly属性,指示浏览器不要在除HTTP(和 HTTPS)请求之外暴露Cookie。一个有HttpOnly属性的Cookie,不能通过非HTTP方式来访问,例如通过调用JavaScript(例如,引用 document.cookie),因此,不可能通过跨域脚本(一种非常普通的攻击技术)来偷走这种Cookie。尤其是Facebook 和 Google 正在广泛地使用HttpOnly属性。)
Secure : 设置Secure属性(说明:Cookie的Secure属性,意味着保持Cookie通信只限于加密传输,指示浏览器仅仅在通过安全/加密连接才能使用该Cookie。如果一个Web服务器从一个非安全连接里设置了一个带有secure属性的Cookie,当Cookie被发送到客户端时,它仍然能通过中间人攻击来拦截)
MaxAge : 设置过期时间,对应浏览器cookie的MaxAge属性
服务端设置cookie
了解的cookie的属性,我们可以在服务端对cookie进行设置。
COOKIE_MAX_MAX_AGE = time.Hour * 24 / time.Second // 单位:秒。
maxAge = int(COOKIE_MAX_MAX_AGE)
uid:="10"
uid_cookie:=&http.Cookie{
Name: "uid",
Value: uid,
Path: "/",
HttpOnly: false,
MaxAge: maxAge
}
http.SetCookie(c.Writer,uid_cookie)
浏览器记录cookie
服务端获取cookie
var c = *gin.Context
uid, err := c.Request.Cookie("uid")
来源:https://www.cnblogs.com/liangDream/p/5522516.html
猜你喜欢
- PyQt5单选按钮控件QRadioButton简介QRadioButton 继承自 QAbstractButton,其主要作用提供用户一些互
- 本文介绍Python实现端口复用实例如下所示:#coding=utf-8import socketimport sysimport sele
- 使用正则库爬取淘宝商品的商品信息,首先我们需要确定想要爬取的对象我们在淘宝里搜索“python”,出来的结果从url连接中可以得到搜索商品的
- 目录项目地址安装导入使用1 创建连接2 执行sql语句3 select 方法4 insert_into 方法5 merge_in
- 第一步:创建django项目打开终端,切换到期望所写项目的地址:cd python3_django_projects;输入命令:django
- 闲的无聊。。。网上一堆,正好练手(主要是新手)# coding=utf-8 import requests from bs4 import
- 很多现代的浏览器在地址栏的右边有个搜索框,默认的安装有 Google 搜索等。如下图所示:其实这是 OpenSearch 的一个应用,只要编
- python与C的区别如下:1、语言类型不同。Python是一种动态类型语言,又是强类型语言。它们确定一个变量的类型是在您第一次给它赋值的时
- 在我看来学习不难,配置一些环境真的很痛苦,之前的caffe配置,一口老血。。不过用Python遇到了pip安装,真的赞,可是在用pip装te
- 1.索引问题索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数 的SQL性能问题。本章节将对MySQL中的索引
- NetCDF(网络通用数据格式)文件后缀为.nc,文件中的数据结构包含维(dimensions)、变量(variables)和属性(attr
- 1.首先在Xshell上通过conda创建新的虚拟环境2.此时在 /home/y210101004/.conda/envs下多了刚
- 最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数执行shell脚本这个有多种方法 最后还是选
- 如下所示:arrs=[2,15,48,4,5,6,7,6,4,1,2,3,6,6,7,4,6,8]f=open('test.txt&
- 有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情
- 平衡二叉树:在上一节二叉树的基础上我们实现,如何将生成平衡的二叉树所谓平衡二叉树:我自己定义就是:任何一个节点的左高度和右高度的差的绝对值都
- 如果网站只开了80端口,你会发现下面的方法是比较有用的,其中用的方法几乎都不是我发现的,文总包括一些注入时的个人经验和技巧方法可以说有4种(
- 今天使用shuffleNetV2+,使用自己的数据集,遇到了loss是nan的情况,而且top1精确率出现断崖式上升,这显示是不正常的。在网
- 数据库中提取长长的文章,总是有碍网页的排版布局。所以,想固定地提取一部分字符,然后后面有……替代。相关推荐:当标题不能显示完整的时候 1、原
- 我们通常会使用 apt-get或者是pip来安装包,但是这两者的安装路径是不一样的,区别如下:如果使用pip或者pip3安装,则第三方包在: