【Cookie和Session的区别(面试重点)】

Cookie和Session的区别

  • 1. Cookie
    • 1.1 认识Cookie
    • 1.2 Cookie的引出
    • 1.3 Cookie工作原理
    • 1.4 Cookie重要结论
  • 2. Session
    • 2.1 认识Session
    • 2.2 Session的引出
    • 2.3 Session的工作原理
  • 3. Cookie和Session的区别

1. Cookie

1.1 认识Cookie

  • Cookie:是小型文本文件,是某些网站用来辨别用户身份,进行Session跟踪而存储在用户本地硬盘上的数据,即客户端保存客户信息的一种机制

1.2 Cookie的引出

  • web程序是使用HTTP协议传输的,而HTTP协议是无状态的协议,对于事物处理没有记忆能力。缺少状态就意味着如果后续处理需要前面的信息,则必须要重传,这样可能导致每次连接传送的数据增大。另一方面,在服务器不需要先前信息时它的应答就比较快。
  • Cookie的出现就解决了这个问题:例子:医院里面的就诊卡,不管你挂号,做检查,买药都需要就诊卡,而每次刷的就诊卡就相当于是使用Cookie中的信息,来让服务器对客户端有一个清楚的标识

1.3 Cookie工作原理

在这里插入图片描述

1.4 Cookie重要结论

  • Cookie从何而来: Cookie由浏览器首次访问/登录服务器之后返回给浏览器的
  • Cookie到哪里去:Cookie会存储在浏览器本地主机的硬盘上,后续每次访问服务器都会带上Cookie。不同的客户端保存的Cookie是不同的。即使同一个主机使用不同的浏览器,Cookie大概率也不同
  • Cookie中存什么:键值对格式的数据,这里的内容都是程序员自定义的
  • Cookie在浏览器如何组织:在硬盘本地保存,是按照不同的域名为维度分别存储。一个浏览器访问百度有一组Cookie,访问其他浏览器各有一组Cookie
  • Cookie,用来在客户端保存数据。最主要的是通过保存用户的身份标识,从而服务器就可以通过标识来区分用户

2. Session

2.1 认识Session

Session,即会话,是服务器为了保存用户信息而创建的一个特殊对象

2.2 Session的引出

  • 会话是一个客户端与服务器之间的不中断的请求响应。服务器同一时刻收到的请求很多,服务器需要清楚的区分每个请求是从属于哪个用户,属于哪个会话,就需要在服务器这边记录每个会话以及与用户信息的对于关系

2.3 Session的工作原理

  • Session的本质是一个哈希表,存储了一些键值对结构,key就是SessionID,Value就是用户信息。

在这里插入图片描述- SessionID是由服务器生成的一个唯一性字符串,从Session机制的角度看,可以把这个唯一字符串称为SessionID,在整个登录流程中,可以把这个唯一字符串称为token

  • Session机制:
    1. 当用户登录的时候,服务器在Session中新增一个新记录,并把SessionID返回给客户端(通过HTTP响应的Set-Cookie字段返回)
    2. 客户端后续再给服务器发送请求的时候,需要在请求中带上SessionID(通过HTTP请求中的Cookie字段带上)
    3. 服务器收到请求之后,根据SessionID在Session信息中获取到对应的用户信息,再进行后续操作,找不到则重新创建Session,并把SessionID返回

在这里插入图片描述

3. Cookie和Session的区别

  • Session默认是保存在内存当中,重启服务器则Session数据就会丢失
  • Cookie是客户端保存用户信息的一种机制,Session是服务器端保存用户信息的一种机制
  • Cookie和Session之间主要是通过SessionID关联,SessionID是Cookie和Session之间的桥梁
  • Cookie和Session经常会一起配合使用,但不是必须配合
    1. 完全可以用Cookie来保存一些数据在客户端。这些数据不一定是用户信息,也不一定是SessionID
    2. Session中的SessionID也不需要非得通过Cookie/Set-Cookie传递,比如URL传递
  • Cookie不是很安全,别人可以分析存放在本地的Cookie并进行Cookie欺骗
  • 当访问较多,比较占用服务器的性能,考虑到减轻服务器性能方面,应当使用Cookie

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2979900.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

