首先我们先来了解一下什么是session,其实session就是一块在服务器端开辟的内存空间。session的作用是来跟踪用户的操作状态, 我们举个例子,比如:服务器端要知道一个当前网站有多少用户在线。我们知道一个用户就一个客户端,那么也就是说服务器端要知道有多少客户端正在访问本网 站,这样服务器端必然要跟踪每一个客户端的状态,那么服务器是通过什么跟踪的呢?又是怎么跟踪的呢?哈哈,其实这个问题很简单,比如张三下班后打天电脑是 今天第一次访问清华IT太原校区的网站,张三的电脑向清华IT太原校区的网站发出了请求,清华IT太原校区网站我现 在要访问你,这时呢清华IT太原校区的网站说请出示你的证件,张三的电脑傻了问“证件???”这时清华IT太原校区的网站说是今天第一次来访吧,张三的电 脑说是啊,清华IT太原校区的网站说那就对了看在你诚实的份上给你一个证件吧(这里的证件就是我们说的 sessionID,sessionID:是32位的字母和数字的组合是全地球唯一的,因为sessionID是唯一的所以它的作用是用来区分每个客户端 的,此ID是在session被创建时产生的,而session我们看到了是在第一次访问网站时就会被建立。sessionID会随着应答一起发到客户端 并存放到客户端的内存中,这块客户端的内存就是我们经常说的cookie,下次用户发出请求时,也会带着sessionID发送,这样服务器看到 sessionID后到内存寻找,找到了就使用此内存中的数据,否则视为第一次访问本网站),不过这个证件的有效期只有15分钟,这里的有 效期15分钟,就是我们说的session过期时间,什么是session过期时间呢?是这样的,我们想一下我们第一次访问一个网站,这时网站会给我们分 配一个sessionID,而我们只是打开了这个首页后,出去玩了再也没有访问过本网站的其它页面内容,我们是不是还在占用着网络资源呀,占用着 sessionID。那么这时怎么办呢?其实网站服务器很聪明的它会在你从第一次访问后就开始计算时间比如张三打开了清华IT太原校区的网站首页这时清华 IT太原校区网站的服务器就开始计时了 1秒,2秒,3秒,4秒,5秒,6秒...在2分钟的时候张三在首页上点击了一条新闻,这时清华IT太原校区网站的服务器知道后将刚才记的2分钟清空为0 这时又开始了1秒,2秒,3秒,4秒,5秒,6秒...的计时,至到计时时间达到了15分钟也就是session过期时间,这时清华IT太原校区网站服务 器会认为这个用户15分钟都没有访问过我了可能己经关机出去玩了,清华IT太原校区网站服务器会将这个用户在服务器开辟的内存空间释放掉,那么对应内存的 sessionID也就被收回了,等待新来的用户使用,这样我们说一个session就被销毁了,那么到这大家应该有点感觉了吧session的范围有多 大呀,是一个客户端,一个客户端对应着一个session ; 而一个session能存活多长时间有两个方面一方面是看客户端是否在session过期时间内访问网站,这样可以让session存活时间延长,另一方 面是设置的session过期时间是多长。session过期时间我们可以手工设置,如果没有设置就采取服务器默认设置的(例如这里用Tomcat可以在Tomcat/config/web.xml中找到一段如下的代码默认为30分钟:
- <session-config>
- <session-timeout>30<!---->session-timeout>
- <!---->session-config>
我们还可以在我们的项目中的WEB-INF/web.xml中写入上面的这段代码,设置session过期时间),好了知道了这些大家想一个问题:如果我们访问了一个网站,这个网站为我们分配了一个session ,我们现在将IE浏览关闭掉,session会销毁吗?哈哈,想都不用再想了肯定不会。因为session是存放在服务器端的session的销毁只和过期时间有关系,再者客户端关闭怎么会影响到服务器端呢!
分享到:
相关推荐
session具体使用方法,资源来自网络,如有问题,请及时与本人联系。
jsp中session使用方法
tomcat集群基于redis共享session使用到的所有jar包,放到tomcat的lib下即可使用 apache-tomcat-7.0.56+nginx-1.8.0+redis-3.0.6集群部署所需JAR包,session共享 tomcat-redis-session-manager1.2.jar jedis-2.6.2....
php session使用初探.pdf
jsp中session使用方法.docx
javaWeb 介绍 登录注册功能以实现,包括Cookie和Session 使用内嵌式H2数据库 使用基本vue语句获取数据库数据
.net MVC使用Session验证用户登录,直接输入URL的页面地址跳转到登陆页 ,必须经过用户登录授权才可以。例如输入:http://localhost:14613/Home/index 由于没有登录将直接跳转到http://localhost:14613/Account/Login...
session的使用,jsp内置对对象到使用,其中比较重要到就是session
一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,...
分布式session的使用与tomcat默认的session使用有所不同,比如session有一个对象a,默认tomcat里面,你可以获取a, 然后直接对a里面的属性进行修改,另外一个地方可以看到修改,但是在分布式session里面,你修改了a...
本文给大家详细介绍了关于django项目搭建与Session使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 django+session+中间件 一、使用命令行创建django项目 在指定路径下创建django...
分布式session的使用与tomcat默认的session使用有所不同,比如session有一个对象a,默认tomcat里面,你可以获取a, 然后直接对a里面的属性进行修改,另外一个地方可以看到修改,但是在分布式session里面,你修改了a...
使用request.getSession()方法可以获取当前请求的session对象,然后可以通过getAttribute()方法获取session中的值,例如:().getAttribute("sessionid"); %>。这种方法也可以获取session的值,但需要注意request对象...
主要介绍了ssm项目session使用及其作用域问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
完美实现分布式集群Session共享 简单多tomcat8+redis的session共享实现,支持tomcat8、tomcat8.5、tomcat9,不能用直接联系我积分双倍返回。
没有Asp.net开发经验的朋友可以看看这篇文章,可以从零开始学习各种ASP.NET技能。本资料是本人整理的ASP.NET与C#的基础资料。如需了解请查阅VS.NET的相关书籍。省略的内容有ASP.NET基础语法... 适用人群:初学ASP.NET
INFA技术超群管委会 原创, 版权所有,违者必究。
主要介绍了php中session使用示例,需要的朋友可以参考下
主要介绍了Django 5种类型Session使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下