会话对象之Session一篇搞定
1、会话对象的简述
用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。在会话对象过程中,存在两个重要的技术:
- Cookie
Cookie翻译成中文是小甜点,小零食的意思,存在于客户端,其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来后,当下一次再访问服务器时把Cookie再发送给服务器。
链接: 会话对象之Cookie一篇搞定. - Session
Session是存在于服务器,服务器内存在一个session池,里面存放了sessionID,在运行时可以为每一个用户的浏览器创建一个其独享的session对象(sessionId),是域对象之一,它的范围是在一个会话范围内有效。
2、Session概述
-
Session作用
session也是域对象之一,它的范围是在一个会话范围内有效。session既然是域对象,那么当然就要有getAttribute()和setAttribute()系列方法了。
在一个会话内共享一个session对象,所以session中可以保存一个会话内的数据。例如当前用户的信息。 -
Session原理
浏览器第一次请求时,没有与之匹配的SessionId,当请求到达服务器后,服务器会创建一个匹配且唯一的SessionId,在请求返回浏览器的时候,会将SessionId一起返回。
浏览器二次请求时,会带着自身的SessionId发送至浏览器,浏览器发现存在SessionId,就会从Session池中获取对应的Session,用来存放会话信息,同时返回浏览器时会带着sessionId -
session失效的主要原因
①使用了session.invalidate()把session注销了;
②session超时 -
概括seesion和cookie的主要区别
①session存在于服务器,cookie存在于客户端;
②session的运行依赖sessionId,而sessionId的传递依赖cookie。当浏览器将cookie禁用后,session也会失效;
③用户验证这种场合一般会用 session 因此,维持一个会话的核心就是客户端的唯一标识,即 session id
④session 默认被存在在服务器的一个文件里(不是内存)