Cookie 和 Session

news2025/2/25 3:25:25

本文主要讲解一下 Cookie 和 Session 的关系和区别,大家都知道 Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的,然而更详细的说,恐怕就不太清楚了


文章目录

  • 1. 什么是 HTTP
  • 2. Cookie
    • 2.1 图解 Cookie 工作原理
  • 3. Session
    • 3.1 图解 Session 工作原理
  • 4. Cookie 与 Session 的区别

1. 什么是 HTTP

首先要先介绍一下什么是 HTTP

HTTP:超文本传输协议,它是一个应用层协议,是万维网数据通信的基础,通过 HTTP 协议请求的资源由统一资源标识符(URL)来标识

HTTP 是无状态协议,说明它不能以状态来区分和管理请求和响应,所以服务器单单从网络连接上无法得知客户身份

所以就需要给客户端们办法一个通行证,每人一个,无论谁访问都必须带有通行证,这样服务器就可以通过通行证得知客户身份了。这就是 Cookie 的工作原理

2. Cookie

上面说过 Cookie 就像是通行证,通行证上保存的就是客户端的用户信息,随着每次请求发送到服务器

Cookie会根据响应报文里的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下客户端再向服务端发起请求时,客户端会自动在请求报文中加入Cookie值之后发送出去.

之后服务端发现客户端发送过来的Cookie后,会检查是哪个客户端发送过来的请求,然后对服务器上的记录,最后得到了之前的状态信息。

如下,是访问百度官网时,响应标头中的 Set-Cookie

请添加图片描述

2.1 图解 Cookie 工作原理

请添加图片描述

请添加图片描述

3. Session

服务器执行 Session 机制的时候会生成 SessionId,这个 Id 会通过 Set-Cookie 发送到客户端,并会被客户端保存下来,保存的容器就是 Cookie

客户端每次请求都会把这个 Id 值放在请求的头部发送给服务器

因此当完全禁用掉浏览器的 Cookie 时,服务器的 Session 也会不能使用

3.1 图解 Session 工作原理

请添加图片描述

4. Cookie 与 Session 的区别

  1. Cookie 数据存放在客户的浏览器上,Session 数据放在服务器上,但是服务器的 Session 的实现对客户端的 Cookie 有依赖关系
  2. Cookie 不是很安全,别人可以分析放在本地的 Cookie 并进行 Cookie 欺骗,考虑安全应当使用 Session
  3. Session 会在一定时间内保存在服务器上。当访问增多,会比较占用服务器性能

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

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

相关文章

​目标检测算法——YOLOv5/YOLOv7改进之结合Criss-Cross Attention

关注”PandaCVer“公众号 深度学习Tricks,第一时间送达 (一)前沿介绍 论文题目:CCNet: Criss-Cross Attention for Semantic Segmentation 论文地址:https://arxiv.org/pdf/1811.11721.pdf 代码地址:ht…

B树和B+树(平衡多路查找树)

