专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

阿瑟Java (43):cookie 和 session 有什么区别

ins518 2025-04-09 17:00:58 技术文章 21 ℃ 0 评论

PS:创作不易,感谢阅读,希望对读者有所帮助,喜欢的话可以点赞、收藏、关注,作者会持续更新 Java 生态圈常见知识。黑色加粗为重点关注内容!

  • 背景描述
    • 用户登录一个网站时,常常使用 Cookie 和 Session 来实现用户登录状态的保持,以提高用户的体验
  • 实现原理
    • 当服务端第一次收到客户端的请求时,会创建 Session 对象,并生成一个 SessionId,然后将 SessionId 包装到响应头的 Cookie 中,返回给客户端的前端浏览器
    • 浏览器在本地保存 Cookie;
    • 当客户端再次请求服务端时,会带上浏览器本地保存的 Cookie;
    • 服务端再次接受到请求后,获取 Cookie 中的 SessionId,并与之前生成的 SessionId 比较
      • 若发现 SessionId 相同,则认为是同一个用户再次访问,从而实现用户登录状态的保持。
  • Cookie 和 Session 的本质区别
    • Cookie 和 Session 都是基于键值对的字符串;
      • Cookie 相当于明文,Session 类似于密文,由服务端经过编码后的一段无序字符串。
    • 两者都是由服务端生成的;
    • Cookie 保存在客户端浏览器中,而 Session 的 Session_id 保存在 Cookie 中,Session_data 保存在服务端,所以 Session 比 Cookie 更安全;

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表