cookie 和 session 的区别

news2024/11/27 18:23:13

1. 前言


cookie 和 session 的区别是什么?这个问题在面试中问到的频率非常高

cookie 和 session 的共同点: 都是用来记录用户访问浏览器时保存的数据,比如:用户的身份信息等

2. cookie 和 session 的工作原理


cookie 工作原理:

浏览器端第一次发送请求到服务端,服务器端创建 cookie,该 cookie 中包含用户的信息,然后将该 cookie 发送到浏览器端。浏览器端再次访问服务器端时会携带上服务器端创建的这个 cookie,服务器端通过 cookie 中携带的数据区分不同的用户

session 工作原理:

浏览器端第一次请求到服务端时,服务器端会创建一个 session,同时创建一个特殊的 cookie,这个 cookie 的值就是 session_id,服务器端将这个 cookie 发送到浏览器端。当浏览器端再次请求服务器端时,浏览器端会携带上这个 cookie,服务器端会很根据这个 cookie 值,也就是 session_id,去查询 session 数据,从而区分不同用户

3. cookie 和 session 的区别总结


cookie 数据存放在浏览器端,session 数据存放在服务器端,但是 session_id 存放在浏览器端

1. 安全性

因为 cookie 数据存放在浏览器端,所以 cookie 没有 session 安全,别人可以分析存放在本地的 cookie 并进行 cookie 欺骗,考虑到安全性建议使用 session

2. session 会占用服务器性能

session 会在一定时间内保存在服务器上,当访问增多时会比较占用服务器的性能,考虑到减轻服务器性能耗损,应当使用一些 cookie

3. cookie 保存的数据受限

单个 cookie 保存的数据不超过 4k,而 session 则存储在服务器端,可以保存更多复杂的数据类型

4. 当禁用 cookie 后,session 还能使用吗?


当我们了解过 session 的工作原理后,可以得知,使用 session 的过程中,session_id 是存放在浏览器端的 cookie 中的,所以,当我们禁用 cookie 后,session 是不能正常使用的

那么问题来了,禁用了 cookie,还想要正常使用 session,应该怎么做呢?

禁用 cookie 后,session 不能正常使用的原因是 cookie 中的 session_id 无法发送到服务器端;所以,只要将 session_id 想办法传递给服务器端即可。方法有很多,比如最常见的: URL 传参

 

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

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

相关文章

【自然语言处理】隐马尔科夫模型【Ⅲ】估计问题

有任何的书写错误、排版错误、概念错误等,希望大家包含指正。 由于字数限制,分成六篇博客。 【自然语言处理】隐马尔可夫模型【Ⅰ】马尔可夫模型 【自然语言处理】隐马尔科夫模型【Ⅱ】隐马尔科夫模型概述 【自然语言处理】隐马尔科夫模型【Ⅲ】估计问题…

Rsyslog+MariaDB搭建Rsyslog日志服务器

