HTTP cookie 与 session
一.Cookie
定义:
是服务器发送到用户浏览器并保存在浏览器上的一小块数据, 它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。 通常, 它用于告知服务端两个请求是否来自同一浏览器, 如保持用户的登录状态、 记录用户偏好等
注意点:cookie数据块是存储在浏览器上面的,例如下图:
使用原理:
1.当用户在浏览器第一次访问某个服务器时,服务器在响应时会在HTTP头部设置Set-Cookie字段
2.用户的浏览器在接受到响应时,同时也接受到Cookie,并且将其保存在本地文件中
3.在之后的浏览器请求该服务器时,浏览器会自动在HTTP请求头部携带cookie字段,并且将本地Cookie内容发送给服务器
这样就可以做到身份确认了。
Cookie分类:
会话Cookie:在浏览器关闭时失效
持久Cookie:带有明确的过期日期或持续时间,可以跨多个浏览器会话存在
补充说明: 如果 cookie 是一个持久性的 cookie, 那么它其实就是浏览器相关的, 特定目录下的一个文件。 但直接查看这些文件可能会看到乱码或无法读取的内容,
因为 cookie 文件通常以二进制或 sqlite 格式存储。 一般我们查看, 直接在浏览
器对应的选项中直接查看即可如下:
下面我们来讨论一个重要问题:安全性
Cookie是存储在用户端的,如果cookie内容泄漏,那么就会导致用户信息泄露,从而出现重大问题,所以我们引入了session
二.Session
定义:
HTTP Session 是服务器用来跟踪用户与服务器交互期间用户状态的机制。 由于 HTTP
协议是无状态的(每个请求都是独立的) , 因此服务器需要通过 Session 来记住用户
的信息
工作原理:1.当用户通过浏览器初次访问一个服务器时,服务器会在服务器端创建一个Session ID,并且在响应时发送Cookie字段
2.服务器将Seesion ID对应的数据存储在服务器的内存/数据库/缓存中
3.当用户在浏览器再次访问该服务器时会携带Session ID,此时服务器就可以通过该ID来访问对应的用户数据
安全性:
之前我们说cookie存在安全性问题,那么session是如何解决该问题的呢?
session机制中在用户端的cookie还是存在泄露风险,但是要知道此时的cookie文件中并未存储用户的数据信息,只有session ID,虽然可以通过session ID来尝试访问服务器,但是子啊服务端可以通过一些其他检测手段,例如:异地登录需要人脸,手机电脑型号不匹配等,此时就可以大大缓解泄露的风险
以上就是cookie和session的全部内容了,感谢大家的支持!!!
相关文章:
HTTP cookie 与 session
一.Cookie 定义: 是服务器发送到用户浏览器并保存在浏览器上的一小块数据, 它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。 通常, 它用于告知服务端两个请求是否来自同一浏览器, 如保持用户的登录状态、 …...
智慧停车场导航系统架构及反向寻车系统解决方案
一、系统概述: 随着当前室内定位导航技术在大型公共场所如政务中心、商业综合体、车站中的应用越来越多,人们对智慧停车场的需求也日益凸显出来,并且智慧停车场对大型公共场所智慧化的整体建设起到重要作用。如何更有效提高停车效率…...
【小程序上传图片封装2024,支持多图,带进度,上传头像】
import config from ./config;// 支持多图,显示进度 export function uploadImages(count 1, sourceType, onLoading null, showProgress false, fileKey file) {return new Promise((resolve, reject) > {wx.chooseMedia({count: count, // 可以选择的图片数…...
[A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device Normal)
ver0.1 [看前序文章有惊喜。] 前言 前面花了很大的精力把ARM构建的VMSA中的几个核心的议题给大家做了介绍,相信大家已经能够理解并掌握ARM的内存子系统的工作原理大致框架。接下来我们会规划一些文章,对ARM内存子系统的一些细节做一下介绍,使ARM的内存子系统更加的丰满。本…...
驾校管理系统|基于java和小程序的驾校管理系统设计与实现(源码+数据库+文档)
驾校管理系统平台 目录 基于java和小程序的驾校管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&#…...
@Mapper使用中遇到的问题解法汇总
最近终于有时间写点代码相关的文章了,工作真的太忙了,果然又要测试又要开发的人最🐂🐴。 1.查询数据库有数据,但是代码中写select语句的时候查出为null Select("SELECT * FROM xx_manager order by id limit 1&q…...
深度学习:YOLO V3 网络架构解析
引言 YOLO V3(You Only Look Once Version 3)是YOLO系列算法的第三个版本,相比之前的版本,它在多个方面进行了优化和改进,不仅提升了检测精度,还保持了较快的检测速度。本文将详细介绍YOLO V3的主要改进以…...
SpringCloudAlibaba-Sentinel-熔断与限流
版本说明 <spring.boot.version>3.2.0</spring.boot.version> <spring.cloud.version>2023.0.0</spring.cloud.version> <spring.cloud.alibaba.version>2023.0.1.2</spring.cloud.alibaba.version>是什么 能干嘛 面试题 服务雪崩 安装使…...
mysql中的mvcc理解
是什么:MVCC指的是在读已提交、可重复读这两种隔离级别下的事务在执行普通的select操作时,访问记录的版本链的过程,可以使不同事务的读写操作并发执行,提高性能。 MVCC 隐藏字段 undo log 版本链 ReadView 1.隐藏字段…...
ETF申购赎回指南:详解注意事项与低费率券商推荐!
ETF 申购&赎回 ETF申购赎回是个啥业务? 01 ETF申购、赎回是一种交易委托方式,指投资者通过申购方式(买入方向)获得ETF份额,通过赎回的方式(卖出方向)换掉/卖出ETF份额。ETF申购,通常是通过一篮子成…...
List<T>属性和方法使用
//author:shark_ddd using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;//使用函数来减少长度namespace List_T {class Student{public string Name { get; set; }public int Age { get; set; …...
记一次:使用使用Dbeaver连接Clickhouse
前言:使用了navicat连接了clickhouse我感觉不太好用,就整理了一下dbeaver连接 0、使用Navicat连接clickhouse 测试连接 但是不能双击打开,可是使用命令页界面,右键命令页界面,然后可以用sql去测试 但是不太好用&#…...
Java面向对象编程进阶(四)
Java面向对象编程进阶(四) 一、equals()方法的使用二、toString()方法的使用三、复习 一、equals()方法的使用 适用性:任何引用数据都可以使用。 自定义的类在没有重写Object中equals()方法的情况下,调用的就是Object类中声明的…...
【51单片机】第一个小程序 —— 点亮LED灯
学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 单片机介绍LED灯介绍练习创建第一个项目点亮LED灯LED周期闪烁 单片机介绍 单片机,英文Micro Controller Unit࿰…...
如何通过自动化有效地简化 Active Directory 操作?
我们都知道规模稍微大一点的企业为了便于计算机的管理,基本都上了微软的AD域控制器。 那么肯定就会存在这么一个问题, 不断的会有计算机加入或者是退出域控制器,批量的创建、修改、删除AD域用户,如果企业的架构需要改变ÿ…...
Java-POI导出EXCEL(动态表头)
1、主要功能 导出excel,表头有固定的和动态的。动态表头之间不能穿插固定表头。 2、使用方法 引入下方两个工具类,定义excel固定表头类。调用方法即可。 调用方法: ExcelDynamicHeader<MajorNameChangeReport> ledgerSafetyProblemEx…...
利用 Direct3D 绘制几何体—9.流水线状态对象
到目前为止展示过编写输入布局描述、创建顶点着色器和像素着色器,以及配置光栅器状态组这 3 个步骤。接下来讲如何将这些对象绑定到图形流水线上,用以实际绘制图形。大多数控制图形流水线状态的对象被统称为流水线状态对象(Pipeline State Ob…...
【开源项目】libfaketime安装、使用——小白教程
项目 Github:GitHub - wolfcw/libfaketime: libfaketime modifies the system time for a single application libfaketime安装 01.切换路径,目标路径:/usr/local (在/usr/local路径下git clone 开源项目) 切换路径指令: cd …...
java.util.concurrent包
java.util.concurrent包是Java中用于并发编程的重要工具集,提供了丰富的并发原语和组件,以简化多线程编程的复杂性,并帮助开发者编写高效、可伸缩和线程安全的并发程序。其主要功能包括以下几个方面: 一、线程池和任务执行框架 …...
Django创建项目模块+创建映射类+视图
确保你的项目已经正确链接数据库 链接数据库的工具有很多,数据库的种类也有很多,我使用的数据库是mysql,工具是pmysql,使用pymysql链接数据库,在settings文件中这么设置: DATABASES {# default: {# ENGINE: dja…...
sysstat多语言支持:国际化部署的完整指南
sysstat多语言支持:国际化部署的完整指南 【免费下载链接】sysstat Performance monitoring tools for Linux 项目地址: https://gitcode.com/gh_mirrors/sy/sysstat sysstat是一款功能强大的Linux性能监控工具,支持多语言界面,能够帮…...
bilibili-parse极简工具:三步搞定B站视频解析的高效方案
bilibili-parse极简工具:三步搞定B站视频解析的高效方案 【免费下载链接】bilibili-parse bilibili Video API 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse 您是否曾因想保存B站精彩视频却被复杂的技术门槛劝退?是否在面对AV号/…...
总担心家人生病?心理学教你摆脱 “灾难化思维”
父母晚回半小时,孩子轻微咳嗽,伴侣说头晕…… 你是不是瞬间脑补出无数可怕画面,越想越慌,直到拨通电话才安心?这不是矫情,是灾难化思维在作祟。一、为什么总担心家人生病?3个深层根源对失去的恐…...
OpenClaw飞书机器人速成:GLM-4.7-Flash对话触发与任务执行
OpenClaw飞书机器人速成:GLM-4.7-Flash对话触发与任务执行 1. 为什么选择OpenClaw飞书GLM组合? 去年夏天,当我第一次尝试用自然语言让AI帮我整理会议录音时,经历了整整三天的挫败——要么是云端API调用太贵,要么是本…...
Spring Boot项目里Redis连接总报错?从配置到调试的完整避坑指南(附Redis 6+密码问题)
Spring Boot项目Redis连接报错全解析:从配置陷阱到高效调试 Redis作为Spring Boot项目中最常用的缓存组件,连接报错却是开发者最常遇到的"拦路虎"。明明按照文档配置了参数,却总是遇到Connection refused、NOAUTH Authentication r…...
从‘距离’视角重新理解GAN:为什么Wasserstein距离能解决JS散度的缺陷?(附WGAN代码逐行解读)
从‘距离’视角重新理解GAN:Wasserstein距离如何突破JS散度的局限 想象你正在教一个机器人画家创作梵高风格的画作。传统方法中,艺术评论家(判别器)只能给出"像"或"不像"的二元评价,导致学习过程…...
从序列到功能:如何用MEME+MAST发现蛋白基序的隐藏规律(含UniProt验证技巧)
从序列到功能:如何用MEMEMAST发现蛋白基序的隐藏规律(含UniProt验证技巧) 在蛋白质组学研究中,保守基序(motif)往往承载着关键的功能密码。当我们在MEME中完成初步预测后,如何从这些序列模式中挖…...
ECharts甘特图实战:5分钟搞定项目进度可视化(附完整代码)
ECharts甘特图实战:5分钟搞定项目进度可视化(附完整代码) 项目管理中,进度可视化是团队协作的核心需求。传统表格难以直观展示任务依赖关系,而专业项目管理软件又过于笨重。ECharts作为国内最流行的数据可视化库&…...
工业Python网关性能断崖式下降?实测发现:asyncio在ARM Cortex-A9上协程切换开销超预期237%,3种轻量替代架构对比报告
第一章:工业Python网关性能断崖式下降的现场诊断逻辑工业Python网关在连续运行数周后突发响应延迟激增、消息吞吐骤降50%以上,此类“断崖式”性能劣化往往非单一因素导致,需构建分层递进的现场诊断逻辑:从资源表象切入,…...
ANIMATEDIFF PRO性能对比:Ubuntu与Windows系统基准测试
ANIMATEDIFF PRO性能对比:Ubuntu与Windows系统基准测试 同样的硬件,不同的系统,AI视频生成性能究竟有多大差异? 作为一名长期从事AI视频生成的技术从业者,我经常被问到一个问题:在Ubuntu和Windows系统上运行…...
