安全与加密常识(9)5分钟带你了解经常听到的cookie

文章目录

    • Cookie是什么
    • Cookie有什么用
    • Cookie的表示
    • Cookie设置过程
    • Cookie的生命周期

Cookie是什么

cookie的中文翻译是曲奇,小甜饼的意思。Cookie(HTTP cookie)是一种服务器存储在用户计算机上的小型数据文件,用于存储特定网站的用户信息。它们通常由网站通过用户的浏览器存储和发送,以便在后续访问中识别用户、记录用户的偏好设置或跟踪用户行为等。

Cookie有什么用

我们想象一个场景,当我们打开一个网站时,如果这个网站我们曾经登录过,那么当我们再次打开网站时,发现就不需要再次登录了,而是直接进入了首页。例如bilibili,csdn等网站。

这里所说的就是会话状态管理。当用户访问一个网站时,服务器可以创建一个包含会话信息的Cookie,然后将该Cookie发送到用户的浏览器。浏览器会将Cookie存储在本地,每次用户与该网站交互时,浏览器都会将Cookie发送回服务器,以便服务器识别用户的会话状态,例如登录状态或购物车内容。

下面展示bilibili网站保存的cookie。

Cookie还常用于跟踪用户的浏览行为,以便向用户展示相关的广告。这些Cookie可以记录用户访问过的网页和搜索内容,从而帮助广告商分析用户的兴趣,并投放更有针对性的广告。

Cookie的表示

一般情况下,cookie是以键值对进行表示的(key-value),例如name=jack,这个就表示cookie的名字是name,cookie携带的值是jack。

Cookie设置过程

具体来说,设置Cookie的步骤如下:

  1. 服务器端设置Cookie: 当服务器需要在客户端保存一个Cookie时,它会在HTTP响应头部中添加Set-Cookie字段。Set-Cookie字段的格式如下:

    Set-Cookie: <cookie-name>=<cookie-value>
    

    可以附加多个可选的属性,例如:

    • Expires=<date>: 指定Cookie的过期时间。
    • Max-Age=<seconds>: 指定Cookie的最大存活时间(秒数)。
    • Domain=<domain>: 指定Cookie的适用域名。
    • Path=<path>: 指定Cookie的适用路径。
    • Secure: 仅在HTTPS连接中发送Cookie。
    • HttpOnly: 限制Cookie只能通过HTTP或HTTPS协议访问,JavaScript无法访问。

    例如,设置一个名为session_id的Cookie,并指定它的过期时间和适用路径:

    Set-Cookie: session_id=abc123; Expires=Wed, 21 Oct 2024 07:28:00 GMT; Path=/
    

  2. 客户端存储Cookie: 当客户端收到带有Set-Cookie头部的响应后,它会将这些Cookie存储起来。在接下来的每次请求中,客户端会自动在请求头部中加入一个Cookie字段,其中包含了所有相关的Cookie数据。

  3. 发送Cookie到服务器: 在每次向服务器发送请求时,客户端会在请求头部中添加一个Cookie字段,将所有的Cookie数据发送给服务器。Cookie字段的格式如下:

    Cookie: <cookie-name>=<cookie-value>; <cookie-name>=<cookie-value>; ...
    

    例如:

    Cookie: session_id=abc123; user_id=12345
    

Cookie的生命周期

cookie有2种存储方式,一种是会话性,一种是持久性。

  • 会话性:如果cookie为会话性,那么cookie仅会保存在客户端的内存中,当我们关闭客服端时cookie也就失效了

    Set-Cookie: name=value; Path=/; HttpOnly;
    
  • 持久性:如果cookie为持久性,那么cookie会保存在用户的硬盘中,直至生存期结束或者用户主动将其销毁。
    cookie我们是可以进行设置的,我们可以人为设置cookie的有效时间,什么时候创建,什么时候销毁。

    Set-Cookie: name=value; Expires=Wed, 21 Oct 2026 07:28:00 GMT; Path=/;
    

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

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

