cookie介绍

news2024/11/28 6:45:15

文章目录

  • 1.cookie是什么?
  • 2.cookie的存储位置
    • 3.什么是无状态问题,以及如何解决
  • 4.存储在客户端的好处
  • 5.cookie的主要特点
  • 6.cookie的缺点
  • 7.cookie的产生过程
  • 8.cookie的使用步骤
      • 1.安装依赖
      • 2.引入依赖
      • 3.在中间件注册
  • 9.cookie代码示例
  • 10.cookie的有效期

1.cookie是什么?

Cookie 是一种在客户端存储数据的机制,是HTTP协议中用来解决无状态问题的技术(本质就是一个响应头)。由服务器发送到客户端客户端收到以后将其存储,并在下次向服务器发送请求时传回给服务器,这样服务器就可以根据cookie来识别出客户端了。

2.cookie的存储位置

Cookie存储在客户端中,是一小段文本数据由服务器发送到客户端。它包含有关用户的偏好、会话信息、登录状态等。后续用户每次发送请求都会带着cookie(带着关于自己的信息)。服务器收到之后就可以辨别是谁发来的请求了,从而解决了服务器处理请求的无状态问题

3.什么是无状态问题,以及如何解决

无状态问题指的是在 Web 应用中,服务器在处理每个请求时,不保留任何与特定客户端或请求相关的状态信息。
这意味着服务器无法识别不同请求之间的关联。

  • 无状态问题可能导致以下影响:

      1. 无法维持会话:用户每次请求都需要重新进行身份验证。
      1. 缺乏个性化体验:不能根据用户的历史行为提供个性化服务。
      1. 难以实现购物车等功能:无法跟踪用户的选择和操作。
  • 为了解决无状态问题,常采用以下方法:

      1. 使用 Cookie:在客户端存储状态信息。
      1. 使用 Session:在服务器端存储状态信息。
      1. 使用令牌:例如 JSON Web Token(JWT)。

通过这些技术,可以在无状态的 Web 应用中实现状态管理,提供更好的用户体验和功能。

4.存储在客户端的好处

  1. 减少服务器的负载,因为部分数据可以直接在客户端处理。
  2. 提供更快的访问速度,无需每次请求都传输相同的信息。

为了最大程度地利用 Cookie 的优势并降低风险,开发人员通常会采取一些措施,如加密敏感信息、设置合适的有效期等。

5.cookie的主要特点

  1. 存储少量数据:例如用户偏好、会话信息等。
  2. 提高性能:减少服务器端的负载。
  3. 识别用户:用于个性化设置和跟踪用户行为。
  4. 生命周期:可设置有效期。

6.cookie的缺点

  1. 隐私问题:不能存储敏感信息。
  2. 大小限制:有容量限制。
  3. 安全性:存储在客户端可能被篡改或伪造。

7.cookie的产生过程

  1. 服务器在处理客户端的请求时,根据业务需求确定要设置的 Cookie 信息,包括名称、值和其他相关属性。
  2. 服务器将 Cookie 信息添加到响应头中。
  3. 在客户端接收到服务器的响应后,浏览器会解析响应头中的 Cookie 信息。
  4. 浏览器将 Cookie 存储在本地,以便在后续的请求中携带。

服务器发送 Cookie 到客户端的方式是通过在响应头中设置相关的字段。具体来说,服务器会将 Cookie 的名称、值等信息以特定的格式包含在响应头中,客户端浏览器接收到响应后,会根据约定的规则解析和处理这些 Cookie。

在后续的客户端请求中,浏览器会自动将存储的 Cookie 附加到请求头中,发送给服务器。服务器可以通过读取请求头中的 Cookie 信息,获取与客户端相关的状态和数据。
这样,通过 Cookie 的传递,服务器可以在多个请求之间保持对客户端的状态跟踪,实现诸如用户认证、个性化设置等功能。

8.cookie的使用步骤

1.安装依赖

yarn add express-parser -D
//或
npm install express-parser

2.引入依赖

const cookieParser = require('cookie-parser')

3.在中间件注册

app.use(cookieParser())

9.cookie代码示例

const cookieParser = require('cookie-parser')
const express = require('express')
const app = express()
app.use(cookieParser())
app.get('/set', (req, res) => {
  // 服务器通过res发给客户端
  res.cookie('name', '张元英')
  // 客户端将其存储下来
  console.log(req.cookies)
  res.send("cookie已经设置好了")
})
app.listen(6001,
  console.log('服务器启动了')
)

10.cookie的有效期

默认是一个会话session,即关闭浏览器的话,一个会话就结束了,此时cookie将会被删除。
我们可以通过设置 maxAge 参数(单位毫秒)来设置cookie的有效期。

res.cookie('name', 'value', { maxAge: 3600000 });

一秒=1000毫秒
一分钟=60秒
360000毫秒=1小时
在这里插入图片描述
此时的失效期为
我们改一下
在这里插入图片描述
可以看到响应头里面的失效期为1小时。一小时后,浏览器内的cookie将被删除。

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

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

相关文章

电子级高纯PFA材质实验室器皿耗材PFA漏斗PFA试剂瓶PFA烧杯

PFA三角漏斗,整体均是PFA材质,无污染风险,可高压灭菌。 尺寸:外径40mm、160mm PFA三角漏斗 特点: 1、一体式成型,结构稳定; 2、化学耐受性强,耐受强酸、强碱以及各种有机溶剂&…

上位机图像处理和嵌入式模块部署(qmacvisual寻找圆和寻找直线)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面有几篇文章,我们谈到过直线拟合、圆拟合和椭圆拟合。当时,我们的做法是,先找到了轮廓,接着找到…

数据资产如何入表?有哪些步骤?

