session机制

来源:互联网 发布:nginx 1.8.0 域名和ip 编辑:程序博客网 时间:2024/05/26 09:56

除了cookie外,web应用程序中还经常使用session来记录客户端状态,session是服务器端使用的一种记录客户端状态的机制,使用上比cookie简单,相应的也增加了服务器的存储压力。

什么是session?

session是一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。


如果说cookie机制是通过检查客户身上的“通行证”来确认客户身份的话,那么session机制就是通过检查服务器上的“客户明细表”来确认客户身份,session相当于程序在服务器上建立一份客户档案,客户来访的时候只需要查询客户档案表就可以了。


session生命周期

session保存在服务器端,为了获取更高的存取速度,服务器一般吧session放在内存里,每个用户都会有一个独立的session,如果session内容过于复杂,当大量用户访问服务器时可能会导致内存溢出,因此,session里的信息应该尽量精简。

 session在用户第一次访问服务器色时候自动创建,需要注意只有在访问jsp,servlet等程序时才会创建session,只访问HTMl。IMAGE等静态资源并不会创建session。session生成后,只要用户继续访问,服务器就会更新session的最后访问时间,并维护该session,用户每访问服务器一次,无论是否读写session,服务器都认为该用户的session活跃(active)一次。


session有效期


  由于越来越多的用户访问服务器,session也会越来越多,为了防止内存溢出,服务器会把长时间没有活跃的session从内存删除,这个时间就是session的超时时间,如果超过了超时时间没访问过服务器,session就自动失效了,


session对浏览器的要求


 虽然session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持,这是因为session需要使用cookie来作为识别标志,Http是无状态的,session不能依据http连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的cookie,它的值为该session的id,session依据该cookie来识别是否为同一用户,若浏览器cookie禁用,URL地址重写。

0 0
原创粉丝点击