文章目录为什么需要B树B 树的特点B树的查找B树的引入B树的删除链接:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 可以点击 Indexing 下的 B Trees 和 B Trees 去学习。 为什么需要B树 对 B 树的需求随着访问物理存储介质(如硬盘&…

【Java】反射, 枚举,Lambda表达式

✨博客主页: 心荣~ ✨系列专栏:【Java SE】 ✨一句短话: 难在坚持,贵在坚持,成在坚持! 文章目录一. 反射1. 反射的概述2. 反射的使用2.1 反射常用的类2.2 通过反射获取Class对象2.3 获得Class类相关的方法2.4 使用反射创建实例对象2.5 使用反射获取实例对象中的构造方法2.6 通过…

Spring学习第1篇:学习spring必备的概念知识

大家家好,我是一名网络怪咖,北漂五年。相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知Spring重要性,现在普遍都使用SpringBoot来开发,面试的时候SpringBoot原理也是经常会问到&…

纸牌博弈问题

纸牌博弈问题 作者:Grey 原文地址: 博客园:纸牌博弈问题 CSDN:纸牌博弈问题 题目描述 有一个整型数组 A,代表数值不同的纸牌排成一条线。玩家 a 和玩家 b 依次拿走每张纸牌, 规定玩家 a 先拿&#xff…

win11开机音效设置的方法

微软为win11重做了开机音效,与我们一直以来使用的开机音效不太一样,听起来很不舒服,因此我们可以通过设置开机音效的方法来修改它,只要在个性化设置中就可以找到了,下面一起来试试看吧。 win11开机音效怎么设置&#…

wordpress图片压缩插件-免费批量wordpress图片压缩

wordpress图片压缩插件,相信每个人都知道图片的太大会影响到网站的加载速度。过多的图像会对服务器产生相应的压力。导致网站打开会越来越慢。而图片也是会被搜索引擎收录的,可以在百度图片里面能搜索的到,也算是增加了网站的宣传力度。今天给…

(附源码)计算机毕业设计SSM基于微信平台的匿名电子投票系统

(附源码)计算机毕业设计SSM基于微信平台的匿名电子投票系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。…

【微信小程序支付功能】uniapp实现微信小程序支付功能

支付实现流程 首先前端写一个页面,简单说就是有一个输入支付金额的 然后有一个按钮,点击可以支付。 点击按钮后触发支付方法,就是我下面写的这些代码,复制就可以了。 然后先请求后端的一个方法,把你的价格还有openid之…

在Vue中使用Swiper轮播图、同时解决点击轮播图左右切换按钮不生效的问题、同时将轮播图抽离出为一个公共组件

轮播图左右的切换按钮、如果点击没有反应,控制台也没有报错。很大可能是版本问题。如果不指定版本信息、默认安装的是最新的版本。版本过高或者过低都有可能导致无效。目前兼容性和稳定性比较好的是:5.4.5。 官网地址:https://www.swiper.com…

【隧道应用-1】netsh端口映射内网

1、端口映射 是指将一台主机的内网(LAN)IP 地址映射成一个公网(WAN)IP 地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域内部提供这种特定服务的主机;利用端口映射功能…

猿创征文|程序员的浪漫(代码猜诗词)

✅作者简介: 全栈领域新星创作者,阿里云专家博主,华为云云享专家博主,掘金后端评审团成员, 💕前言:在大众的认知里,程序员只是一群坐在电脑前熬夜敲代码的…

webrtc 笔记

webrtc主要步骤 navigator.mediaDevices.getUserMedia({audio:true,redio:true}) 获取用户的摄像头状态,返回媒体流,把媒体流赋给video的srcObject属性,就能在页面上展示自己的音视频 let peer new RTCPeerConnection(servers) 创建peer实例,通过这个实例的一系列方法实现p2p…

vue3 :一个实用的 vite + vue3 组件库脚手架工具

目录 1 组件库脚手架内容 2 组件库脚手架技术栈 3 使用说明 3.1 克隆代码到本地 3.2 安装依赖 3.3 本地开发 3.4 创建新组件 3.5 构建文档 3.6 构建 example 3.7 发布组件库 4 组件库命令说明 无论是 vue2 全家桶还是 vue3 vite TypeScript,组件库的使…

无需购买服务器,用cpolar发布本地web网站

随着互联网的快速发展,网络也成为我们生活中不可缺少的必要条件,为了能在互联网世界中有自己的一片天地,建立一个属于自己的网页就成为很多人的选择。但互联网行业作为资本密集的行业,委托别人建立一个像样的网站要花费不少&#…

一文搞定基因型数据清洗

文章目录数据1 二进制文件2. plink二进制文件变为文本文件(ped和map)3. plink将vcf转化为plink文件4. 提取样本和SNP4.1 提取样本4.2 提取SNP5. plink和表型数据合并6. 数据汇总6.1 次等位基因频率(maf)6.2 缺失6.3 哈温检测6.4 杂…

JDBC-01:如何获取数据库连接

文章目录初步了解jdbcJDBC程序编写步骤Driver接口介绍导入驱动(idea)加载与注册JDBC驱动要素一:URL要素二:用户名和密码获取数据库连接获取数据库连接的方式一获取数据库连接的方式二获取数据库连接的方式三获取数据库连接的方式四…

FreeRTOS移植STM32 printf()函数重定向到USART3

我们在移植FreeRTOS过程中如果没有printf()函数打印调试信息到串口精灵,则程序开发就会非常不方便。本文实现STM32工程上的printf()函数,方便用于程序开发中调试信息打印到电脑上的串口调试精灵。 最简单的方法就是使用MicroLIB库。 一、KEIL-MDK中勾选U…

字体管理工具 - RightFont使用教程

RightFont RightFont是 Mac OS X 上一款非常轻巧的字体管理工具,目前已经完成了与 PhotoShop、Sketch 两大设计应用的集成。RightFont 是 Mac系统上一款优秀的字体管理工具,专为设计师设计,轻量化和简洁,可以方便快速的管理你的字…

《C陷阱与缺陷》读书笔记1

词法分析:贪心法 主要就是解释词法分析时的原则,即: 编译器将程序分解为符号时,从左到右一个字符接一个字符的读入。如果编译器的输入流截止至某个字符之前都已经被分解为一个个符号,那么下一个符号将包括从该字符之…