【JavaWeb】Cookie和Session的使用场景分析与应用

这篇具有很好参考价值的文章主要介绍了【JavaWeb】Cookie和Session的使用场景分析与应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【JavaWeb】Cookie和Session的使用场景分析与应用

 哈喽,大家好~我是你们的老朋友:保护小周ღ  【JavaWeb】Cookie和Session的使用场景分析与应用


Cookie 和 Session 都是网页中常用的状态保持的技术,它们可以帮助网站识别用户身份,保存用户状态等,什么是 Cookie ?什么是 Session ?他们具体是什么?他们有什么区别和联系,本文将为你详细解惑,一起来看看叭~

本期收录于博主的专栏:网络编程_保护小周ღ的博客-CSDN博客

适用于编程初学者,感兴趣的朋友们可以订阅,查看其它 “网络基础知识”。
更多精彩敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* ‘

一、Cookie 简介

Cookie ——  浏览器提供的一种持久化存储的机制。

为什么有浏览器需要给用户提供Cookie 这种持久化存储呢,直接存硬盘不好吗,换而言之 Cookie机制到底是个啥???

早期浏览器为了避免用户访问恶意网站,进而网站内部的恶意代码可能会对用户设备上的资源造成影响,例如:植入病毒,爬取用户资源,删除用户资源…… 这些情况都可以通过网站代码对设备进行操作,联想一下网站可以上传文件,图片等资源,这是我们主动的行为,但是有些行为可以由代码自动执行。浏览器——默认不允许网站随便访问用户设备上的资源

针对上述情况,网站又需要浏览器能够存储一些关键信息,用于客户端与服务器进行交互,提高用户体验度。Cookie 主要存储的数据就是 用户的账号和密码,当用户登录进入网站后,网站服务器会先对账户进行校验,校验无误后将账户信息写回到浏览器,浏览器就会将账户信息存在 Cookie 中,当用户点击网页上的某些操作向网站的服务器发出请求时,浏览器会将 Cookie 中用户信息也附带着写入请求中,例如:张三整个用户登录了百度的网站,我们一般是游客模式,登录后用百度搜索引擎搜索了“美女”,此时服务器就可以根据 Cookie 中的信息判断当前是那个用户在操作页面——张三某年某月某日,那个IP地址,什么设备,什么浏览器,什么搜索引擎,搜索了美女 。不要随便用网页浏览啥哦,因为服务器全知道而且非常详细~

【JavaWeb】Cookie和Session的使用场景分析与应用

Cookie是一种用于存储用户相关信息的 “小文件” (一般来说,每个Cookie的大小限制为4KB以内),它通常由服务器发送到客户端的Web浏览器,然后由浏览器存储在本地的计算机上。当用户访问同一网站时,浏览器会将该网站相关的cookie传递给服务器,使服务器可以读取并使用其中的数据——Cookie 是以键值对的形式保存数据。

浏览器会针对每一个域名(IP 地址的映射 例如:www.baidu.com),在硬盘上划分一块空间,这块空间就是Cookie.

【JavaWeb】Cookie和Session的使用场景分析与应用


【JavaWeb】Cookie和Session的使用场景分析与应用

总结:

1. Cookie 是个啥?

浏览器提供的持久化存储的机制,防止恶意网站代码对用户设备资源造成影响,不允许网页随便访问用户资源,有的时候又希望,浏览器能持久化存储一些关键信息,用于给服务器交互,最常见的是存储用户的账户信息,所有浏览器会将针对每一个域名,在硬盘上划分一块空间,这块空间就是Cookie

2. Cookie 中的数据从哪里来?

Cookie 中的数据是从服务器返回给浏览器的,服务器代码中由程序猿决定要把啥样的信息保存到客户端这边,通过 HTTP 响应的 Set-Cookie字段,把键值对写回去。

3. Cookie 中的数据到哪里去?

Cookie 的数据会在后续的浏览器访问服务器的时候带到请求的 header 中的 Cookie 字段中发送给服务器。

4. Cookie 有什么用?

1. 便于客户端与服务器进行交互

2. 服务器可以通过 Cookie  中的信息来判断当前客户端是谁,张三还是李四,做了些什么。

5. Cookie 存储在哪儿?

存储在浏览器(客户端)所在的主机上,浏览器会根据域名来 分别存储~~


二、Session 简介

在计算机领域中,会话(Session)是指建立起来的交互式会话。它通常是指客户端和服务器之间建立的网络连接,用于在网络上进行通信,执行特定的操作和交换数据。

在Web开发中,Session (键值对的结构,Map)通常是指保存在服务器端内存中的一组数据。当用户与服务器进行交互时,服务器通过Session来识别用户并存储与该用户相关的数据。Session可以用于在多个请求之间共享数据,这样就可以在用户的浏览会话期间跨多个页面保留数据。一些常见的数据可以保存在Session中,例如用户的身份验证信息。由于Session是存储在服务器端内存中的,因此会话数据可以持久保留,即使用户关闭了浏览器,数据也不会丢失,直到Session超时或被手动删除为止。

