目录
点睛
1 会话
用户打开一个浏览器,点击了很多超链接,访问了多个web资源,关闭浏览器,这个过程可以称之为会话。
2 有状态会话
举个例子,一个同学来过教室,下次再来教室,我们会知道这个同学,曾经来过,称之为有状态会话。
3 一个网站,怎样证明你来过?
服务端给客户端一个信件,客户端下次访问服务端带上信件就可以了,这个信件就是cookie。
服务端登记你来过了,下次你来的时候我来匹配你,这个登记就是session。
4 保存会话的两种技术
cookie:客户端技术,通过响应,请求来实现。
session:服务端技术,利用这个技术,可以保存用户的会话信息。我们可以把信息或者数据放在Session中。
5 常见场景
网站登录之后,你下次不用再登录了,第二次访问直接就上去了。
6 session和cookie的理解
session被称为会话,不同于TCP/IP协议,HTTP协议是一种无状态的协议,也就是说,当一个客户端向服务器发出请求,服务器接收请求,并返回响应,这样一来一回之后,这个连接就结束了,服务器并不保存任何相关信息。
为了弥补这个缺陷,HTTP协议提出了session的概念。通过session,在Web页面进行跳转时,可以保存用户的状态信息,比如,在购物网站的不同商品页面跳转时,网站并不会让用户重复登录,因为用户的会话一致保存着,直到用户关闭浏览器。
但是,如果客户端长时间不向服务器发出请求,那么这个会话对象也会自动销毁,这个时间取决于服务器的设置,对于Tomcat来说,这个默认值是30分钟。当然这个值也可以通过程序修改。
session是客户端保留在服务端的信息。而服务端为了区分不同的客户端,用户都会自动为其分配一个session id的数据。
有一个Cookie是由服务器自动设置到客户端上的,自动设置到客户端上的内容实际上就是session id。
用户第一次访问服务器的时候,不会发送JSESSIONID数据,因为此时还没设置Cookie在客户端。当第二次访问的时候,因为之前已经设置了Cookie数据,所以之后就可以通过JSESSIONID进行比较,从而确定每一个用户是否是第一次访问。
session属性范围的特征在于,不管是客户端还是服务器端跳转,所设置的内容都会被保留,除非浏览器关闭。
Cookie关键点说明
1 从请求中拿到cookie
2 从服务器响应给客户端cookie
3 cookie关键API
Cookie[] cookies = req.getCookies(); // 获得cookie
cookie.getName(); // 获得cookie的key
cookie.getValue() // 获得cookie的value
resp.addCookie(cookie); // 响应给客户端一个cookie
new Cookie("lastLoginTime", System.currentTimeMillis() + ""); // 创建一个cookie
cookie.setMaxAge(24 * 60 * 60); // 设置cookie的过期时间
4 cookie一般会保存在本地的用户目录appdata下

最低0.47元/天 解锁文章
1545

被折叠的 条评论
为什么被折叠?



