session 的工作原理 5
1、什么是 session
session 是浏览器和服务器会话过程中,服务器分配的一块储存空间。服务器默认为浏览器在cookie中设置 sessionid,浏览器在向服务器请求过程中传输 cookie 包含 sessionid ,服务器根据 sessionid 获取出会话中存储的信息。
由于 http 协议是无状态的,即 http 请求一次连接一次,数据传输完毕,连接就断开了,下次访问需要重新连接。
通过 cookie 中的 sessionid 字段和服务器端的 session 关联,可以确定会话的身份信息。
2、session 比 cookie 更安全
用户信息可以通过加密存储到 cookie,但是这样做的安全性很差,浏览器的 cookie 的容易被其他程序获取和篡改。使用 session 的意义在于 session 存储在服务器,相对安全性更高。
3、session 的生命周期
创建
销毁
- 1、web.xml 文件 30
- 2、server.xml 文件
- request.getSession().setMaxInactiveInterval(60 * 30);//session 30分钟失效
- request.getSession().invalidate();
浏览器访问服务器的 servlet(jsp)时,服务器会自动创建 session,并把 sessionid 通过 cookie 返回到浏览器。
servlet 规范中,通过 request.getSession(true) 可以强制创建 session。
服务器会默认给 session 一个过期时间,即从该 session 的会话在有效时间内没有再被访问就会被设置过超时,需要重新建立会话。
如 tomcat 的默认会话超时时间为30分钟。
会话超时时间是可以通过配置文件设置,如修改 web.xml 、server.xml 文件
调用 servlet api 手动设置 session 超时时间
调用 servlet api 手动销毁 session
4、注意事项
如果浏览器禁用 cookie,默认情况下 session 无法生效。可以通过url重载携带 sessionid 参数、把 sessionid 设置为 http 协议 header 设为其他自定义字段中,请求中始终携带。
当用户量很大、 session 的失效时间很长,需要注意 session 的查找和存储对服务器性能的影响。
web 容器可以设置 session 的钝化(从内存持久化到文件) 和 活化(从文件读到内存),提高性能。
session:计算机术语
这个是状态保持三大对象之一!
原意是会话,会议的意思!
就是你打开浏览器到关闭浏览器
这期间称为一个会话,也就是一个session,
它是保存在服务器端的.
每当客户端请求页面时,服务器就会自动分配一个ID
来唯一标识这个用户!
所以
这个ID
就是
在客户端和服务器端的连接!
但是一般不要用session来保存大量的数据,因为这样占用服务器端的资源!
希望能够帮助你!
Session一般在服务器上设置了一个30分钟的过期时间,当客户停止活动后自动失效。Session 中保存和检索的信息不能是基本数据类型如 int, double等,而必须是java的相应的对象,如Integer, Double.