目录
Cookie和Session的关系
Cookie 和 Session 是在 web 开发中用于维护用户状态的两个关键概念。
-
Cookie:
- 定义: Cookie 是在客户端(通常是浏览器)存储的小型文本文件,由服务器发送到客户端并存储在用户的计算机上。
- 作用: Cookie 主要用于在客户端保持用户的一些信息,如用户首选项、登录状态等。
- 特点: Cookie 以键值对的形式存在,可以通过浏览器的 Cookie 存储来存储和检索信息。
-
Session:
- 定义: Session 是服务器端的一种机制,用于在服务器上存储用户的信息,以维护用户的状态。
- 作用: Session 通常用于存储和跟踪用户在网站上的会话信息,如登录状态、购物车内容等。
- 特点: 每个用户都有一个唯一的会话标识符(Session ID),该标识符通常存储在 Cookie 中,但也可以通过 URL 参数传递。服务器使用这个标识符来检索用户的会话信息。
关系:
- Cookie 存储 Session ID: 通常,Session ID 被存储在 Cookie 中。当用户首次访问网站时,服务器会生成一个唯一的 Session ID,并将它存储在一个名为 "sessionid" 或类似的 Cookie 中,然后将该 Cookie 发送给客户端。
- Session 数据存储在服务器: 用户的实际会话数据(如登录状态、购物车内容)存储在服务器上,而不是存储在 Cookie 中。服务器使用 Cookie 中的 Session ID 来映射到相应的会话数据。
工作流程简述:
- 用户首次访问网站,服务器创建一个唯一的 Session ID,并将它存储在 Cookie 中。
- 服务器创建一个与该 Session ID 相关联的会话,并在服务器端存储用户的状态信息。
- 用户的浏览器随后的每次请求都会携带这个 Session ID(存储在 Cookie 中),服务器据此来检索用户的会话信息,以维护用户的状态。
总的来说,Cookie 和 Session 是为了在 web 应用中保持用户状态而设计的,它们相互协作,Cookie 用于在客户端存储 Session ID,而 Session 数据则存储在服务器上。
举例 - 商店购物
当我们访问一个网站时,可以把这个过程类比为进入一家商店。在这个例子中:
定义:
-
Cookie 就像是你手上的购物篮:
- 当你第一次进入商店时,店员给了你一个购物篮,上面写有一个独一无二的编号。
- 这个购物篮就像是 Cookie,它是存放在你手上的,代表着你在这家商店的“身份”。
-
Session 就像是商店后台的购物篮架:
- 商店后台有一个大的购物篮架,上面标有各种编号,每个编号对应着一个顾客的购物篮。
- 这个购物篮架就像是 Session,它在商店的后台,用于存储所有顾客的购物篮(状态信息)。
-
购物篮编号(ID):
- 购物篮上的编号就像是 Session ID,它是唯一的,能够将你的购物篮与后台的购物篮架上的对应起来。
- Cookie 中存储的就是这个编号,每次你拿着购物篮(Cookie)进入商店(访问网站),店员(服务器)通过编号(Session ID)来找到你的购物篮(Session)。
-
购物篮里的商品(数据):
- 你在购物篮里放入的商品就像是你在网站上的活动和状态信息,比如你的登录状态、购物车内容等。
- 这些信息并不是存储在你手上的购物篮(Cookie)里,而是存储在商店后台的购物篮(Session)里。
操作流程:
- 你进入商店时,得到一个购物篮(Cookie),上面有编号(Session ID)。
- 每次你在商店里选购商品(在网站上进行活动),都将商品放入手上的购物篮(Cookie)。
- 当你结账时(进行某些操作),你的购物篮(Cookie)上的编号(Session ID)告诉店员(服务器),店员从后台购物篮架(Session)里拿出你的购物篮,查看你选购的商品(活动和状态信息)。
这样,Cookie 和 Session 通过编号的方式,使得在整个购物(网站访问)过程中能够保持状态,让服务器能够根据编号找到相应的用户数据。
标签:存储,购物篮,Session,Cookie,举例,服务器,ID
From: https://www.cnblogs.com/awzy/p/17988812