rsyslog是一个linux系统日志服务的工具,主要用来监控收集系统从开机运行之后所发生的所有日志,包括内核日志,服务日志,应用日志等等;记录的日志全部都写到/var/log下面,常用的有dmsg(内核日志&a…

带你手把手实操一个RPC框架

前言: 这篇文章我们来聊一聊RPC框架,为什么要聊RPC呢 ? 首先从个人成长角度,如果一个新时代码农能清楚的了解RPC框架所具备的要素,掌握RPC框架中涉及的服务注册发现、负载均衡、序列化协议、RPC通信协议、Socket通信…

Linux 安装 Redis教程

1.切换到目录/use/local/src cd /use/local/src 2.下载文件 wget https://download.redis.io/releases/redis-6.2.6.tar.gz 3.文件解包 tar xzf redis-6.2.6.tar.gz 4.将解压后的包移动到/usr/local/redis目录下 mv redis-6.2.6 /usr/local/redis 5.切换到/usr/local/r…

Vue3这样子结合hook写弹窗组件更快更高效

为什么会有这个想法 在管理后台开发过程中,涉及到太多的弹窗业务弹窗,其中最多的就是“添加XX数据”,“编辑XX数据”,“查看XX详情数据”等弹窗类型最多。 这些弹窗组件的代码,很多都是相同的,例如组件状…

DBCO-PEG-NHS,二苯并环辛炔(DBCO)PEG-NHS衍生物,分子量MV 3.4K 5K

1、产品描述: 二苯并环辛炔(DBCO)PEG-NHS衍生物可以在不需要任何金属催化剂的情况下进行化学反应。菌株促进的环辛炔和叠氮化合物的1,3-偶极环加成反应,也称为无铜点击反应,是一种双正交反应,可使两个分子…

【Java版oj】day05统计回文

目录 一、原题再现 二、问题分析 三、完整代码 一、原题再现 统计回文_牛客题霸_牛客网 描述 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别…

ADI Blackfin DSP处理器-BF533的开发详解50:RGBtoGary (图像灰度提取处理)(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像灰度提取处理,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的…

OPENGL ES 2.0 知识串讲(1)――OPENGL ES 2.0 概括

前言 电脑是做什么用的? 电脑又被称为计算机,那么最重要的工作就是计算。看过三体的同学都知道, 电脑中有无数纳米级别的计算单元,通过 0 和 1 的转换,完成加减乘除的操作。 是什么使得电脑工作? 驱动,驱使着硬件完成工作。 谁来写驱动? 制造电脑的公司自己来写驱动,因…

#芯片# N25Q128A21BSF40F

数据手册下载链接:N25Q128A21BSF40F 0. 指令集 1.基本介绍 SPI兼容串行总线接口。108 MHz(最大)时钟频率。推荐工作电压:1.8 V。单电源电压1.7 V至2 V。支持传统SPI协议,Quad I/O或Dual I/O SPI协议。四路/双路I/O指…

bug的生命周期你知道吗?一张图带你看懂它!

目录 1、什么是bug 2、bug的生命周期 3、如何描述一个bug 4、bug的级别 1、什么是bug 软件的bug狭义方面可以理解为是指软件程序的漏洞或缺陷,广义方面除找到程序漏洞之外,还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差…

【全网惟一面向软件测试人员的Python基础教程】- 你知道Python代码是怎样运行的吗?

全网惟一面向软件测试人员的Python基础教程 起点:《python软件测试实战宝典》介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你知道Python代码是怎样运行的吗? 文章目录全网惟一面向软件测试人员的Python基础教程…

如何写好科研论文:Introduction(2)

导读 本系列[1]将切片介绍如何写好科研论文,包含了:摘要,背景介绍,方法,结果,讨论等。 由于翻译能力有限,强力推荐有需要的伙伴,直接在文末找到参考链接,阅读原文&#x…

外汇天眼:Swissquote获得CySEC许可证、BUX收购Ninety Nine

新的一周开始了,那么在过去的一周里备受大家关注的外汇行业新闻都有哪些呢?天眼君现在带大家回顾,比如Swissquote获得CySEC许可证、BUX收购西班牙新交易商Ninety Nine的零售经纪部门、Saxo Bank以“时机不合适”为理由终止与SPAC IPO合作。具…

12.3、后渗透测试--持久化后门

攻击主机: Kali 192.168.11.106靶机:windows server 2008 r2192.168.11.134零、为何要创建后门 当成功获取目标系统的访问权限后,需要寻找方法来恢复与目标主机的连接,而无需再进入目标系统。如果目标用户破坏了该连接&#xff0c…

Metal每日分享,虚假颜色混合滤镜效果

本案例的目的是理解如何用Metal实现虚假颜色效果滤镜,使用图像的亮度在两种用户指定的颜色之间进行混合; Demo HarbethDemo地址 实操代码 // 混合颜色 let filter C7FalseColor.init(fristColor: .blue, secondColor: .green)// 方案1: ImageView.im…

BMVC2022 | HR-VQVAE:用于图像重建和生成的基于Hierarchical Residual Learning的VQVAE

原文标题:Hierarchical Residual Learning Based Vector Quantized Variational Autoencoder for Image Reconstruction and Generation 链接:https://bmvc2022.mpi-inf.mpg.de/0636_poster.pdf paper:https://arxiv.org/abs/2208.04554 一…

新业务势头强劲,晨光股份转型之路走得如何?

近期,据网传的一份文件显示,上海晨光文具股份有限公司(以下简称“晨光文具”、“晨光股份”、“晨光”“公司”)将于11月29日起,暂停线上线下店面等渠道的A4纸销售。晨光股份(603899.SH)针对此份…

PreScan快速入门到精通第四十一讲图像分割传感器

图像分割传感器(ISS)是一种生成语义分割图像的工具。它在诸如分类、(深度)学习、行人识别、避免碰撞等应用领域非常有用。ISS通常与相机传感器结合使用,以获得被分割的图像。 摄像机传感器 ISS语义类型颜色 ISS语义目标颜…

Vue3+Vite4+Naive-UI 项目自动导入API和组件

一、Vue3常用API导入 安装依赖 pnpm i -D unplugin-auto-import进行Vite配置 文件名:vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import AutoImport from unplugin-auto-import/vite// https://vitejs.dev/config/ ex…