浅谈Session与Cookie的藕断丝连

Session是为了解决HTTP协议无状态特性而引入的一种技术,它将数据存储在服务器端,确保数据的安全性和可靠性。Session在服务器开辟空间存储用户访问信息,并通过Session_id在Cookie中识别用户,实现多次请求间的数据关联。当用户长时间未活动,服务器会清理Session。Session有效地减少了数据库访问,缓解了服务器压力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Session因何而来

在聊Session之前,先来浅谈一下HTTP,学习计算的童鞋都知道HTTP,然而HTTP是无状态的,什么是无状态呢?大体就是这一次请求和上一次请求以及下一次请求没有任何联系,互不认识,这样有个好处是速度快。但是我们有时候我们需要多个请求页面之间有数据关联,那么就需要一个安全又可靠的全局存储信息的容器,Session就诞生了!

先大体说一下,Session为什么安全可靠哈,因为Session的信息存储在服务器端,在前端浏览器无法进行改动。

Session是什么

当浏览器访问服务器时,在服务器端会开辟一个空间,这个对象就是Session,存储结构为ConcurrentHashMap。

Session在哪个地方

Session是一种服务区存储数据的方式,它是存在于服务器的临时目录下

Session的运行机制

Session的全部机制保存在Session_id中,是Session的唯一标识,因为Session每天要被很多人访问成千上万次,那么同一个人的访问数据就全部存放在一个Session_id中,这样就能很快的找到某个人多次请求下访问的全部数据了,就解决了在HTTP状态下请求之间无关联的问题。

Session的生命周期

Session在浏览器第一次访问服务器时被创建,需要注意的是只有在访问JSP、Servlet程序时才会创建Session,当访问静态页面时不会主动创建,可调用request.getSession(true)强制生成Session,服务器会把长时间没有活动的Session给清除掉

Session需要浏览器的支持

Cookie产生于服务器端,存放于浏览器中,Session产生于服务器端,Session的session_id存放在Cookie中,Session依据Cookie中的session_id来识别是否为同一个用户

Session到底解决了什么问题

弥补了HTTP每个请求之间无关联的弊端,减轻了数据库访问的压力

用户多次访问的数据都存放在了Session中,当用户再需要数据直接在session中获取,减少了对数据库的访问次数

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值