服务端的session用于保存一次对话过程,那么服务端的session数据再什么时候会被清空?
我把浏览器关掉的话,它会清空么?
服务端怎么知道我的浏览器关掉了呢?
cookie的有效期是多少?
也是可以指定生存时长的么?
=================================================================================
此外,书上看到一句话:“若浏览器不支持使用Cookie,或者浏览器设置为不接受Cookie,那么将不能使用Session”,session和cookie是相互独立的吧?为什么cookie的禁用会影响session??不理解。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
按问号顺序
超时清空、服务器端语言层面unset清空、删除服务器端session文件清空等
不会,但是cookie没了,你存在本地cookie中的session_id也没有了,服务器端没有session_id就找不到session文件,其实session文件还是要等超时以后清空
服务器端不知道,所以要等设置的session超时时间到了以后会自动清空
你可以设置,不设置的话会话结束就清空
就是cookie超时时间
相互独立
请看第二个答案
可以百度一下Session的生命周期。
服务器会把
长时间没有活动的Session从服务器内存中清除,此时Session便失效。比如Tomcat中Session的默认失效时间为20分钟。cookie当然可以指定有效期
虽然Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session依据该Cookie来识别是否为同一用户。
比如你去吃饭,第一次带着饭卡去吃饭,很顺利。第二次你不带饭卡说你就是上次带着饭卡过来吃饭的谁谁谁,你试试老板让不让你吃。