Session

什么是Session

Session是一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了

Session的工作原理

(1)浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie(name为JSESSIONID的固定值,value为session对象的ID),然后将该Cookie发送至浏览器端

(2)浏览器端发送第N(N>1)次请求到服务器端,浏览器端访问服务器端时就会携带该name为JSESSIONID的Cookie对象

(3)服务器端根据name为JSESSIONID的Cookie的value(sessionId),去查询Session对象,从而区分不同用户。

Session的生命周期

一般来说默认是半小时。比如你登录一个服务器,服务器返回给你一个sessionID,如果登录成功之后的半小时之内没有对该服务器进行任何HTTP请求,那么当半小时后你再次进行HTTP请求时,会提示你重新登录。

session和cookie的区别

1.cookie和session都是一种存储信息的手段,其中cookie存储在客户端(浏览器),而session存储在服务器端。前者容易伪造,后者基本不可能。session id(Tomcat称为JsessionId)就是session存在cookies中的key。
2.cookie因为存储在客户端,所以可能会存在cookie欺骗问题(修改session id,从而直接获取访问服务器的资格),而session通常更加安全
3.若均存储在session中,当访问增多时候,会比较占据服务器性能。
4.cookie因为存储在客户端,因此受到存储性能限制。单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
5.cookies 本质就是http协议中一个配置项,很容易在多台服务器共享;session 不能在多台服务器共享,除非专门使用了分布式的session框架处理了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值