相关文章

javaWeb 增删改查基本操作

通过之前的文章可以快速的了解SpringBoot 项目&#xff0c;这是一个关于增删改查的案例&#xff0c;可以巩固之前学习到的知识。 案例开始 准备工作 需求 开发员工管理系统&#xff0c;提供增删改查功能。 环境搭建 数据库&#xff08;mysql&#xff09; emp、dept表导入 #…

Oracle线上执行SQL特别慢的原因分析

一、背景&#xff1a; 线上反馈一张表select * from table where idxxx语句执行特别慢&#xff0c;超过60s超时不能处理&#xff0c;第一直觉是索引失效了&#xff0c;开始执行创建索引语句create index index_name on table() online。但是执行了超过20分钟索引还没有创建成功…

自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection

文章目录 1. 摘要概述2. 背景介绍3. 方法3.1 俯视图投影3.2 网络结构3.2.1 投影变换层3.2.2 投影变换层3.2.3 道路投影预测分支 3.3 车道预测头3.4 训练和真实值关联 4. 实验4.1 合成 3D 车道数据集4.2 真实世界 3D 车道数据集4.3 评估结果4.4 评估图像仅车道检测 5. 总结和讨论…

第59期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

【Python与GUI开发】事件处理与打包分发

文章目录 前言 一、高级事件处理 1.自定义事件 2.拖放操作 3.复杂控件的事件处理 二、打包和分发 Tkinter 应用 1.PyInstaller 2.cx_Freeze 3.spec 文件 4.分发注意事项 三、实战示例&#xff1a;文件浏览器 总结 前言 在前面的讨论中&#xff0c;我们深入理解了 T…

Dev—c++小熊猫6.7.5免费下载攻略

点击蓝字 关注我们 今天我来给大家分享一个Dev—c小熊猫6.7.5免费下载攻略&#xff0c;内容如下 1. https://gitee.com/royqh1979/Dev-CPP/releases/tag/v6.7.5 点进这一个官网&#xff0c;一直往下滑&#xff0c;找到第三个选项&#xff0c;把它下载下来。 2. 安装时一些选择…

自制OJ在线判题网站

项目效果啊演示&#xff1a; 项目链接&#xff1a; Gitee:Oj: 自定义实现的OJ在线做题网站&#xff0c;自主实现代码沙箱 (gitee.com) GitHub:GitHub - SakanaYdy/Oj 仓库中含有完整的项目流程PDF文档&#xff0c;可以参考自定义OJ网站。 目前只支持Java语言&#xff0c;可以…

CSA笔记3-文件管理命令(补充)+vim+打包解包压缩解压缩命令

grep(-i -n -v -w) [rootxxx ~]# grep root anaconda-ks.cfg #匹配关键字所在的行 [rootxxx ~]# grep -i root anaconda-ks.cfg #-i 忽略大小写 [rootxxx ~]# grep -n root anaconda-ks.cfg #显示匹配到的行号 [rootxxx ~]# grep -v root anaconda-ks.cfg #-v 不匹配有…

大模型算法专家的逻辑推演

大家好&#xff0c;我是卢麒。 如今&#xff0c;各大电商平台对于大模型算法的研发已经历经了无数次的迭代。 本文基于大模型算法的一些实际应用&#xff0c;做一些分析。 一&#xff0c;大模型算法专家的技术应用 作为大模型算法专家&#xff0c;在技术应用时&#xff0c;…

使用windows批量解压和布局ImageNet ISLVRC2012数据集

使用的系统是windows&#xff0c;找到的解压命令很多都linux系统中的&#xff0c;为了能在windows系统下使用&#xff0c;因此下载Git这个软件&#xff0c;在其中的Git Bash中使用以下命令&#xff0c;因为Git Bash集成了很多linux的命令&#xff0c;方便我们的使用。 ImageNe…

set类和map类介绍和简单使用