会话也是指一种可以跨多个页面或请求保持用户数据的机制。通常情况下,会话会在用户首次访问一个网站时自动创建,在用户离开网站或超时后自动失效(创建和销毁由程序猿设计,当然 Session 也是运行在内存中的机制,服务器重启Session 中的数据就没了)。通过使用会话,Web应用程序可以轻松地跟踪用户状态,并在用户浏览网站的不同页面时保持用户信息的连续性。

举个例子:去医院看病

1. 到医院第一步,选择指定的科室挂号,医院给帮你办理一张就诊卡(现在身份证可以充当这个角色),就诊卡上包含一些个人信息:身份证信息,电话号码,住址……

2. 挂号完成之后,就可以拿着就诊卡去看病了,轮到你时,医生将你的就诊卡一刷,你的基本信息就展示在医生的电脑界面上,其中有一栏,以往病例史,为空,因为你第一次来这家医院,医院没有记录你的信息,所以此时医生就问你有啥毛病,有没有在其他医院就诊过,医生根据你的叙述在电脑上一顿狂敲,最后让你去检验科做个检测,到了检验科,医生给你做检查,检查结果出来后,医生拿着你的就诊卡刷一下,将检查结果录入你的个人信息库,最后让你去找就诊医生继续诊断,此时就诊医生都不需要你的结果报告,拿着你的就诊卡一刷,你刚才的检验结果就展现出来了,原因是医生将你的数据都存入到医院的数据库中了,就诊卡就是搜索的条件。

以上实例中 就诊卡可以认为是 Cookie ,医院给用户提供的持久化存储数据的机制,里面存储了用户的相关信息,当医生初次使用就诊卡时就会给新用户提供一组 Session 会话,会话是一组键值对的结构——Map, key  - value 模型

【JavaWeb】Cookie和Session的使用场景分析与应用

【JavaWeb】Cookie和Session的使用场景分析与应用

针对以上事例,就诊卡就可以看作为 Cookie ,存储了用户的基本信息,虽然就诊卡上可以存储一些信息,但是保存的数据毕竟是有限的,真正保存用户信息的是在医院的服务器中(依托于数据库),而就诊卡只需要存储一个身份标识即可(例如身份证号),而这个身份标识就作为 Session 的 key 键,其他更多用户信息作为 value 值,是一个 Map 的结构。

用户数据存储在医院的服务器上是靠谱的,即使是用户将就诊卡丢失,可以根据身份标识(身份证)补办一张就诊卡,而这个身份标识是作为  Session(会话)的 Key 值存在,所以,只要有身份标识,就可以在医院服务器上快速的获取到该用户全部的信息(前提是代码这样写,会话存储啥数据由程序猿设计)。

医院的服务器管理着很多的 Session(会话),每个 Session 都存储了用户的关键信息,(基本信息,要做的检查,以往病史,消费记录……),每个 Session 是都有一个 key 值—— SessionId,Cookie 中就存储了 SessionId,每一次刷卡(发出请求), 就是将 Cookie(就诊卡) 中 SessionId 作为 Session(会话) 中的 key 键, 去匹配获取 Session 的值。


三、Cookie 和 Session 之间关联和区别

关联:

在网站的登录功能中,需要配合使用,Cookie 存储用户的账户信息,为键(key), Session 是一个 map 键值对的结构,会根据 Cookie 的账户信息作为 键值,更多的用户相关的信息则是保存为 value , 每次浏览器向服务器发出请求,都会附带上  Cookie 中的数据,服务器接收到请求后就可以根据 Cookie 中的 key ,获取 Session 会话中的值,值意味着更多的个人用户信息。 所以呢我们说 Session 是在同一网站下是跨页面存储信息的机制,相当于一个网站的全局变量,触发条件就是 Cookie 中的 SessionId (用户的身份标识 /  账户信息)。

区别:

1.存储数据的不同

Cookie 是客户端的存储机制,以键值对的形式存储数据,不只是存储用户账户信息还可以存储其他的信息,例如:用户的喜好,多多刷刷美女,大数据~

Session 是服务器的存储机制,以键值对的形式存储数据(Map),是专门用来存储用户的身份信息及相关信息。

2. 使用场景的不同

Cookie 在非登录界面的场景下完全可以单独使用,不需要搭配 session (会话), 具体代码由程序猿设计实现, Cookie 不仅仅只存储 用户的账户信息(身份标识)。

Session 也可以不搭配 Cookie 使用,例如:手机 App 登录服务器,此时就没有  Cookie 的概念,因为 Cookie 是浏览器提供的一组持久化存储的机制。

3. 归属的不同