实验七 智能手机互联网程序设计(微信程序方向)实验报告

请编写一个用户登录界面&#xff0c;提示输入账号和密码进行登录&#xff0c;要求在输入后登陆框显示为绿色&#xff1b; 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; index.wxml <view class"content"> <view class"a…

概率图模型在机器学习中的应用:贝叶斯网络与马尔可夫随机场

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

C++ stl容器list的底层模拟实现

目录 前言&#xff1a; 1.创建节点 2.普通迭代器的封装 3.反向迭代器的封装 为什么要对正向迭代器进行封装&#xff1f; 4.const迭代器 5.构造函数 6.拷贝构造 7.赋值重载 8.insert 9.erase 10.析构 11.头插头删&#xff0c;尾插尾删 12.完整代码简单测试 总结&…

Iterator 迭代器

意图 提供一个方法顺序访问一个聚合对象中的各个元素&#xff0c;且不需要暴漏该对象的内部表示。 结构 Iterator&#xff08;迭代器&#xff09;定义访问和遍历元素的接口。ConcreteIterator&#xff08;具体迭代器&#xff09;实现迭代器接口&#xff1b;对该聚合遍历是跟踪…

爽!极品AI大模型,抓紧收藏!

今天给大家分享一个基于视觉和文本的聊天机器人&#xff0c;使用DeepSeek-VL-7B模型提供文本和图像的自动化生成回复&#xff0c;它允许用户在与机器人交互时提交文本和图像输入。 DeepSeek-VL简介 DeepSeek-VL系列代表了在多模态AI领域的一大突破&#xff0c;提供了两种不同规…

阿赵UE学习笔记——30、HUD简单介绍

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎&#xff0c;这次来学习一下HUD的基础使用。 一、 什么是HUD HUD(Head-Up Display)&#xff0c;也就是俗称的抬头显示。很多其他领域里面有用到这个术语&#xff0c;比如开车的朋友可能会接触过&#xf…

Linux驱动开发——(四)内核定时器

一、内核的时间管理 1.1 节拍率 Linux内核中有大量的函数需要时间管理&#xff0c;比如周期性的调度程序、延时程序等等&#xff0c;对于驱动编写者来说最常用的是定时器。 硬件定时器提供时钟源&#xff0c;时钟源的频率可以设置&#xff0c;设置好以后就周期性的产生定时中…

将MySQL数据库查询结果导出为txt文档,并建成实体类

目录 第一章、功能需求和分析1.1&#xff09;具体需求1.2&#xff09;分析需求转为小的问题1、如何获得数据库表的字段&#xff1f;2、如何将数据库查询结果导出&#xff1f;3.将获得的数据库查询结果转为驼峰式4.让AI建个实体类 友情提醒: 先看文章目录&#xff0c;大致了解文…

Python Selenium无法打开Chrome浏览器处理自定义浏览器路径

问题 在使用Python Selenium控制Chrome浏览器操作的过程中&#xff0c;由于安装的Chrome浏览器的版本找不到对应版本的驱动chromedriver.exe文件&#xff0c;下载了小几个版本号的驱动软件。发现运行下面的代码是无法正常使用的&#xff1a; from selenium import webdriver …

2024年【北京市安全员-B证】考试题及北京市安全员-B证考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-B证考试题参考答案及北京市安全员-B证考试试题解析是安全生产模拟考试一点通题库老师及北京市安全员-B证操作证已考过的学员汇总&#xff0c;相对有效帮助北京市安全员-B证考试试卷学员顺利通过考试。 1…

第十六届“华中杯”B 题使用行车轨迹估计交通信号灯周期问题

