Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?

这篇具有很好参考价值的文章主要介绍了Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你:
📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等
📗 Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等
📘 JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议, Tomcat, Servlet, Linux, JVM等(正在持续更新)


提示:是正在努力进步的小菜鸟一只,如有大佬发现文章欠佳之处欢迎批评指点~ 废话不多说,直接上干货!

一、Cookie

在 介绍HTTP协议的这篇文章中 已经介绍过了Cookie, 本篇再赘述一遍

1, 什么是 Cookie

Cookie 是浏览器在本地存储用户自定义数据的一种关键机制

如下图所示, Cookie 里有很多键值对(数据可以由程序员自定义), 键值对之间用分号分割, 键和值之间用等号分割, 具体这些键值对表示的含义是什么, 咱不知道, 只有开发这个网站的程序员知道

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?,JavaEE初阶,java,http,Cookie,Session,会话
浏览器作为客户端, 需要向该网站的服务器发送请求来获取资源, 显然服务器是需要存储一些数据的, 而浏览器这边也需要存储一些数据, 比如说用户的登录信息

既然客户端这边要存储数据, 能否直接存在用户的硬盘上? 一定不可以, 不能允许网页操作本机的硬盘, 文件系统, 否则如果被恶意网站植入病毒, 硬盘中的数据都可能受到威胁, 所以浏览器是禁止网页访问硬盘的

Cookie 就是解决这一问题的重要机制, 浏览器允许网页把重要的信息存储在各自网页的 Cookie 中, 同一个网站(主页和子页)共享一份 Cookie


2, Cookie 从哪里来

Cookie (中存储的数据)从服务器来: 第一次登陆一个网站的时候, 服务器会返回一个响应, 在这个响应报文中, 通过 Set-Cookie 把需要存储的值返回给客户端, 客户端进行存储

比如在我的 gitee 主页上可以查看已经存储的 Cookie, 方便观察我们把这些都删除

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?,JavaEE初阶,java,http,Cookie,Session,会话
Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?,JavaEE初阶,java,http,Cookie,Session,会话

删除 Cookie 之后, 其中存储的有关用户登录的信息就没了, 有些网站可能会主动退出登录, 或者自动重新登陆, 通过 fiddler 可以抓包看到登陆时的响应报文中确实有 Set-Cookie 字段

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?,JavaEE初阶,java,http,Cookie,Session,会话

里面包含了一个 gitee-session-n 这样的属性, 属性值是一串很长的加密之后的信息. 这个信息就是用户当前登陆的身份标识. 也称为 “令牌(token)”

3, Cookie 到哪里去

Cookie 要回到服务器, 当客户端收到 Set-Cookie 中的数据后, 后续每次请求网页的时候, 给服务器发送的请求报文中都有一个 Cookie 字段, 相当于把 Cookie 里面的值再带给服务器

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?,JavaEE初阶,java,http,Cookie,Session,会话

请求你中的 Cookie 字段也包含了一个 gitee-session-n 属性, 里面的值和刚才服务器返回的值相同, 后续只要访问 gitee 这个网站, 就会一直带着这个令牌, 直到令牌过期/下次重新登陆

4, Cookie 有什么用

Cookie 是一浏览器客户端在本地存储用户自定义数据的一种机制, 比如存储用户的身份信息, 让服务器通过 Cookie 来识别用户身份


二、Session

1, 什么是 Session

Cookie 中可以存储着标识了用户身份的"令牌", 访问网站时, 客户端携带着当前用户的"身份令牌", Session (会话)就是服务器端用来记录令牌, 以及令牌对应着的该用户的详细身份信息

服务器如何存储用户的"身份令牌", 如何存储用户的身份信息, 存储什么样的身份信息, 都是使用 Session 做的, Session 通常和 Cookie 配合使用


2, 理解 Session

服务器同一时刻收到的请求是很多的. 服务器需要清除的区分清楚每个请求是从属于哪个用户, 就需要在服务器这边记录每个用户令牌以及用户的信息的对应关系

会话的本质就是一个 “哈希表”, 存储了一些键值对结构. key 就是 token/sessionId, value 就是用户信息(用户信息可以根据需求灵活设计)

sessionId 是由服务器生成的一个 “唯一性字符串”, 从 session 机制的角度来看, 这个唯一性字符串称为 “sessionId”. 但是站在整个登录流程中看待, 也可以把这个唯一性字符串称为 “token”
sessionId 和 token 就可以理解成是同一个东西的不同叫法(不同视角的叫法).

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?,JavaEE初阶,java,http,Cookie,Session,会话


三、Cookie 和 Session 的区别

  • Cookie 是客户端的机制. Session 是服务器端的机制.
  • Cookie 和 Session 经常会在一起配合使用. 但是不是必须配合
    • Cookie 完全可以保存其他数据在客户端. 不一定是用户身份信息, 也不一定是token / sessionId
    • Session 中的 token / sessionId 也不是一定通过 Cookie / Set-Cookie 传递.

总结

