当前位置: 首页 > news >正文

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 定义: 是服务器发送到用户浏览器并保存在浏览器上的一小块数据, 它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。 通常, 它用于告知服务端两个请求是否来自同一浏览器, 如保持用户的登录状态、 …...

智慧停车场导航系统架构及反向寻车系统解决方案

一、系统概述: 随着当前室内定位导航技术在大型公共场所如政务中心、商业综合体、车站中的应用越来越多,人们对智慧停车场的需求也日益凸显出来,并且智慧停车场对大型公共场所智慧化的整体建设起到重要作用。如何更有效提高停车效率&#xf…...

【小程序上传图片封装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理解

是什么&#xff1a;MVCC指的是在读已提交、可重复读这两种隔离级别下的事务在执行普通的select操作时&#xff0c;访问记录的版本链的过程&#xff0c;可以使不同事务的读写操作并发执行&#xff0c;提高性能。 MVCC 隐藏字段 undo log 版本链 ReadView 1.隐藏字段&#xf…...

ETF申购赎回指南:详解注意事项与低费率券商推荐!

​ETF 申购&赎回 ETF申购赎回是个啥业务&#xff1f; 01 ETF申购、赎回是一种交易委托方式&#xff0c;指投资者通过申购方式(买入方向)获得ETF份额&#xff0c;通过赎回的方式&#xff08;卖出方向&#xff09;换掉/卖出ETF份额。ETF申购&#xff0c;通常是通过一篮子成…...

List<T>属性和方法使用

//author&#xff1a;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

前言&#xff1a;使用了navicat连接了clickhouse我感觉不太好用&#xff0c;就整理了一下dbeaver连接 0、使用Navicat连接clickhouse 测试连接 但是不能双击打开&#xff0c;可是使用命令页界面&#xff0c;右键命令页界面&#xff0c;然后可以用sql去测试 但是不太好用&#…...

Java面向对象编程进阶(四)

Java面向对象编程进阶&#xff08;四&#xff09; 一、equals()方法的使用二、toString()方法的使用三、复习 一、equals()方法的使用 适用性&#xff1a;任何引用数据都可以使用。 自定义的类在没有重写Object中equals()方法的情况下&#xff0c;调用的就是Object类中声明的…...

【51单片机】第一个小程序 —— 点亮LED灯

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 单片机介绍LED灯介绍练习创建第一个项目点亮LED灯LED周期闪烁 单片机介绍 单片机&#xff0c;英文Micro Controller Unit&#xff0…...

如何通过自动化有效地简化 Active Directory 操作?

我们都知道规模稍微大一点的企业为了便于计算机的管理&#xff0c;基本都上了微软的AD域控制器。 那么肯定就会存在这么一个问题&#xff0c; 不断的会有计算机加入或者是退出域控制器&#xff0c;批量的创建、修改、删除AD域用户&#xff0c;如果企业的架构需要改变&#xff…...

Java-POI导出EXCEL(动态表头)

1、主要功能 导出excel&#xff0c;表头有固定的和动态的。动态表头之间不能穿插固定表头。 2、使用方法 引入下方两个工具类&#xff0c;定义excel固定表头类。调用方法即可。 调用方法&#xff1a; ExcelDynamicHeader<MajorNameChangeReport> ledgerSafetyProblemEx…...

利用 Direct3D 绘制几何体—9.流水线状态对象

到目前为止展示过编写输入布局描述、创建顶点着色器和像素着色器&#xff0c;以及配置光栅器状态组这 3 个步骤。接下来讲如何将这些对象绑定到图形流水线上&#xff0c;用以实际绘制图形。大多数控制图形流水线状态的对象被统称为流水线状态对象&#xff08;Pipeline State Ob…...

【开源项目】libfaketime安装、使用——小白教程

项目 Github&#xff1a;GitHub - wolfcw/libfaketime: libfaketime modifies the system time for a single application libfaketime安装 01.切换路径&#xff0c;目标路径&#xff1a;/usr/local &#xff08;在/usr/local路径下git clone 开源项目) 切换路径指令: cd …...

java.util.concurrent包

java.util.concurrent包是Java中用于并发编程的重要工具集&#xff0c;提供了丰富的并发原语和组件&#xff0c;以简化多线程编程的复杂性&#xff0c;并帮助开发者编写高效、可伸缩和线程安全的并发程序。其主要功能包括以下几个方面&#xff1a; 一、线程池和任务执行框架 …...

Django创建项目模块+创建映射类+视图

