Cookie
什么是Cookie
Cookie是一种存储在用户计算机上的小型文本文件,用于追踪和存储关于用户在网站上的活动信息。它通常由网站服务器发送给用户的浏览器,然后由浏览器存储。每当用户发送请求时,浏览器会将相应的Cookie发送回服务器,从而提供有关用户的信息。
Cookie的优点包括:
- 个性化体验:Cookie可以用于存储用户的个人偏好和设置,以提供个性化的用户体验。
- 会话管理:Cookie可以跟踪用户的会话状态,使网站能够记住用户在同一次会话中的操作和活动,如购物车中的商品。
- 用户跟踪:Cookie可以用于追踪用户在网站上的活动,如浏览历史和点击行为,以便为用户提供相关的推荐和广告。
然而,Cookie也有一些缺点:
- 隐私问题:Cookie存储在用户的计算机上,可能包含个人信息。尽管大多数Cookie是匿名的,但一些Cookie可以被用于跟踪用户的在线行为,引发隐私担忧。
- 安全风险:恶意攻击者可以通过盗取Cookie来获取用户的身份信息或进行其他类型的攻击。
- 浏览器限制:某些浏览器可能限制或禁用Cookie,从而影响网站的功能和用户体验。
Cookie常见方法
Session
什么是Session
Session是一种在服务器端存储用户会话信息的机制。通常,在用户访问网站时,服务器会创建一个唯一的会话ID,并将该ID存储在用户的浏览器中的Cookie中。服务器端根据这个会话ID来存储和检索与用户会话相关的数据。
Session的优点包括:
- 安全性:与Cookie相比,Session存储在服务器端,用户无法直接修改或访问存储在Session中的数据,因此更安全。
- 灵活性:Session可以存储更多的数据,并且不受Cookie的大小限制。
- 隐私性:Session不直接存储在用户计算机上,可以更好地保护用户隐私。
然而,Session也有一些缺点:
- 占用服务器资源:由于Session数据存储在服务器端,服务器需要为每个用户维护会话数据,这可能占用大量的服务器资源。
- 扩展性:当用户数量增多时,服务器需要处理更多的会话数据,可能导致性能下降或需要增加服务器负载均衡的管理。
- 跨服务器问题:如果使用负载均衡技术将请求分发到多个服务器,那么每个服务器上的会话数据可能不同步,需要额外的处理来确保会话一致性。
Session常用方法
判断是否是新创建的Session
删除Session节点信息
手动和配置文件设置Session会话失效
一、手动删除
二、web.xml配置文件设置ssion会话失效
Session数据的传入和读取
一、传入数据
传入数据用Session.setAttribute方法
1、传入数据
通过session对象传入节点信息
session.setAttribute("name","张三");
我们现在将数据传入了,将来我们还可以直接的对数据进行的读取操作
2、传入对象数据
1、首先创建一个标准的JavaBean
(2)将对象信息传入到Session节点中
二、读取读取单一数据、读取对象数据
1、读取数据
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
//首先得到Session对象
HttpSession session = req.getSession();//通过session得到传入节点的信息
String name = (String) session.getAttribute("name");
System.out.println(name);
控制台打印结果:
2、读取对象数据
(1)创建一个对象的JavaBean
(2)获取对象的数据
(3)控制台打印结果
Cookie和Session区别
区别:
Cookie就是相当于浏览器向服务器发出请求时,浏览器响应个给浏览器的一个工作证,那么下一次浏览器再请求这个服务器的时候,就会带着这个出入证(其中包含了一些字符串信息)
Session就是浏览器请求服务器后,浏览会返回给浏览器一个独一无二的SessionId,下一次浏览器再请求服务器的时候,就可以拿着这个id获取到服务器中存的Session信息
Cookie信息是保存在浏览器本地的,而Session信息是保存在服务器上
请求流程图:
至此,关于Cookie和Session的介绍已经完毕,后续还会持续更新,敬请期待!