Cookie 是属于 HTTP 协议中的一部分(HTTP 协议的 header 中的一个键值对,详情可看上文中的请求图片),Session 和 HTTP 协议无关,跟 “应用程序” 有关,例如: Tomcat 是一个 Java代码实现的  HTTP 的服务器,提供的  Servlet API 是为了程序猿更好的操控 HTTP 协议, 其中 HttpSession 类就可以管理 Session 会话,这个类与 协议本身无关,与 Tomcat 有关。


好了,到这里,网络编程中的 “【JavaWeb】Cookie和Session的使用场景分析与应用” 博主已经分享完了,希望对大家有所帮助,如有不妥之处欢迎批评指正。 

【JavaWeb】Cookie和Session的使用场景分析与应用

感谢每一个观看本篇文章的朋友,更多精彩敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* 

遇见你,所有的星星都落在我的头上……【JavaWeb】Cookie和Session的使用场景分析与应用文章来源地址https://www.toymoban.com/news/detail-486887.html

到了这里,关于【JavaWeb】Cookie和Session的使用场景分析与应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • (13)session和cookie的原理分析,完成(免)登录和安全退出功能

    三种域对象 这三个域对象的大小关系: request session application, 尽量使用小的域 request 请求域(请求级别的), 对应的类名:HttpServletRequest session会话域(用户级别的), 对应的类名:HttpSession application应用域(项目级别的,所有用户共享的)对应的类名:ServletContext 三个域对象都

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

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

    2024年02月13日
    浏览(43)
  • Gin框架: Cookie和Session在单体架构和分布式架构下的应用

    Gin 中单一Cookie的应用 1 )路由处理 2 ) 控制器处理 设置cookie时,设置了两个不同过期时间的cookie 5s 后第一个cookie 自动丢失 访问 /delcookie 路由,第二个路由被主动删除 HTTP 是无状态协议,当你浏览了一个页面 然后转到同一个网站的另一个页面,服务器无法认识到这是同一个

    2024年02月22日
    浏览(50)
  • 了解 Gin 中的 cookie、session 以及 cache 使用

    了解 Gin 中的 cookie、session 以及 cache 使用,并通过具体例子,掌握它们在不同场景下的应用。 Cookie: Cookie 是存储在用户浏览器中的小型文本文件,通常用于存储用户身份验证信息、个性化设置等。在使用 Gin 时,可以很方便地读取和设置 Cookie。 具体例子: 1.1 设置 Cookie:

    2024年02月07日
    浏览(40)
  • 如何在个人web项目中使用会话技术(cookie&session)?

    编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 服务器软件:apache-tomcat-8.5.27 翻开百度百科关于“ 会话 ”的词条,它是这样描述:“ 在计算机术语中,会话是指一个终端用户与交互系统进行通讯的过程,比如从输入账户密码进入操作系统到退出操作系统就是一

    2023年04月22日
    浏览(57)
  • 使用Session和cookie会话对象实现简单购物车功能(超详细)

    1.新建Dynamic Web project,新建过程如下; 2.在src目录下新建两个包,一个命名为entity,一个命名为servlet,新建过程如下; 3.在entity目录下新建两个实体类,一个名为Cake,一个名为CakeDB,新建过程如下: 4.在servlet目录下新建三个servlet,命名分别为ListCakeServlet、PurchaseServlet和CartSe

    2023年04月17日
    浏览(74)
  • 【Node.js】身份认证,Cookie和Session的认证机制,express中使用session认证和JWT认证

    Web开发模式 基于服务器渲染的传统web开发模式 服务端渲染的概念,服务器发送给客户端的HTNL页面,是在服务器通过字符串的拼接,动态生成的,因此,客户端不需要Ajax这样的技术额外请求页面的数据 优点: 前端耗时少,有利于seo(就是爬虫更容易爬取获得信息,更有利于

    2023年04月11日
    浏览(49)
  • web学习--登录认证--会话技术--cookie--session--令牌--java-jwt使用--jjwt使用

    前置学习: http springmvc 会话:用户打开浏览器,访问web服务器资源,会话建立,直到有一方断开连接会话结束,一次会话可以多次请求和连接 会话跟踪:一种维护浏览器状态的方式,服务器需要识别多次请求是否来自同一浏览器,以便同一次会话多次请求间共享数据。 cooki

    2024年02月15日
    浏览(67)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(49)
  • 安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性

    DW + PHPStorm + PhpStudy + Navicat Premium DW : HTMLJSCSS开发 PHPStorm : 专业PHP开发IDE PhpStudy :Apache MYSQL环境 Navicat Premium: 全能数据库管理工具 1、数据库名,数据库表名,数据库列名 2、数据库数据,格式类型,长度,键等 PHP函数:连接,选择,执行,结果,关闭等 参考:https://www.runoo

    2024年02月17日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包