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

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 更安全;
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容