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

news2025/1/15 6:56:56

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://www.coloradmin.cn/o/1618132.html

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

相关文章

python自动生成SQL语句自动化

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python自动生成SQL语句自动化 在数据处理和管理中,SQL(Structured …

鸿蒙OpenHarmony【LED外设控制】 (基于Hi3861开发板)

概述 OpenHarmony WLAN模组基于Hi3861平台提供了丰富的外设操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。本文介绍如何通过调用OpenHarmony的NDK接口,实现对GPIO控制,达到LED闪烁的效果。其他的IOT外设控制&#xff0…

【python】python新闻文本数据统计和聚类 (源码+文本)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

【UE5.1 C++】VS2022下载安装

目录 步骤 一、Visual Studio下载安装 二、Visual Studio Integration Tool插件安装 先看一下UE和VS的兼容性 (虚幻5:为虚幻引擎C项目设置Visual Studio开发环境) (虚幻4:设置虚幻引擎的Visual Studio&#xff0…

生产数据采集系统

在数字化浪潮的推动下,生产数据采集系统已经成为企业提升生产效率、优化运营管理的关键工具。那么,什么是生产数据采集系统呢?简单来说,生产数据采集系统是指通过一系列技术手段,实时收集、处理和分析生产线上的各类数…

[负债学习]支线Python4.21

三的东西,一个是环境,一个是基础语法,第3个是代码的案例。 我们先从头开始讲一下计算机,它主要由4个部分组成cpu的中央处理器和一个储存和一个输出和出。而储存的话主要是由内存和外存而cpu,中央处理器全称叫做通用计…

vuex和pinia转态管理工具介绍

文章目录 一、介绍二、使用1、pinia使用2、Vuex使用 一、介绍 相同点: 都是Vue.js的状态管理工具 不同点: 区别PiniaVuex支持Vue2和Vue3都支持Vue3写法需要额外配置Mutation只有 state, getter 和 action,无Mutationaction异步、Mutation …

【学习】服务器解决:重新分配同样端口号后,连不上VScode

原来服务器分配的环境有问题,重新分配了一下。还是同样的端口号,Xshell和xftp能够连接上,但是VScode连接不上。 问题解决: 清除本地 SSH 缓存中与远程主机相关的条目可以通过编辑 known_hosts 文件来实现。这个文件包含了您曾经连接过的远程主…

1分钟带你学会Series显式索引和隐式索引

1.Series的索引 Series是Pandas库中的一种一维数据结构对象,与常规的一维数组相比,其最显著的特点在于拥有显式的索引结构。这种显式索引使得Series在数据处理和分析中更具灵活性和便利性。 显式索引指的是Series中每个元素除了值之外,还关…

sketchup{su}安装错误1402

错误如图 解决方法如下 打开autoremove,点击扩展,输入1402,点击搜索 等待修复成功既可尝试重新安装su 软件每周六选择其他方式登录免费使用

Python 高质量类编写指南

原文:https://www.youtube.com/watch?vlX9UQp2NwTk 代码:https://github.com/ArjanCodes/examples/tree/main/2023/classguide Python 高质量类编写指南 我们将通过一些方法增加类的可读性和易用性。 通过(按照属性或行为)拆分类…

前端实现将二进制文件流,并下载为excel文件

目录 一、关于二进制流二、项目实践三、常见问题及解决 一、关于二进制流 含义:二进制流是一种计算机文件格式,它的数据以二进制形式存储,与文本文件不同。 二进制文件可以包含任意类型的数据,例如:图像、音频、视频…

Linux thermal框架介绍

RK3568温控 cat /sys/class/thermal/thermal_zone0/temp cat /sys/class/thermal/thermal_zone1/temp cat /sys/class/thermal/cooling_device0/cur_state cat /sys/class/thermal/cooling_device1/cur_state cat /sys/class/thermal/cooling_device2/cur_state thermal_zone…

文件File类的学习

File类 File类创建File实例创建文件删除文件创建目录 Reader小结 File类 在java中,通过java.io.File类来对一个文件进行抽象的描述. 下面我们来看看File类的构造方法:签名说明File(File parent, String child)根据父目录孩子文件路径,创建出一个新的File实例File(String pathn…

web--crlf注入,url重定向,web资源处理

crlf漏洞 正常的数据包 更改过 就变成这样了 配合xss 然后那个xss脚本就会被启用 crlffuzz url重定向 后面有url地址 改成baidu.com然后再访问,他就会自动访问baidu 实例 web资源处理 对于一张图片 当我们这样 加载的时候,会 无限解压缩包 这是一个…

vue快速入门(三十四)组件data定义方法

注释很详细&#xff0c;直接上代码 上一篇 新增内容 数据绑定方法照常数据定义方法需要作为函数返回值 源码 MyTest.vue <template><div><h1>我的功德&#xff1a;{{merits}} </h1><button click"meritsnum1">功德加一</button>…

什么是用户体验(UX)文案,为什么它很重要?

网上购物如今比以往任何时候都更加相关。所以我们将以此为例说明什么是用户体验&#xff08;UX&#xff09;文案&#xff0c;以及为什么它很重要。 假设你去了一个在线商店。你需要执行一系列操作&#xff1a; 找到合适的部分选择你感兴趣的产品弄清楚它们是什么&#xff0c;…

(超级详细)JAVA之Stream流分析-------持续更新喔!!!

学习目标&#xff1a; 掌握 Java Stream流的相关api 掌握 Java Stream流的基本实现 掌握 java Stream流的使用场景 代码已经整理上传到了gitee中&#xff0c;有需要的小伙伴可以取查看一下源码点个小心心喔 大家也可以帮我提交一点案例喔&#xff01;&#xff01;&#xff01;&…

java:观察者模式

java&#xff1a;观察者模式 1 前言 观察者模式&#xff0c;又被称为发布-订阅&#xff08;Publish/Subscribe&#xff09;模式&#xff0c;他定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时&#xff0c;会通知所…

本地部署Docker容器可视化图形管理工具DockerUI并实现无公网IP远程访问——“cpolar内网穿透”

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…