JAVAWeb——Cookie和Session的区别

一、Cookie详解

(1)什么是Cookie

Cookie是一种在浏览器端存储的小型文本文件,是由网站向客户端(通常是浏览器)发送的数据。它通常用于识别用户以及存储用户的偏好和行为等信息。在用户访问同一网站时,服务器可以读取这些cookie,以便在用户下次访问该网站时提供个性化的体验,如自动填充表单、保持登录状态、跟踪用户行为等。

(2)Cookie的创建方式和获取方式

创建方式

//创建一个Cookie保存username
Cookie  cookie = new Cookie("username","haoren");
//设置Cookie的生命周期(默认值是负数存在内存中;正数存在于外存中时间结束后删除;0删除Cookie)
cookie.setMaxAge(3600);
//设置Cookie的作用域
cookie.setPath("/");
//写出Cookie
response.addCookie(cookie);

 获取方式

Cookie[] cookies = request.getCookies();

(2)Cookie的生命周期

Cookie的生命周期可以分成以下几个部分:

1. 创建Cookie:当浏览器访问服务器时,服务器发送Cookie给浏览器。浏览器会将Cookie存储在本地,以备之后使用。

2. 存储Cookie:浏览器将Cookie存储在本地,可以是在内存中或硬盘中。

3. 发送Cookie:当浏览器再次访问同一网站时,浏览器会将该网站的Cookie发送给服务器。

4. Cookie的过期时间:Cookie可以设置一个过期时间,超过该时间Cookie就失效了。如果没有设置过期时间,就是会话Cookie,浏览器关闭后就会失效。

5. 删除Cookie:当用户退出登录或删除Cookie时,Cookie就会被删除。

需要注意的是,Cookie是存储在浏览器中的文本文件,因此Cookie可能会被用户删除或篡改。为了增强Cookie的安全性,可以对Cookie进行加密和签名,以保护Cookie的完整性和机密性。

 二、Session详解

(1)什么是会话

是指用户打开一个浏览器,访问多个Web资源然后关闭浏览器,整个过程称为一次会话

(2)什么是Session

Session是指在Web应用程序中跟踪用户会话状态的机制。当用户访问一个Web应用程序时,应用程序会创建一个Session,这个Session会跟踪用户的请求和响应。在Session中,可以存储一些和用户有关的信息,例如用户的登录状态、购物车信息、浏览记录等。

Session的实现方式通常是在服务端创建一个唯一的Session ID,然后把这个Session ID发送给客户端的浏览器。浏览器在后续的请求中会带上这个Session ID,以便服务端可以找到对应的Session并进行处理。由于Session数据存储在服务器端,所以相对于Cookie来说,Session更加安全,因为客户端无法直接修改Session数据。

 (3)Session什么时候产生

Session可以在以下情况下产生:

  1. 当用户首次访问一个网站时,服务器会在后台自动为该用户创建一个Session,并为该Session分配一个唯一的Session ID。

  2. 当用户提交表单或发起请求时,请求中会包含Session ID,服务器可以通过Session ID来识别和跟踪该用户在应用程序中的状态。

  3. 当用户访问一个网站时,如果之前已经创建过Session,则服务器会自动加载该Session中保存的信息,以便为用户提供个性化的服务。

(4)Session的生命周期

Session默认失效时间30分钟

  在工程中web.xml中修改存活时间

  <session-config>

          <session-timeout>30</session-timeout>

  </session-config>

  默认配置是配置在config下的web.xml 

三、区别 

主要区别如下:

  1. 存储位置:Cookie是在客户端存储的,而Session是在服务器端存储的。

  2. 安全性:由于Cookie存储在客户端,因此Cookie经常被用于存储敏感信息,例如用户的登录信息等。但是Cookie非常容易被篡改,因此安全性相对较低。而Session存储在服务器端,安全性较高。

  3. 存储容量:Cookie的存储容量相对较小,一般在4KB左右。而Session的存储容量相对较大,可以存储更多的数据。

  4. 生命周期:Cookie可以设置生命周期,可以长期存储在客户端,直到过期或被删除。而Session的生命周期默认情况下是会话期间,即用户关闭浏览器时自动销毁。

  5. 访问方式:Cookie可以在客户端被访问和修改。而Session只能在服务器端被访问和修改。

综上所述,Cookie和Session各有优劣,需要根据具体需求选择使用。一般情况下,Cookie用于存储少量的简单信息,例如用户的偏好设置等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值