1、什么是 session
session 是浏览器和服务器会话过程中,服务器分配的一块储存空间。服务器默认为浏览器在cookie中设置 sessionid,浏览器在向服务器央求过程中传输 cookie 包含 sessionid ,服务器根据 sessionid 获取出会话中存储的信息。
由于 http 协议是无情况的,即 http 央求一次联接一次,数据传输完毕,联接就断开了,下次访问需求从头联接。A8站源码交易平台
通过 cookie 中的 sessionid 字段和服务器端的 session 相关,可以承认会话的身份信息。
2、session 比 cookie 更安全
用户信息可以通过加密存储到 cookie,但是这样做的安全性很差,浏览器的 cookie 的简单被其他程序获取和篡改。运用 session 的意义在于 session 存储在服务器,相对安全性更高。
3、session 的生命周期
创建
浏览器访问服务器的 servlet(jsp)时,服务器会自动创建 session,并把 sessionid 通过 cookie 返回到浏览器。
servlet 规范中,通过 request.getSession(true) 可以强制创建 session。
销毁
服务器会默许给 session 一个过期时间,即从该 session 的会话在有用时间内没有再被访问就会被设置过超时,需求从头建立会话。
如 tomcat 的默许会话超时时间为30分钟。A8站源码交易平台
会话超时时间是可以通过配置文件设置,如批改 web.xml 、server.xml 文件
调用 servlet api 手动设置 session 超时时间
调用 servlet api 手动销毁 session
4、注意事项
)假设浏览器禁用 cookie,默许情况下 session 无法收效。可以通过url重载带着 sessionid 参数、把 sessionid 设置为 http 协议 header 设为其他自定义字段中,央求中一向带着。
)当用户量很大、 session 的失效时间很长,需求留心 session 的查找和存储对服务器功用的影响。
)web 容器可以设置 session 的钝化(从内存耐久化到文件) 和 活化(从文件读到内存),前进功用。