一直好奇关于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过期/失效的理解相关推荐

  1. java session 永不过期_Java Web Application使Session永不失效(利用cookie隐藏登录)

    在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...

  2. Web应用安全————账号冻结与 Session 实时失效

    引言 开篇时说些题外话,最近刚刚被公司CY,不过很快找到了下家,也同时拿到了三家公司的Offer.一周面试下来,总体感觉面试题少了,不过多了上机程序题.新公司是做外包,不过相比于上一家公司,也算是因祸 ...

  3. C#发布网站在web.config和IIS中设置Session过期时间

    C#发布网站在web.config和IIS中设置Session过期时间 web.config <system.web> <sessionState mode="InProc ...

  4. 大型Web 网站 Asp.net Session过期你怎么办

    在 WEB 系统中, 我们一般会用session来保存一些简单但是却很重要的信息.比如Asp.net中经常会用Session来保存用户登录信息,比如UserID.为了解决 WEB场大家采用了把sess ...

  5. php ajax session失效,PHP中解决ajax请求session过期退出登录问题

    1.session过期,如果直接是url请求,或者用户在打开的系统页面中直接清除缓存及cookie信息,可直接在php的入口文件中调用以下封装的方法,进行session信息判断以及页面的跳转,如: i ...

  6. 深入理解session过期机制

    首先得明白:session的过期时间由两方面决定的;   1存储在客户端的$_COOKIE['PHPSESSID']的过期时间(默认cookie名称为PHPSESSID,可通过php.ini中的ses ...

  7. session过期重新登陆_深入分析Session和Cookie-前端面试题

    在Web发展史中,我们知道浏览器与服务器间采用的是http协议,而这种协议是无状态的,所以这就导致了服务器无法知道是谁在浏览网页,但很明显,一些网页需要知道用户的状态,例如登陆,购物车等. 所以为了解 ...

  8. session过期问题

    php中session过期时间设置及回收机制详解: 修改php中的session过期时间可以修改php配置文件php.ini中的session.gc_maxlifetime即可. 当php每发出一次请 ...

  9. php修改sessiob时间_php中session过期时间设置

    网上很多人给出了解答:修改php配置文件中的session.gc_maxlifetime.如果想了解更多session回收机制,继续阅读.(本文环境php5.2) 概述:每一次php请求,会有1/10 ...

  10. cookielifetime php_php中实现精确设置session过期时间的方法

    大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session. ...

最新文章

  1. django博客项目8:文章详情页
  2. Sql Server 连接池
  3. [转载]婚姻不只是娶一个女人那么简单
  4. vue中textarea标签自适应高度
  5. 孔雀东南飞用mysql存储_PowerDesigner使用建议(完整版) 用实体关系图进行数据库建模...
  6. Python模拟Linux的Crontab, 写个任务计划需求
  7. python3.6 websocket异步高并发_在Python3.6上的websocket客户端中侦听传入消息时出现问题...
  8. 智能水位检测系统proteus_浅谈智能视觉检测系统的6大优点
  9. 通用数据链接(UDL)的用法
  10. Java中的几种设计模式:创建型模式,结构型模式
  11. 用链表写的一个通讯录
  12. 自定义函数求两个整数的绝对差值及排序
  13. 我发现微信、知乎、B站,居然都暗藏彩蛋!
  14. 阿里云大数据开发一面面经,已过,面试题已配答案
  15. Windows下UI自动化工具Inspect
  16. 在智慧城市建设中 计算机模拟是一个强大的工具
  17. Anuglar8集成高德地图
  18. 循迹智能小车c语言主程序,智能小车循迹、避障、红外遥控C语言代码
  19. DPC创始人Bard:DPC公链基于dpos算法开发的一条支付公链
  20. C# 获取移动硬盘和U盘信息

热门文章

  1. Kafka权威指南,Kafka生产者
  2. python参考手册下载_python3.8.4官方中文文档 API手册 PDF 高质量版
  3. sql 获取当前之后某天的日期
  4. Gerbview(高级pcb看图软件)官方正式版V9.20 | pcb文件怎么打开 | 含pdf转cad转换器和gerbview使用教程
  5. Iar工程调试使用教程
  6. 实训-利用HTML+CSS制作某米官网首页
  7. soapui 测试webservice
  8. SOAPUI 安装及破解
  9. java如何进行传感器数据传输_使用Wio Terminal通过HTTP请求获取并展示传感器实时数据...
  10. 神经网络的发展与应用