首页 > 其他分享 >Cookie和Session的关系 - 通俗举例

Cookie和Session的关系 - 通俗举例

时间:2024-01-26 10:46:55浏览次数:28  
标签:存储 购物篮 Session Cookie 举例 服务器 ID

目录

Cookie和Session的关系

Cookie 和 Session 是在 web 开发中用于维护用户状态的两个关键概念。

  1. Cookie:

    • 定义: Cookie 是在客户端(通常是浏览器)存储的小型文本文件,由服务器发送到客户端并存储在用户的计算机上。
    • 作用: Cookie 主要用于在客户端保持用户的一些信息,如用户首选项、登录状态等。
    • 特点: Cookie 以键值对的形式存在,可以通过浏览器的 Cookie 存储来存储和检索信息。
  2. Session:

    • 定义: Session 是服务器端的一种机制,用于在服务器上存储用户的信息,以维护用户的状态。
    • 作用: Session 通常用于存储和跟踪用户在网站上的会话信息,如登录状态、购物车内容等。
    • 特点: 每个用户都有一个唯一的会话标识符(Session ID),该标识符通常存储在 Cookie 中,但也可以通过 URL 参数传递。服务器使用这个标识符来检索用户的会话信息。

关系:

  • Cookie 存储 Session ID: 通常,Session ID 被存储在 Cookie 中。当用户首次访问网站时,服务器会生成一个唯一的 Session ID,并将它存储在一个名为 "sessionid" 或类似的 Cookie 中,然后将该 Cookie 发送给客户端。
  • Session 数据存储在服务器: 用户的实际会话数据(如登录状态、购物车内容)存储在服务器上,而不是存储在 Cookie 中。服务器使用 Cookie 中的 Session ID 来映射到相应的会话数据。

工作流程简述:

  1. 用户首次访问网站,服务器创建一个唯一的 Session ID,并将它存储在 Cookie 中。
  2. 服务器创建一个与该 Session ID 相关联的会话,并在服务器端存储用户的状态信息。
  3. 用户的浏览器随后的每次请求都会携带这个 Session ID(存储在 Cookie 中),服务器据此来检索用户的会话信息,以维护用户的状态。
总的来说,Cookie 和 Session 是为了在 web 应用中保持用户状态而设计的,它们相互协作,Cookie 用于在客户端存储 Session ID,而 Session 数据则存储在服务器上。

举例 - 商店购物

当我们访问一个网站时,可以把这个过程类比为进入一家商店。在这个例子中:

定义:

  1. Cookie 就像是你手上的购物篮:

    • 当你第一次进入商店时,店员给了你一个购物篮,上面写有一个独一无二的编号。
    • 这个购物篮就像是 Cookie,它是存放在你手上的,代表着你在这家商店的“身份”。
  2. Session 就像是商店后台的购物篮架:

    • 商店后台有一个大的购物篮架,上面标有各种编号,每个编号对应着一个顾客的购物篮。
    • 这个购物篮架就像是 Session,它在商店的后台,用于存储所有顾客的购物篮(状态信息)。
  3. 购物篮编号(ID):

    • 购物篮上的编号就像是 Session ID,它是唯一的,能够将你的购物篮与后台的购物篮架上的对应起来。
    • Cookie 中存储的就是这个编号,每次你拿着购物篮(Cookie)进入商店(访问网站),店员(服务器)通过编号(Session ID)来找到你的购物篮(Session)。
  4. 购物篮里的商品(数据):

    • 你在购物篮里放入的商品就像是你在网站上的活动和状态信息,比如你的登录状态、购物车内容等。
    • 这些信息并不是存储在你手上的购物篮(Cookie)里,而是存储在商店后台的购物篮(Session)里。

操作流程:

  1. 你进入商店时,得到一个购物篮(Cookie),上面有编号(Session ID)。
  2. 每次你在商店里选购商品(在网站上进行活动),都将商品放入手上的购物篮(Cookie)。
  3. 当你结账时(进行某些操作),你的购物篮(Cookie)上的编号(Session ID)告诉店员(服务器),店员从后台购物篮架(Session)里拿出你的购物篮,查看你选购的商品(活动和状态信息)。
