Cookie和Session
会话技术:追踪用户访问某个网站时的踪迹(保存用户相关信息)
区别:
1.Cookie将数据保存在浏览器端(用户端),Session将数据保存在服务器端
2.Cookie和Session数据以键值对方式保存
username=admin
3.Cookie的数据只能是字符串数据,Session的数据是Java支持的所有数据类型
4.数据传输
Cookie的数据传输过程
a.服务器端设置数据(使用响应头Set-Cookie保存cookie数据),将Cookie数据传到客户端
b.浏览器接收Cookie数据保存内存或者硬盘上
c.JavaScript读取使用Cookie数据
d.浏览器发起请求时,使用Cookie请求头自动将Cookie数据传输到服务器端
e.服务器端读取使用Cookie数据,然后循环跳转到步骤a
Session的数据传输过程
a.用户第一次访问服务器的时候,由服务器分配一块内存区域用于保存数据,同时分配一个id(sessionid)与该区域绑定,通过sessionid找到相对应的内存区域。
b.服务器端保存数据到session区域
c.服务器端通过Set-Cookie响应头将sessionid传到客户端
d.客户端保存sessionid,再次访问服务器的时候,使用Cookie或请求参数的方式将sessionid传输到服务器端
e.服务器端使用sessionid读取使用会话数据,然后循环跳转到步骤b
5.Cookie的特点
不支持跨域访问(JavaScript)
可以通过将到期时间设置为0删除制定Cookie
到期时间为正数的是持久Cookie
到期时间为负数的是会话Cookie
Session的特点
session失效的两种方式:超过“超时限制”时间、调用invalidate()方法