目录 set类介绍与简单使用 set类 multiset类 map类介绍与简单使用 map类 multimap类 set类介绍与简单使用 set类是一种关联式容器&#xff0c;在数据检索时比序列式容器效率更高。本质是一个常规的二叉搜索树&#xff0c;但是为了防止出现单支树导致效率下降进行了相关优…

Linux 命令 —— top命令(查看进程资源占用)

文章目录 top 命令显示信息介绍top 命令使用 top 命令显示信息介绍 top 命令是 Linux/Unix 系统中常用的进程监控工具&#xff0c;可以实时动态显示系统中各个进程的资源占用情况&#xff0c;包括CPU、内存等。 进入 linux 系统&#xff0c;直接输入 top&#xff0c;回车&…

2014-2024年腾势D9N7N8EVDMI维修手册和电路图资料线路图接线图

经过整理&#xff0c;2014-2024年腾势汽车全系列已经更新至汽修帮手资料库内&#xff0c;覆盖市面上99%车型&#xff0c;包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表…

中国星坤X0800HI系列线对板连接器:创新技术连接,引领智能家居未来!

近日&#xff0c;中国星坤推出的X0800HI系列线对板连接器&#xff0c;凭借其独特的设计和卓越的性能&#xff0c;引起了业界的广泛关注。 X0800HI系列线对板连接器在极小空间内实现了线对板的W-B连接&#xff0c;这不仅解决了传统连接方式中剥线和焊接的繁琐步骤&#xff0c;还…

Seata源码分析 全局事务开启提交回滚流程

文章目录 Seata全局事务源码Seata AT模式的设计思路源码入口TransactionalTemplate开启全局事务TM开启全局事务TC处理TM的请求 全局事务提交微服务端TM发送请求TC处理TM的请求RM处理TC的请求 全局事务回滚TM发送请求TC处理TM的请求RM处理TC的请求 补充知识微服务怎么找TC服务 S…

配置三层链路聚合增加链路带宽并提高可靠性的示例

规格 适用于所有版本的AR路由器。 AR161、AR161W、AR169、AR161G-L不支持该示例。 组网需求 在某小型企业网环境中部署了两台AR路由器Router_1和Router_2&#xff0c;Router_1作为用户接入设备&#xff0c;Router_2作为网络接入设备。为了保证用户的带宽&#xff0c;当用户量…

【Kaggle】练习赛《保险交叉销售的二分类预测》

前言 本篇文章介绍的是Kaggle月赛《Binary Classification of Insurance Cross Selling》&#xff0c;即《保险交叉销售的二元分类预测》。这场比赛非常适合作为机器学习入门者的实践练习。在之前的几期练习赛中&#xff0c;我们从多个角度详细讲解了探索性数据分析&#xff0…

爆火出圈的Robotaxi,会是自动驾驶的最优解吗?

八年前&#xff0c;百度决定投资无人驾驶时&#xff0c;李彦宏说&#xff1a;“它是人工智能最顶级的工程&#xff0c;将彻底改变人类的出行和生活。” 八年后&#xff0c;萝卜快跑从理想变成现实&#xff0c;奔跑在全国各地的街头&#xff0c;诠释了什么叫“科技不该高高在上…

2.javaWeb_请求和响应的处理(Request,Response)

2.请求和响应的处理 文章目录 2.请求和响应的处理一、动态资源和静态资源javax.servlet(包) 二、Servlet体系1.简介2.HttpServlet3.Servlet生命周期 三、Request对象1.ServletRequest1)ServletRequest主要功能有&#xff1a;2)ServletRequest类的常用方法: 2.HttpServletReques…

72B大模型分片部署

一、定义 目的官方教程案例小模型修改device_map 方式二 二、实现 目的&#xff1a; 将72B大模型 部署到2张gpu 显卡中。官方教程 帖子&#xff1a;https://huggingface.co/blog/accelerate-large-models实现 1. 自动部署 model AutoModelForCausalLM.from_pretrained(mod…