【Web】关于Session过期/失效的理解
一直好奇关于Session的过期,一种说法是关闭浏览器即Session失效,另一种说法是可以设置Session的过期时间,时间到了自动过期。
这两种说法到底是怎么回事?Session过期跟Cookie过期又有什么关系?
网上搜了几篇相关文章:
- http://www.cnblogs.com/Vae1990Silence/p/4630392.html
- http://blog.csdn.net/quiet_girl/article/details/50580095
- https://www.cisco.com/c/en/us/products/collateral/security/web-security-appliance/cn/117925-technote-csc-00.html
通过阅读上面几篇文章后,对Session过期有了新的理解,简单总结一下:
- Cookie保存在客户端浏览器,Session保存在服务器。
- Cookie可以设置过期时间。
- 如果Cookie不包含到期日期,则可视为会话Cookie(Session Cookie)。会话Cookie存储在客户端的内存(浏览器占用的内存)中,决不会写入磁盘。当浏览器关闭时,Cookie将从此永久丢失。
- 如果Cookie包含到期日期,则可视为持久性Cookie,存储在客户端的磁盘中。在指定的到期日期,Cookie将从磁盘中删除。
- 客户端请求服务端时,如果客户端的Cookie中没有当前会话的Session Id,则服务端会新分配一个Session,并将与该Session对应的Session Id存到Cookie中发回给客户端浏览器。
- 由于大部分的网站在发回Session Id时使用了会话Cookie(即没有设置过期时间),导致该Cookie存在客户端内存中,所以关闭浏览器即丢失了Session Id信息,再次访问服务端时才找不到对应的Session,于是才有了“关闭浏览器则Session过期”的说法!
- 服务端在保存Session时也可以设置该Session的过期时间,服务端的Web服务容器通常也有一个默认的过期时间。若访问服务器后,保持不关闭浏览器一段时间,超过Session过期时间后再次访问,会发现依然Session过期找不到了(比如表现为跳转到登录页面),则是“没有关浏览器但Session过期了”!
- 当(存放着Session Id的)Cookie和Session中两者有任一过期,即宣告会话过期。
另外,关于Java中设置Session的过期,参考:http://www.cnblogs.com/diewufeixian/p/4221747.html
总结一下方法有三:
- 在web容器中(如Tomcat)修改配置文件
- 在工程的web.xml中设置
- 创建Session后通过java代码设置
【Web】关于Session过期/失效的理解相关推荐
- java session 永不过期_Java Web Application使Session永不失效(利用cookie隐藏登录)
在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...
- Web应用安全————账号冻结与 Session 实时失效
引言 开篇时说些题外话,最近刚刚被公司CY,不过很快找到了下家,也同时拿到了三家公司的Offer.一周面试下来,总体感觉面试题少了,不过多了上机程序题.新公司是做外包,不过相比于上一家公司,也算是因祸 ...
- C#发布网站在web.config和IIS中设置Session过期时间
C#发布网站在web.config和IIS中设置Session过期时间 web.config <system.web> <sessionState mode="InProc ...
- 大型Web 网站 Asp.net Session过期你怎么办
在 WEB 系统中, 我们一般会用session来保存一些简单但是却很重要的信息.比如Asp.net中经常会用Session来保存用户登录信息,比如UserID.为了解决 WEB场大家采用了把sess ...
- php ajax session失效,PHP中解决ajax请求session过期退出登录问题
1.session过期,如果直接是url请求,或者用户在打开的系统页面中直接清除缓存及cookie信息,可直接在php的入口文件中调用以下封装的方法,进行session信息判断以及页面的跳转,如: i ...
- 深入理解session过期机制
首先得明白:session的过期时间由两方面决定的; 1存储在客户端的$_COOKIE['PHPSESSID']的过期时间(默认cookie名称为PHPSESSID,可通过php.ini中的ses ...
- session过期重新登陆_深入分析Session和Cookie-前端面试题
在Web发展史中,我们知道浏览器与服务器间采用的是http协议,而这种协议是无状态的,所以这就导致了服务器无法知道是谁在浏览网页,但很明显,一些网页需要知道用户的状态,例如登陆,购物车等. 所以为了解 ...
- session过期问题
php中session过期时间设置及回收机制详解: 修改php中的session过期时间可以修改php配置文件php.ini中的session.gc_maxlifetime即可. 当php每发出一次请 ...
- php修改sessiob时间_php中session过期时间设置
网上很多人给出了解答:修改php配置文件中的session.gc_maxlifetime.如果想了解更多session回收机制,继续阅读.(本文环境php5.2) 概述:每一次php请求,会有1/10 ...
- cookielifetime php_php中实现精确设置session过期时间的方法
大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session. ...
最新文章
- django博客项目8:文章详情页
- Sql Server 连接池
- [转载]婚姻不只是娶一个女人那么简单
- vue中textarea标签自适应高度
- 孔雀东南飞用mysql存储_PowerDesigner使用建议(完整版) 用实体关系图进行数据库建模...
- Python模拟Linux的Crontab, 写个任务计划需求
- python3.6 websocket异步高并发_在Python3.6上的websocket客户端中侦听传入消息时出现问题...
- 智能水位检测系统proteus_浅谈智能视觉检测系统的6大优点
- 通用数据链接(UDL)的用法
- Java中的几种设计模式:创建型模式,结构型模式
- 用链表写的一个通讯录
- 自定义函数求两个整数的绝对差值及排序
- 我发现微信、知乎、B站,居然都暗藏彩蛋!
- 阿里云大数据开发一面面经,已过,面试题已配答案
- Windows下UI自动化工具Inspect
- 在智慧城市建设中 计算机模拟是一个强大的工具
- Anuglar8集成高德地图
- 循迹智能小车c语言主程序,智能小车循迹、避障、红外遥控C语言代码
- DPC创始人Bard:DPC公链基于dpos算法开发的一条支付公链
- C# 获取移动硬盘和U盘信息
热门文章
- Kafka权威指南,Kafka生产者
- python参考手册下载_python3.8.4官方中文文档 API手册 PDF 高质量版
- sql 获取当前之后某天的日期
- Gerbview(高级pcb看图软件)官方正式版V9.20 | pcb文件怎么打开 | 含pdf转cad转换器和gerbview使用教程
- Iar工程调试使用教程
- 实训-利用HTML+CSS制作某米官网首页
- soapui 测试webservice
- SOAPUI 安装及破解
- java如何进行传感器数据传输_使用Wio Terminal通过HTTP请求获取并展示传感器实时数据...
- 神经网络的发展与应用