session与cookie

news2024/12/29 8:50:41

session是一种会话机制。当客户端发送登录请求时,服务端会生成一个sessionId存储在cookie中返回给客户端,客户端通过响应数据中的set-cookie字段来获取cookie并保存。如果客户端再向同一网站发送请求时,会自动携带cookie,相当于一个凭证,这样做就避免了用户重复登录。而在服务端,也会使用数据库或文件来储存关于用户信息的一个大字典(也称之为用户session),这个字典的key就是sessionId,value就是用户信息。

Name : Cookie的名称,一旦创建,不可更改

Value : Cookie的值如果值为Unicode字符,则需要为字符编码。如果值为二进制数据,则需要使用BASE64编码

Domain : 指定可以访问该Cookie的域名

Path : Cookie的使用路径,如果设置为/则本域名下所有页面都可以访问该Cookie

Max-Age : Cookie的失效时间,单位为秒,常和Expires一起使用,如果为负数则关闭浏览器时Cookie失效,且浏览器不会保存该Cookie,为正数时,代表多少秒后Cookie失效

Size : Cookie的大小

Http : Cookie的Httponly属性,若此属性为True,则只有在HttpHeaders中才会带有此Cookie的信息,而不能通过document.cookie来访问此Cookie

Secure : 是否允许使用ssl/tls/https等安全协议来传输此cookie

下图是查看浏览器上的一些cookie,可以看出cookie按有效期来分分为两种,一种是会话cookie,浏览器关闭时,cookie就会消失。另一种是有具体时间的保存时间比较长的,即使浏览器关闭了,cookie在有效期内依然有效。

ps:在讨论session机制的时候,常会听到一种误解,只要关闭浏览器,session就消失了。服务器端的用户session永远也不会消失,除非删除了数据。之所以出现这种情况是因为关闭浏览器时,会话cookie会消失,所以再次访问服务器无法提供用于查询用户session的key,也就是sessionId,所以需要重新登陆。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

离散数学_十章-图 ( 5 ):连通性 - 下

📷10.5 图的连通性 4. 有向图的连通性4.1 强连通4.2 弱连通4.3 (有向图的)强连通分支 5. 通路与同构6. 顶点间通路个数的计算 4. 有向图的连通性 根据是否考虑边的方向,在有向图中有两种连通性概念: 4.1 强连通 强连…

C/C++线程绑核详解

在一些大型的工程或者特殊场景中,我们会听到绑核,绑核分为进程绑核和线程绑核。绑核的最终目的都是为了提高程序和性能或者可靠性。 一:为什么需要绑核 操作系统发展至今,已经能很好的平衡运行在操作系统上层的应用,兼…

16.3:岛屿数量问题2

岛屿数量问题2 https://leetcode.cn/problems/number-of-islands-ii/ 给你一个大小为 m x n 的二进制网格 grid 。网格表示一个地图,其中,0 表示水,1 表示陆地。最初,grid 中的所有单元格都是水单元格(即&#xff0c…

Dubbo源码解析一网络通信原理

Dubbo 网络通信原理 1. Dubbo高可用集群1.1 服务集群的概述1.1.1 服务集群的概述1.1.2 调用过程1.1.3 组件介绍 1.2 集群容错机制1.2.1 内置集群容错策略1.2.1.1 Failover(失败自动切换)1.2.1.2 Failsafe(失败安全)1.2.1.3 Failfast(快速失败)1.2.1.4 Failback(失败自动恢复)1.…

卡尔曼滤波 | Matlab实现利用卡尔曼滤波器估计电池充电状态(Kalman Filtering)

文章目录 效果一览文章概述研究内容程序设计参考资料效果一览 文章概述 卡尔曼滤波 | Matlab实现利用卡尔曼滤波器估计电池充电状态(Kalman Filtering) 研究内容

gyp verb `which` failed Error: not found: python2

安装node-sass居然需要python2,7环境,不能python3 我只能重新降版本: python2.7:https://www.python.org/ftp/python/2.7/python-2.7.amd64.msi npm ERR! code 1 npm ERR! path F:\idea2021work\music01 初始化\music-client\node_modules\node-sass np…

自然语言处理从入门到应用——自然语言处理的基础任务:词性标注(POS Tagging)和句法分析(Syntactic Parsing)