某电子地图服务商希望获取城市路网中所有交通信号灯的红绿周期,以便为司机提供更好的导航服务。由于许多信号灯未接入网络,无法直接从交通管理部门获取所有信号灯的数据,也不可能在所有路口安排人工读取信号灯周期信息。所以,该公司计划使用大量客户的行车轨迹数据估计交通…

RISC-V CVA6 在 Linux 下相关环境下载与安装

RISC-V CVA6 在 Linux 下相关环境下载与安装 所需环境与源码下载 CVA6 源码下载 首先&#xff0c;我们可以直接从 GitHub 一次性拉取所有源码&#xff1a; git clone --recursive https://github.com/openhwgroup/cva6.git如果这里遇到网络问题&#xff0c;拉取失败&#x…

语音聊天app软件、语音房软件开发

最近我们收到了众多客户咨询,他们都对语音聊天app非常感兴趣! 语音聊天app,在线组CP,一起连麦聊天、唱歌、打游戏,年轻人非常喜欢的语音社交软件,可以语音通话、多人语音房聊天、发布动态、会员充值等功能.大家可以在虚拟世界里快乐社交! 里面还有好玩的互动小游戏,帮助客户增…

MLLM | Mini-Gemini: 挖掘多模态视觉语言大模型的潜力

香港中文、SmartMore 论文标题&#xff1a;Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models Code and models are available at https://github.com/dvlab-research/MiniGemini 一、问题提出 通过更高分辨率的图像增加视觉标记的数量可以丰富…

电磁仿真--基本操作-CST-(2)

目录 1. 回顾基操 2. 操作流程 2.1 创建工程 2.2 修改单位 2.3 创建 Shape 2.4 使用拉伸 Extrude 2.5 修改形状 Modify Locally 2.6 导入材料 2.7 材料解释 2.8 材料分配 2.9 查看已分配的材料 2.10 设置频率、背景和边界 2.11 选择 Edge&#xff0c;设置端口 2.…

npm install 卡在still idealTree buildDeps不动

前言 再使用npm install 安装包依赖时 发现一直卡住 停留在 观察node_cache下的_logs文件 发现一直在拉取包 37 silly idealTree buildDeps 38 silly fetch manifest riophae/vue-treeselect0.4.0尝试解决 尝试设置了taobao镜像源 依然如此 获取已经设置的镜像源 确实是ta…

软文发稿对于企业的重要性

随着社会的发展和科技的进步&#xff0c;软文发稿已成为企业和个人推广和传播信息的一种非常重要的方式。它以隐性的广告形式&#xff0c;通过内容发布&#xff0c;为品牌广告和产品推广铺设了一条隐形高速公路。下面我们就详细解析一下软文发稿的优点和好处。 软文发稿帮助增…

setTimeout回调函数 this指向问题

本文主要介绍setTimeout的回调函数的this指向问题 例子1&#xff1a;回调函数是一个普通函数 setTimeout 的回调函数是一个普通函数&#xff0c;而不是箭头函数&#xff0c;因此它有自己的上下文&#xff0c;this 指向全局对象&#xff08;在浏览器中是 window 对象&#xff…

【linux】匿名管道|进程池

1.进程为什么要通信&#xff1f; 进程也是需要某种协同的&#xff0c;所以如何协同的前提条件(通信) 通信数据的类别&#xff1a; 1.通知就绪的 2.单纯的数据 3.控制相关的信息 2.进程如何通信&#xff1f; 进程间通信&#xff0c;成本会高一点 进程间通信的前提&#xff0c;先…

《html自用使用指南》--基于w3School实践

1.基础标签 文本输入时&#xff0c;在编辑器中的换行&#xff0c;多个空格&#xff0c;都被编辑器看作一个空格 <p> 这个段落 在源代码 中 包含 许多行 但是 浏览器 忽略了 它们。 </p>结果&#xff1a;这个段落 在源代码 中 包含 许多行 但是 浏览器…