- 浏览器第一次访问某站点时,会在对应服务器为该站点生成一个session。
- session保存在服务端(一般保存在文件或数据库中),sessionid也会被保存在客户端(一般在Cookie中)。当客户端再次访问服务器时会携带sessionid(包含在cookie里),这样就可以再次使用该session了。
- session的销毁只能在服务器端调用某种方法或超时自动销毁。
- 关闭浏览器无法销毁session。
- session与cookie:
(1)HTTP协议是无状态协议,为实现HTTP链接保持,引入了2种技术,分别是cookie和session。
(2)cookie是客户端的解决方案。简单说,cookie是浏览器访问服务器时,由服务器生成的并返回给浏览器的一些信息;cookie保存在客户端;服务器再次接收到来自浏览器的请求后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容,比如避免频繁登录功能一般使用的就是cookie技术。
(3)session是服务端的解决方案。简单说,session是浏览器访问服务器时,由服务器生成的一些信息;session保存在服务端;服务器再发给客户端cookie时,会将sessionid存放在其中,这样,当下次客户端再携带cookie访问服务器时,就能使用存在服务端的该session了。
(4)session的实现是依赖于cookie的。服务端执行session机制时会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie。
关于session的详细内容,推荐几个链接:
1.阿里面试题-------------session是怎么实现的?存储在哪里? - 井底之蛙的博客 - CSDN博客 https://blog.csdn.net/agfagafsdfas/article/details/22531331
2.session机制详解以及session的相关应用 - 夏天的森林 - 博客园 http://www.cnblogs.com/sharpxiajun/p/3395607.html