JavaWeb学习笔记 (七) Cookie与Session

一. Cookie

1.什么是Cookie

饼干,其实是一份小数据,在服务器生成,然后给客户端,并且存放在客户端上

2.应用场景

(1) 自动登陆 会记住我们的账号密码
(2) 浏览记录
(3) 购物车

3.为什么要有Cookie

(1)http请求是无状态协议,其实就是在客户端在访问服务器的时候,服务器根本不知道,这个客户端之前有没有访问过自己,即客户端的每次请求都是独立的。
(2)使用户有更好的体验
(3)对公司来说,可以收集用户的习惯

4.Cookie的简单使用

代码
在这里插入图片描述

第一次请求的请求头和响应头
在这里插入图片描述
添加Cookie后,在响应头里多了set-cookie这条消息,此时的请求头中没有cookie数据

第二次请求的请求头和响应头
在这里插入图片描述
第二次请求中,请求头中包含cookie数据

由于第一次请求时,客户端没有cookie,代码里此时的cookie数组为空,请求结束后,服务器发送cookie数据给客户端,再次请求时,客户端的请求头中就会携带cookie的数据进行请求,此时cookie数组中就能拿到请求头中cookie携带的数据,打印至控制台。

5.cookie的有效期

默认情况下,关闭浏览器就没有cookie了。
但可以通过cookie.setMaxAge()来设置cookie的有效期。
其中时间以秒为单位,正值代表这个数字过后cookie就会失效;负值代表关闭浏览器就会失效,默认值是-1,0代表立马删除cookie

6.cookie的安全问题

(1) cookie的数据保存在客户端,有安全隐患问题
(2) 客户端存储的cookie数据有限(浏览器总共有300个cookie)

二. Session

1.什么是Session

session是基于Cookie的一种会话机制。为了解决cookie的安全问题,将数据放至服务器端。

2.Session的范围

  • 何时创建

在servlet里面调用以下代码,session创建。
HttpSession sessiom = request.getSession();

  • 何时销毁

session是存放在服务器的内存的一份数据,可以持久化。即使关闭浏览器,seesion依然存在。
(1) 关闭服务器,session销毁
(2) session会话时间过期,一般默认有效期:30分钟

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/85156382
今日推荐