Cookie和Session到底有什么不一样

1.Cookie和Session分别是干嘛的

1.1 Cookie

概念:Cookie是某网站的服务器发送到计算机浏览器的一种存储在本地的小型文本文件。这个文件里面存放的是用户在该网站上的行为信息。当用户再次访问同一网站后,浏览器在向服务器发送Http请求的同时,请求信息的请求头中附加了Cookie的信息,以便服务器可以根据这些信息进行识别和定制化操作。

作用:网站通常通过Cookie实现以下功能

  1. 会话管理:Cookie可以记录用户的登录状态,使用户在不同页面都可以保持登录状态;
  2. 用户个性化设置:存储用户的偏好设置,例如主题颜色,语言选择等等;
  3. 网站中购物车和电子商务:Cookie可以保存用户的购物车信息,商品信息和浏览历史记录;

组成部分:Cookie通常由以下五个重要部分组成

  1. 名称:每个Cookie都有一个名称作为标识符,用于在服务器和客户端之间交互使用;
  2. 值:就是Cookie存储的具体数据,如文本,数字,二进制等;
  3. 域名:定义了可以访问该Cookie的域名,只有符合定义的域名的请求才会携带上该Cookie;
  4. 过期时间:就是Cookie的有效期,过期后,浏览器将不再发送该Cookie;
  5. 路径:定义了哪些URL可以发送该Cookie,只有与指定路径匹配的请求才会携带该Cookie;
1.2Session

概念:Session是在服务端保存信息的一种数据结构,主要用于保存用户的会话信息(session)。会话是指用户进入一个网站后,从开始到结束所经历的请求和响应。

作用:Session在Web开发中有重要的作用

  1. 用户会话管理:Session可以用户追踪和管理用户的会话信息。当用户登录网站时,服务器会创建一个唯一的Session ID,并将相关的用户信息存储在该Session中。通过Session ID,服务器可以识别用户并在多次请求之间保持用户的登录状态,实现会话的持久化。
  2. 用户身份认证:Session常用于验证用户的身份和权限。通过在用户登录验证成功后,在Session中存储用户的认证状态或权限信息,可以方便地判断用户是否已经登录或拥有特定的访问权限。这样就能实现对某些页面或资源的访问控制。
  3. 数据共享:Session可以在多个页面和请求之间共享数据。例如,当用户在购物网站上选择商品加入购物车时,将这些商品信息存储在Session中,不需要每次请求都进行传递。这样可以更方便地在不同页面之间共享数据,提升用户体验。

  4. 缓存数据:有些计算量较大或者频繁使用的数据,可以将其存储在Session中,以减轻服务器的负载和提高性能。这样可以避免重复计算或频繁查询数据库,提高响应速度。

组成:

  1. Session ID:每个会话都有一个唯一的Session ID,用于识别不同的会话。通常,Session ID以字符串形式表示,可以通过Cookie、URL重写或隐藏表单域传递到服务器端。

  2. 会话数据:会话数据是存储在服务器端的与会话相关的信息。这些数据可以是用户的身份信息、权限信息、用户输入的表单数据等。根据具体需求,会话数据可以保存在内存、数据库或其他存储介质中。

  3. 会话状态管理:会话状态管理用于跟踪会话的生命周期和状态。例如,会话的创建、销毁、过期时间等。服务器端需要维护相关的机制来管理会话状态,保证会话的有效性和安全性。

  4. 存储介质:Session的数据存储可以采用多种方式。常见的存储介质包括内存、数据库、文件系统等。选择合适的存储介质取决于应用程序的规模、性能需求和安全要求。

  5. 会话管理器:会话管理器是服务器端用于管理会话的组件或模块。它负责生成Session ID、创建和销毁会话、存储和读取会话数据等操作。会话管理器也可以通过设置会话过期时间、处理并发访问等来控制会话的行为。

2.Cookie和Session的区别 

  1. 存储位置:Cookie是存储在客户端(浏览器)中的小型文本文件,而Session是存储在服务器端的数据结构。

  2. 数据存储方式:Cookie将数据以键值对的形式存储在用户的浏览器中,可以持久保存在客户端,即使用户关闭浏览器后再次打开也能继续使用;而Session将数据存储在服务器上,并为每个用户生成唯一的Session ID,该ID通过Cookie传递给客户端。

  3. 安全性:由于Cookie存储在客户端,因此可以被用户篡改或者被其他恶意程序访问,所以需要进行加密和验证保证安全性;而Session存储在服务器端,用户无法直接修改其中的数据,相对更安全。

  4. 存储容量:Cookie的存储容量有限,一般为几KB到几十KB,而Session可以存储较大的数据,受服务器硬件和配置的限制。

  5. 状态跟踪方式:Cookie通过在HTTP请求头中携带Cookie信息来跟踪用户状态,每次请求都会携带Cookie;而Session使用Session ID来跟踪用户状态,通常是将Session ID存储在Cookie中,也可以通过URL重写或者隐藏表单域传递。

综上,Cookie适合存储少量且不敏感的数据,可以实现跨页面的状态保持;而Session适合存储较多或敏感的数据,能够实现用户登录状态的保持和数据的安全管理。两者通常会结合使用,在Web应用中通过Cookie存储Session ID来跟踪用户状态。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值