确保你的项目已经正确链接数据库 链接数据库的工具有很多,数据库的种类也有很多&#xff0c;我使用的数据库是mysql&#xff0c;工具是pmysql&#xff0c;使用pymysql链接数据库&#xff0c;在settings文件中这么设置&#xff1a; DATABASES {# default: {# ENGINE: dja…...

告别Softmax分类头:用K-Means思想在PyTorch里实现语义分割原型网络

告别Softmax分类头&#xff1a;用K-Means思想在PyTorch里实现语义分割原型网络 当你在Cityscapes数据集上调试语义分割模型时&#xff0c;是否遇到过这样的困境&#xff1a;增加新类别需要重新调整分类头参数&#xff0c;模型在复杂场景下对同类物体的多样性特征捕捉不足&#…...

ADXL362嵌入式驱动开发:SPI通信、寄存器配置与低功耗唤醒

1. ADXL362嵌入式驱动库深度解析与工程实践指南 ADXL362是Analog Devices&#xff08;ADI&#xff09;推出的超低功耗、三轴数字MEMS加速度计&#xff0c;专为电池供电的物联网终端、可穿戴设备、工业状态监测和远程传感器节点设计。其核心优势在于&#xff1a;在仅270 nA待机…...

不止于解题:用玄机靶场案例,打造你的自动化安全日志监控脚本

不止于解题&#xff1a;用玄机靶场案例打造自动化安全日志监控脚本 在网络安全领域&#xff0c;日志分析往往是防御的第一道防线。当我们在玄机靶场中完成SSH爆破日志分析的解题后&#xff0c;是否想过将这些手动操作转化为自动化工具&#xff1f;本文将带你从单次解题跃升到持…...

3个步骤掌握Laigter:2D游戏光照效果一键生成的秘密武器

3个步骤掌握Laigter&#xff1a;2D游戏光照效果一键生成的秘密武器 【免费下载链接】laigter Laigter: automatic normal map generator for sprites! 项目地址: https://gitcode.com/gh_mirrors/la/laigter 想让你的2D游戏瞬间拥有媲美3A大作的视觉震撼力吗&#xff1f…...

GLM-4V-9B开源模型部署教程:4-bit量化+Streamlit+消费级GPU全适配

GLM-4V-9B开源模型部署教程&#xff1a;4-bit量化Streamlit消费级GPU全适配 你是不是也遇到过这样的困扰&#xff1a;想本地跑一个真正能看图说话的多模态大模型&#xff0c;结果发现显存不够、环境报错、图片上传后模型乱输出&#xff0c;甚至直接卡死&#xff1f;官方Demo看…...

终极指南:SimpleNES如何通过数学魔法还原经典NES音效

终极指南&#xff1a;SimpleNES如何通过数学魔法还原经典NES音效 【免费下载链接】SimpleNES An NES emulator in C 项目地址: https://gitcode.com/gh_mirrors/si/SimpleNES SimpleNES是一款用C编写的NES模拟器&#xff0c;它不仅能精确模拟NES游戏机的图形显示&#x…...

5大核心功能解锁N_m3u8DL-RE:跨平台流媒体下载终极指南

5大核心功能解锁N_m3u8DL-RE&#xff1a;跨平台流媒体下载终极指南 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器&#xff0c;支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …...

使用Proteus进行电路仿真:为HunyuanVideo-Foley生成电子音效提供灵感

使用Proteus进行电路仿真&#xff1a;为HunyuanVideo-Foley生成电子音效提供灵感 1. 引言&#xff1a;当电路仿真遇上AI音效生成 想象一下&#xff0c;你正在为一款科幻游戏设计音效。传统的音效库已经用腻了&#xff0c;想要一些真正独特、带有"电路感"的声音效果…...

浮点数精度问题实战:如何用eps避免3.8的小数部分变成0.799999?

浮点数精度陷阱&#xff1a;从3.8的0.799999现象到工业级误差控制方案 当你在金融交易系统中发现0.01元的差额&#xff0c;或在游戏物理引擎中看到角色卡进墙壁&#xff0c;背后可能都是浮点数精度问题在作祟。最近团队在开发高频交易系统时&#xff0c;一个简单的价格计算3.8…...

Windows 10下ISE14.7与Modelsim 10.1c联合安装避坑指南(附完整破解流程)

Windows 10下ISE14.7与Modelsim 10.1c联合安装全流程解析 对于FPGA开发者而言&#xff0c;一套稳定的EDA环境是高效工作的基础。本文将详细介绍如何在Windows 10 64位系统中完成ISE Design Suite 14.7与Modelsim SE 10.1c的联合安装配置&#xff0c;特别针对安装过程中可能遇到…...