这样,Cookie 和 Session 通过编号的方式,使得在整个购物(网站访问)过程中能够保持状态,让服务器能够根据编号找到相应的用户数据。

标签:存储,购物篮,Session,Cookie,举例,服务器,ID
From: https://www.cnblogs.com/awzy/p/17988812

相关文章

  • Cookie、Session 和 Token 有什么区别?
    Cookie、Session和Token通常都是用来保存用户登录信息的技术,但三者有很大的区别,简单来说Cookie适用于简单的状态管理,Session适用于需要保护用户敏感信息的场景,而Token适用于状态无关的身份验证和授权。具体来说,Cookie、Session和Token的区别主要有以下几点区别:存储......
  • [Python列表推导式使用举例]
    [Python列表推导式使用举例]"""列表推导式功能说明:列表推导式可以利用range区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。语法:[表达式for迭代变量in可迭代对象[if条件表达式]]"""list=[i+1foriinrange(10)]print(list)"""[1......
  • chrome内核浏览器:测试环境:url(ip+端口)设置cookie、session失败
    chrome内核浏览器:测试环境:url(ip+端口)设置cookie、session失败有个单点登录系统,登录成功,通过:ip+端口/xxx.js方式设置,目标网址的cookie、session.,通过跳转访问目标网站。在测试的时候,发下cookie、session怎么设置都不成功。登录成功:设置cookie、session t跳转过去,发现原来......
  • 258-cookie格式转换(内部)
    原始的cookie格式为:key1=value1;key2=value2;.....通过一下方法:ReturnValue<string>cookiesResult=CookieChangeTools.ConvertToXQYCookieString(cookies,rootUrl);cookies=cookiesResult.Value;转换的cookie格式为:[cookieStart]key1=value1;key2=value2;.....[cookie......
  • 云计算-nacos入门以及生产配置举例
    生产上nacos配置使用简单举例,相关敏感信息已经去除nacos以ds的方式部署在华为云CCE的容器当中,后台微服务,sprintboot中写明nacos的依赖,dockerfile打包到镜像仓库,在CCE运行容器的时候,读取CCE中configmap获取配置项参数。好处是可以标准集中管理发布,适合变更发布运维详细请参考官方文......
  • 解决vue用axiso两次访问后台api,发现后台的sessionID不一致
    我用的是ASP.NETCore7.0做的后台api,在解决了跨域问题(这个问题在官网上就有答案https://learn.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-7.0)为了方便阅读,我再讲一下在里progam里面增加代码(黄色代码),代码格式我就把不变的放到一起了解决完这个之后,因为要......
  • flask伪造session的一些笔记
    关于flask工具要注意的一些点:密钥使用字符串和数字生成出来的是不一样的伪随机数生成key的时候python2和python3是不一样的,python2会后面的小数自动约分。解密出来的字符串不能直接更改值,需要改为键对值的格式伪随数生成key的方法有很多种,有的可以获取mac地址/sys/class/net/......
  • Gin中的Session
    Gin中的Session1Session简单介绍session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而session保存在服务器上。2Session的工作流程当客户端浏览器第一次访问服务器并发送请求时,服务器端会创建一个session对象,生成一个类似于key,value的键值对,然后将va......
  • Gin中的Cookie
    Gin中的Cookie1Cookie简介/* ●HTTP是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。如果我们要实现多个页面之间共享数据的话我们就可以使用Cookie或者Sessio......
  • iOS ARKit 三大类 ARSession ARAnchor ARFrame
    ARSessionARSession(AR会话)是ARKit中最重要的概念之一,其主要的功能是管理AR应用的状态和整个周期,是ARKitAPI的主要人口。ARSession整合了底层的所有技术并为开发者提供程序界面,这些技术包括从设备运动传感器硬件取数据、捕获摄像头图像数据并进行分析、控制虛拟场景摄像机与硬......