分类目录:《自然语言处理从入门到应用》总目录 词性标注 词性是词语在句子中扮演的语法角色,也被称为词类(Part-Of-Speech,POS)。例如,表示抽象或具体事物名字(如“计算机”)的词被…

【遗传算法简介】

遗传算法:原理与实战 简介 遗传算法是一种模拟达尔文生物进化论的自然选择以及遗传学机制的搜索算法,由 John Holland 在20世纪70年代提出。它们在各种搜索、优化和机器学习任务中已被广泛应用。 遗传算法原理 1. 编码 遗传算法的第一步是将问题的可…

Andriod开发 Room 数据库处理框架

1.Room框架 Room是Android Jetpack组件库中的一部分,它是一个SQLite数据库的抽象层,提供了更简单的API和更好的性能,适合于中大型应用程序。 2.Room的使用 使用Room和之前使用SQLite搭建数据库的过程类似,但是更加简单了。 1&…

JAVA网络编程(一)

一、什么是网络编程 定义:在网络通信协议下,不同计算机上运行的程序,进行的数据传输。 应用场景:即时通信,网游,邮件等 不管什么场景,都是计算机与计算机之间通过网络在进行数据传输 java提供一…

软件测试必会:cookie、session和token的区别

今天就来说说session、cookie、token这三者之间的关系!最近这仨玩意搞得头有点大🤣 01、为什么会有它们三个 我们都知道 HTTP 协议是无状态的,所谓的无状态就是客户端每次想要与服务端通信,都必须重新与服务端链接,意…

穿针引线之 AsyncLocalStorage

在 Node.js 中,如何更优雅地获取请求上下文一直是一个问题,看一下下面的例子。 背景 const http require(http); function handler1(req, res) {console.log(req.url); }function handler2(req, res) {console.log(req.url); }http.createServer((req…

【react全家桶】react-Hook (下)

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 15【react-Hook &#xff08;下&#x…

进程控制(Linux)

进程控制 fork 在Linux中&#xff0c;fork函数是非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 返回值&#xff1a; 在子进程中返回0&#xff0c;父进程中返回子进程的PID&#xff0c;子进程创建失败返回-1。 …

Spring - BeanFactory与ApplicationContext介绍

文章目录 Spring Bean一、BeanFactory 快速入门1.1 BeanFactory 开发步骤1.2 DI依赖注入 二、ApplicationContext快速入门2.1 入门2.2 BeanFactory 与 ApplicationContext关系2.3 BeanFactory 继承体系2.4 ApplicationContext 继承体系 Spring Bean 之前也了解过Spring Bean&a…

高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression)

文章目录 效果一览文章概述研究内容程序设计参考资料效果一览 文章概述 高斯过程回归 | Matlab实现高斯过程回归多输入单输出预测(Gaussian Process Regression) 研究内容 高斯过程回归(Gaussian Process Regression,GPR)是一种基于概率模型的非参数回归方法,可以用于

mybatisplus数据权限插件学习初探 动态表名更换插件

文章目录 学习链接 mybatisplus数据权限插件学习初探前言案例建表用户表订单表 环境准备UserUserMapperUserMapper.xmlOrdersOrdersMapperOrdersMapper.xml 配置UserTypeEnumUserContextHolderCustomizeDataPermissionHandlerMybatisPlusConfig 测试测试类bossdeptManagerclerk…

Zinx框架学习 - 消息封装

Zinx - V0.5 消息封装 之前我们使用Request来保存服务器的数据&#xff0c;很显然使用[]byte来接收数据&#xff0c;没有长度也没有消息类型&#xff0c;接下来就要针对这个消息进行封装 创建消息类型 定义一个基本的message包&#xff0c;会包含消息ID、数据、数据长度三个…

路径规划算法:基于探路者优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于探路者优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于探路者优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

涉及float和double

文章目录 涉及float和double的问题&#xff1a;它们的存储方式&#xff1a;有效位&#xff1f; 链式结构 涉及float和double的问题&#xff1a; 它们的存储方式&#xff1a; 它们会分成小数部分和指数部分分别存储。小数部分的有效位数越多&#xff0c;精度就越高&#xff0c;…