当下,数据资产入表这一关键环节对于企业的高效运营与决策制定具有至关重要的作用。软信天成团队经过长期研究与实践,将数据资产入表的全流程归纳总结为四个核心步骤,以期为诸位提供帮忙。 (一)确保数据合规&#xff0…

8.均值滤波

1 简介 均值滤波是一种低通滤波,它可以有效过滤图片中的椒盐噪声,但是副作用也同样明显,会使图片的边缘过于模糊。   均值滤波的卷积核系数均为1。   这里最终重复一下算法实现以及验证的步骤:     1.MATLAB读取图片并转化…

JVM实战之性能调优[2](线程转储案例认识和分析)

文章目录 版权声明案例1:CPU占用率高问题问题描述解决思路补充内容 案例2:接口响应时间长问题问题描述解决思路Arthas trace命令Arthas watch命令解决问题 案例3:定位偏底层性能问题问题描述解决思路:Arthas火焰图问题解决 案例4&…

高级DBA带你处理MySQL客户端程序频繁访问MYSQL数据库并错误链接不释放导致连接数爆满事故实战

高级DBA带你处理MySQL客户端程序频繁访问MYSQL数据库并错误链接不释放导致连接数爆满事故实战 一、生产事故描述 Mysql生产数据库最大连接数爆满,其余客户端也同样拿不到数据库连接,生产异常,数据传输失败! 报错如下&#xff1a…

有趣的css - 文字下划线条动画按钮

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是用 css 实现文字下划线条动画按钮。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页…

【WEEK5】 【DAY5】DML语言【中文版】

2024.3.29 Friday 目录 3.DML语言3.1.外键(了解)3.1.1.概念3.1.2.作用3.1.3.添加(书写)外键的几种方法3.1.3.1.创建表时直接在主动引用的表里写(被引用的表的被引用的部分)3.1.3.2.先创建表后修改表以添加…

近年来,常见5大软件开发项目管理工具

时代进步,技术进步,汇总下近几年5大常用的软件开发项目管理工具。 1、微软项目管理软件 Microsoft Project(或MSP)是由微软开发销售的项目管理软件程序。软件设计目的在于协助项目经理制定发展计划、为任务分配资源、跟踪进度、管…

目标检测——门牌号数据集

一、重要性及意义 识别自然场景图像中的数字和号码具有极高的重要性和意义,这主要体现在以下几个方面: 实际应用广泛性:自然场景中的数字和号码识别技术在日常生活中有着广泛的应用。例如,在自动驾驶车辆中,准确识别路…

【网站项目】面向社区健康服务的医疗平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【动手学深度学习】深入浅出深度学习之利用神经网络识别螺旋状数据集

目录 🌞一、实验目的 🌞二、实验准备 🌞三、实验内容 🌼1. 生成螺旋状数据集 🌼2. 打印数据集 🌼3. 编程实现 🌻仿射层-Affine类 🌻传播层-Sigmoid类 🌻损失函数…

SSH连接SFTP传输:如何使用libssh库在windows环境下进行(文件、文件夹)传输到远端服务器

配置环境cmake编译libssh如何使用生成的dll与lib文件配置lib 方法一配置lib 方法二配置dll方法一 将dll配置进入环境变量配置dll方法二 在编译过后将dll直接与可执行文件.exe文件放在同一目录下传输文件、文件夹代码(适配windows) 由于windows上的编译器…

C语言 | Leetcode C语言题解之第2题两数相加

题目: 题解: struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {struct ListNode *head NULL, *tail NULL;int carry 0;while (l1 || l2) {int n1 l1 ? l1->val : 0;int n2 l2 ? l2->val : 0;int sum n1 n2 …

使用 Spring Email 和 Thymeleaf 技术,向新注册用户发送激活邮件(一)

这篇内容对应"2.1 发送邮件"小节 对应视频:9-发送邮件 视频链接 邮箱设置 需要去邮箱对应的官方客户端软件或网站开启IMAP/SMTP服务或POP3/SMTP服务器 如果不开启,就无法使用第三方用户代理,只能走第官方的电子邮件客户端软件或…

GT收发器第一篇_总体结构介绍

文章目录 前言GT收发器介绍 前言 之前写过一篇简单介绍GT的文章https://blog.csdn.net/m0_56222647/article/details/136730026,可以先通过这篇文章对整体进行简单了解一下。 GT收发器介绍 参考xilinx手册ug476 对于7系列的FPGA,共有3个系列&#xf…

3D检测:从pointnet,voxelnet,pointpillar到centerpoint

记录centerpoint学习笔记。目前被引用1275次,非常高。 地址:Center-Based 3D Object Detection and Tracking (thecvf.com) GitHub - tianweiy/CenterPoint CenterPoint:三维点云目标检测算法梳理及最新进展(CVPR2021&#xff…

【Java初阶(七)】接口

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 目录 1.前言2.接口2.1语法规则2.2接口使用2.3接口特性2.4实现多个接口2.5接口使用实例2.6Clonable接口和深拷贝 3.Object类3.1对象比较equals方法3.2hashcod…

Vivado使用(1)——综合的约束与策略

目录 一、概述 二、约束与策略 2.1 约束 2.1.1 物理约束 2.1.2 时序约束 2.2 综合策略 2.2.1 flatten_hierarchy 2.2.2 gated_clock_conversion 2.2.3 bufg 2.2.4 fanout_limit 2.2.5 directive 2.2.6 retiming 2.2.7 fsm_extraction 2.2.8 keep_equivalent_regi…

Uibot6.0 (RPA财务机器人师资培训第6天 )发票验真机器人案例实战

类似于小北的这篇博客:Uibot (RPA设计软件)Mage AI智能识别(发票识别)———课前材料五_uibot 添加mageai-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135591297?spm1001.2014.3001.5501训练网站:泓江…