Cookie and Session 学习笔记

1. 会话跟踪技术

**会话:**用户用浏览器访问web服务器的资源的时候会建立会话,在一次会话中可以包含多次会话的请求与响应
会话跟踪技术:服务器维护浏览器状态方法,具体来说是服务器识别多次请求是否来自于同一个浏览器,并在会话的多次请求间共享数据
因为HTTP协议是无状态的,所以浏览器在向服务器请求的时候服务器都会将其是为新的请求,所以我们需要Cookie和Session

2. Cookie

将数据存到客户端浏览器中

2.1 什么是Cookie

客户端会话跟踪技术,将数据保存到了客户端,每次请求都携带Cookie数据来进行访问服务器,这样服务器就会知道可以共享数据
在这里插入图片描述

2.2 Cookie的使用(写个Cookie demo)

1.创建Cookie对象

Cookie cookie  = new Cookie("key","value");

2.发送Cookie

respoonse.addCookie(cookie);

3.获取Cookie

Cookie cookies = request.getCookies;

在这里插入图片描述

实现了在一次会话的多次次请求中数据共享

2.3 Cookie的原理

在这里插入图片描述

Cookie的实现基于HTTP协议,发现了是cookie数据以后,就带了一个响应头,这样浏览器就知道是什么用户,然后浏览器就发出请求,带有请求头,然后服务器就获取了请求用户,然后用request对象来获取对应cookie对象的数据
响应头:set-cookie:
请求头:cooke:浏览器用的
访问的时候就会调出访问头
将所有的cookie全都携带到访问的资源里面

2.4 Cookie的使用细节

2.4.1 Cookie的存活时间

默认情况Cookie存在浏览器内存中,浏览器关闭浏览器内存释放时,Cookie就会被销毁掉。
Cookie的持久化:setMaxAge(int seconds)

//存储七天
setMaxAge(60*60*24*7)

正数:Cookie写入浏览器所在电脑的硬盘,持久化存储,到期才删除。
负数:默认值,关闭以后Cookie就删掉
0:删除对应cookie
这就是我们可以保存密码的原因

2.4.2 Cookie存储中文

Cookie是不支持中文的,需要使用URL编码将汉字转为其他字符才可以。

//URL编码
value.URLEncoder.encode(value,"UTF-8");
//URL解码
value = URLDecoder.decode(value);

3. Session

服务端回话跟踪技术: 目的是将数据保存在服务端。
在这里插入图片描述
JavaEE提供了HttpSession接口用以实现一次会话间的多次请求间数据共享。

3.1Session的基本使用

1.获取Session对象

HttpSession session = request.getSession();

Session获取数据

连对象都可以获取作为数据存储

session.setAttribute(String name ,Object o)

可以根据key来获取值
可以根据key来删除这个键值对

3.2 Session的原理

在这里插入图片描述

Session是基于Cookie来实现的
怎么实现的?保证每次返回的都是同一个session对象
在第一次请求的时候,给了Session对象一个唯一标识id,tomcat发用了session以后,然后这个id作为cookie被发到了客户端,然后客户端第二次请求的时候就带上了这个请求头+id,然后服务器就会check是否有这个id所标识的session对象,如果有就直接返回该对象

3.3 Session的细节

3.3.1 Session的钝化与活化

服务器正常关闭与重启Seession数据不会丢失。
钝化:服务器正常关闭,Tomcat会自动将Session数据写入硬盘文件,序列化
活化:服务器启动的时候,Tomcat会将那个序列化的文件会把文件加载到Session里

3.3.2 Session销毁

默认无操作30min销毁,在web.xml里面可以配置

<session-config>
	<session-timeout>30</session-timeout>
</session-congfig>

比如30分钟没有操作要求重新登录了
session.invalidate()方法,一般用于用户的注销登出。

4. Session和Cookie的区别

同:
都是完成一次会话内多次请求间共享数据的会话跟踪
异:
1.存储位置:Cookie在客户端,Seesion在服务端
2.安全性:Cookie不安全,Session安全
3.数据大小:Cookie限制3kB,Session不限制
4.存储时间:Cookie长期存储,而Session存的时间较短,默认30min
5.对服务器性能的影响:Cookie不占服务器资源,而Session要占用服务器资源
使用场景:
1.无需登录的购物车——Cookie
2.密码自动填充—Cookie
3.登录成功以后用户信息——Session
4.验证码——Session

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值