我以前不知道的Session

之前只知道Session是服务器与客户端的一个会话,有默认过期时间,是服务端的技术,与之对应的是Cookie技术,是客户端技术。
下面的几点是之前不知道的:
1.Session是什么时候创建的?
2.SessionId的组成?
3.Session存储在哪里?
回答上面的问题:
1.在java中,Session是在调用HttpServletRequest实例的getSession()时创建的【不同语言会有不同时机的创建】
2.Session创建的时候服务器为其生成了一个唯一的SessionId,在这个Session销毁之前,同一个浏览器在多次请求中,因为SessionId时同一个,所以Session一直都是同一个。这个SessionId会被以Cookie的形式写到浏览器端的一个文本文件中,然后这个SessionId的组成是:随机数+时间+JVMId。
3.Session的存储:Session默认是存储在服务器的内存中,但是也可以使用其它的存储形式,比如持久化到数据库【sql和nosql】中,文件中,还有其他的方式实现分布式的Session。当Session过期时,或被删除时,或程序关闭,Session的生命就结束了。
注:
浏览器关闭并不会删除Session,除非在代码中删除,或者超时,或程序被关闭,或服务器挂了。

猜你喜欢

转载自blog.csdn.net/weixin_41539756/article/details/95047601