以上就是本篇的所有内容了, Cookie 是客户端(浏览器)在本地存储数据的机制, Session 是服务器用来存储用户身份信息的机制

如果本篇对你有帮助,请点赞收藏支持一下,小手一抖就是对作者莫大的鼓励啦😋😋😋~


上山总比下山辛苦
下篇文章见

Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?,JavaEE初阶,java,http,Cookie,Session,会话
文章来源地址https://www.toymoban.com/news/detail-666790.html

到了这里,关于Java【HTTP】什么是 Cookie 和 Session? 如何理解这两种机制的区别和作用?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快速理解基本的cookie、session 和 redis

    1、什么是Cookie 1、Cookie实际上是一小段的文本信息, 是一种key=value形式的字符串 。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。 2、当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一

    2024年02月03日
    浏览(41)
  • HTTP之Session、Cookie 与 Application

    cookie、seesion、application三个都会缓存我们用户状态的数据,使得我们在浏览器访问网站时可以更快速的获取到信息。 主要原因在于HTTP协议是无状态的,我们每次访问服务器,对于服务器来说都是一个单独的请求,没有上下文的联系。以淘宝登录的例子来说明: 假如我们输入

    2024年02月14日
    浏览(51)
  • 经典面试题:理解Cookie和Session之间的区别

    对于Cookie来说,它是HTTP报文header头部中非常重要的一个属性,是浏览器提供给网页访问本地数据用的 💬 那此时就有同学疑惑了,难道浏览器可以随机地访问本地磁盘吗?这不是很危险? 这确实很危险,于是就规定了网页在打开的时候无法去访问本地的磁盘,否则用户打开一

    2024年02月05日
    浏览(39)
  • 基础网络详解4--HTTP Cookie&&Session 思考

        一台多用户浏览器发起了三笔请求,将某款产品放入购物车中,A一次,选择了篮球;B两次,第一次选了足球,第二次选了钢笔。如何确认选择篮球、足球、钢笔的请求属于谁呢?如果不确认属于谁,请求将没有意义。     如果每次请求都带一个用户标识,比如

    2024年02月11日
    浏览(39)
  • 自动驾驶解决方案有 adaptive autosar 与 ROS2+DDS这两种各有什么优势劣势?

    adaptive autosar 是一种面向汽车行业的标准软件架构,它提供了一系列基础平台组件和面向服务的协议,如 SOME/IP、DDS 等。它可以支持不同的操作系统,如 Yocto Linux 或其他 RTOS。它从一开始就考虑了功能安全和信息安全的要求,适合用于 高安全性完整性的应用 ,如 ADAS、AD 等。

    2024年02月09日
    浏览(51)
  • 会话跟踪技术学习笔记(Cookie+Session)+ HTTP学习笔记

    1.1 Cookie 1. Cookie:是一种客户端会话技术,数据会被保存在客户端,Cookie会携带数据访问服务器,用以完成一次会话内多次请求间的数据共享 2. 过程:浏览器(客户端)先向服务端发送请求,服务端会发送一个Cookie给客户端,在此后同一次会话中,每次客户端都会将Cookie发送

    2024年02月10日
    浏览(47)
  • 【计算机网络之HTTP篇】Cookie与Session的区别

    目录 Cookie 原理 缺点 Session 原理 区别 cookie是浏览器在本地存储数据的一种机制。         当浏览器向服务器第一次发送请求时,服务器会向浏览器返回一个Cookie,此时 cookie记录着浏览器访问服务器的用户登录状态。         后续浏览器再次访问服务器时,发送请求时也

    2024年02月08日
    浏览(46)
  • http 请求报文响应报文的格式以及Token cookie session 区别

    HTTP 请求报文和响应报文的格式如下: HTTP 请求报文格式: 方法 : 请求方法,例如 GET、POST、PUT、DELETE 等。 路径 : 请求的路径,表示需要访问的资源。 协议版本 : 使用的协议版本,通常是 HTTP/1.1 或 HTTP/2。 请求头部字段:包含了关于请求的附加信息,每个字段由字段名和对

    2024年02月16日
    浏览(54)
  • 深入理解 Session、Cookie 和 Token:网络安全和身份验证的重要概念

    在当今数字化的世界中,网络安全和身份验证是至关重要的议题。为了实现这些目标,我们常常使用诸如 Session、Cookie 和 Token 等概念。这些概念在 Web 开发、网络通信和安全领域发挥着重要作用。在本文中,我们将深入探讨这些概念的定义、作用以及它们在实际应用中的用途

    2024年03月22日
    浏览(42)
  • 跨越HTTP无状态边界:Cookie与Session在Django中的实战应用

    本文深入探索了Django中的Cookie和Session,解析了如何应对HTTP协议的无状态性问题,说明其基础概念,分析工作原理,并讨论何时应选择使用Cookie或Session。文章进阶部分,提出高效管理Cookie和Session,以及如何利用它们进行用户身份验证。 HTTP,即超文本传输协议,是一种应用层

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包