HTTP Cookie 你了解多少?

HTTP Cookie详解 Cookie1.Cookie是什么?2.怎么查看浏览器上的Cookie3.Cookie有什么作用4. 与Cookie相关的HTTP首部字段5.Cookie的创建6.Cookie的使用7.Cookie有什么限制 1.Cookie是什么? HTTP Cookie(也叫Web Cookie浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携... 阅读详情

Cookie是什么?

先给大家举个例子,F12 打开浏览器的页面之后,我们能在 Response Headers 的字段里面看到一个header 叫做 Set-Cookie,如下所示

在这里插入图片描述

图中包含的 Set-Cookie 为

Set-Cookie:uuid_tt_dd=10_20293537580-1709432565344-232525; Expires=Thu, 01 Jan 2025 00:00:00 GMT; Path=/; Domain=.csdn.net

这个例子中,uuid_tt_dd 的值为 10_20293537580-1709432565344-232525,这个cookie 在2025 年 1 月 1 日过期,只能由 .csdn.net 域和其根路径下的页面访问,我们可以在浏览器调试模式下的 Application 中找到uuid_tt_dd被浏览器记录下来的样式。
Reuqest Headers

当发起新的请求时,Cookie 会出现在请求的 Request Headers中。
在这里插入图片描述

从这里我们可以看到,Request Headers里面的 Cookie 中记录了 uuid_tt_dd。

基础交互流程如下所示
在这里插入图片描述

Cookie 说白了就是一个 http 协议中的 header 字段,这个字段会由被访问的网站放在response-header 中通过 Set-Cookie 返回,当用户浏览该网站时,浏览器存储 Cookie 后,下次访问会将该值带上,那么这个值的信息代表什么含义?这是可以由网站开发者定义的,可以在这个值中存一些如登录状态的信息,这样当请求携带 cookie 时,信息会被读取以帮助网站记住用户的访问信息和偏好设置,使得网站能够为用户提供个性化的浏览体验,并可以用于追踪用户在网站上的行为。

Cookie分类和属性含义

属性

Cookie在HTTP协议中位于HTTP头部。它有多个属性,包括:Expires/Max-Age,Domain,Path,Secure,HttpOnly,SameSite等,这些属性帮助控制Cookie的安全性和使用范围。

Expires/Max-Age: Expires 和 Max-Age 是 Cookie 的两个属性,用于定义 Cookie 的有效期。Expires 指定了 Cookie 的过期日期和时间,浏览器会在这个时间后删除 Cookie。它使用特定的日期格式,如 Expires=Wed, 09 Jun 2021 10:18:14 GMT 。Max-Age 指定了从当前时间开始,Cookie 存在的秒数。例如,Max-Age=3600 表示 Cookie 将在一小时后过期。如果同时指定了 Expires 和 Max-Age ,Max-Age 具有更高的优先级。

Domain: Domain 属性定义了哪些域名可以接收 Cookie。设置 Domain 属性后,不仅当前域名下的页面可以访问这个 Cookie,指定的域以及其子域也能访问。例如,如果一个Cookie 的 Domain 属性被设置为 example.com ,那么 www.example.com 和subdomain.example.com 等都可以访问这个 Cookie。这有助于跨子域共享 Cookie信息,但也需要谨慎使用以避免安全问题。。

Path: Path 属性指定了哪些网站路径下的页面可以访问 Cookie。如果设置了 Path=/blog ,那么只有网址下的 /blog 目录及其子目录中的页面能够访问这个 Cookie。这有助于限制 Cookie 的访问范围,确保只有特定部分的网站可以使用该 Cookie,从而提高网站的安全性和数据的准确性。。

Secure: Secure 属性标记 Cookie 仅通过安全的 HTTPS 连接发送。Secure 属性设置后,Cookie 只会在 HTTPS 请求中被发送。这有助于防止 Cookie 在数据传输过程中被窃听,增强了用户数据的安全性。

HttpOnly: 当 Cookie 设置为 HttpOnly 时,意味着这个 Cookie 只能通过 HTTP 协议被服务器访问,而不能通过客户端脚本(如 JavaScript )访问,这有助于增强安全性,防止跨站脚本攻击( XSS )。这种设置不限制 Cookie 通过 HTTP 或 HTTPS 协议传输,主要目的是提高安全性,确保只有服务器能够读取 Cookie 信息。

SameSite: SameSite 属性用于控制 Cookie 在跨站请求中的发送行为,有助于防止跨站请求伪造攻击(CSRF)。它有三个值:Strict 、Lax 和 None。 Strict 只允许来自相同站点的请求发送 Cookie;Lax 允许某些第三方请求发送 Cookie,例如从其他网站导航到链接的情况;None 允许所有跨站请求发送Cookie,但必须与 Secure 属性一起使用,确保Cookie仅通过安全连接发送。不设置SameSite属性和将SameSite设置为None在效果上不完全相同,未明确设置 SameSite 属性时,浏览器可能会使用默认行为,这在不同的浏览器和版本中可能有所不同。而明确将 SameSite 设置为 None 则指示浏览器在所有跨站请求中发送 Cookie,但这必须与 Secure 属性一起使用,以确保Cookie仅通过 HTTPS传输。因此,明确设置提供了更明确的控制和跨浏览器的一致性。

一个包含多种属性的Cookie例子可能是这样的:

Set-Cookie: UID=Jack; Expires=Wed, 09 Jun 2023 10:18:14 GMT; Domain=example.com; Path=/; Secure; HttpOnly; SameSite=Strict

这个例子中,UID 是设置给用户 Jack 的Cookie,它在2023年6月9日过期,只能由example.com域和其根路径下的页面访问。此Cookie仅通过HTTP传输,不允许JavaScript访问,且设置了SameSite为Strict,限制跨站点的发送。

类型

Cookie可以分为多种类型,包括基于生命周期的会话Cookie和持久Cookie;基于来源的第一方Cookie和第三方Cookie;以及基于功能的安全Cookie、HttpOnly Cookie、偏好Cookie、认证Cookie和跟踪/广告Cookie。还有其他特殊类型,如僵尸Cookie、Flash Cookie(本地共享对象)、超级Cookie和SameSite Cookie,它们在安全性、用户跟踪和广告方面各有用途。这些分类帮助网站在为用户提供个性化体验的同时,确保交互的安全性和遵守隐私法规。

第一方 Cookie(First-party cookies):第一方Cookie是由用户直接访问的网站创建并设置的,它们通常用于记住用户信息和偏好,如登录状态、语言选择、主题偏好等,以便在用户再次访问网站时提供更个性化的体验第一方Cookie仅为当前访问的网站所用,不会被其他网站访问或共享。

第三方Cookie(Third-party cookies):三方Cookie(Third-party cookies)是由非当前用户正在访问的网站域设置的Cookie。它们主要用于跨站跟踪,允许第三方收集用户在不同网站上的浏览信息,从而用于广告定位、分析和个性化服务等目的。三方Cookie通常通过第三方广告或者网页元素(如图像、广告横幅、或者社交媒体插件等)嵌入到网页中来设置和访问。

举例来说,如果你访问一个网站,这个网站包含了一个第三方广告公司的广告,那么这个广告公司可能会在你的设备上设置一个Cookie,即使这个广告公司的网站你并没有直接访问过。随后,当你访问其他包含同一广告公司广告的网站时,该公司可以读取其之前在你设备上设置的Cookie,从而跟踪你的网上行为,分析你的兴趣和偏好,以便提供更加个性化的广告。

会话Cookie(Session cookies):会话Cookie是临时的Cookie,用于记住用户在浏览器会话期间的活动。当用户关闭浏览器窗口时,这些Cookie会被自动删除。它们对于保持用户登录状态、购物车中的商品等在短期内的信息至关重要。会话Cookie不需要指定过期时间(Expires)或最大年龄(Max-Age)属性。当创建Cookie时,省略这些属性,浏览器就会把它当作会话Cookie处理,这意味着用户关闭浏览器窗口后,Cookie会被自动删除。

持久Cookie(Persistent cookies):持久Cookie在用户的设备上存储更长时间,直到它们到达设定的过期日期或被用户手动删除。这类Cookie用于记住用户的登录信息、偏好设置和在多次访问之间跟踪用户的活动。

HTTPcookie基础学习 cookie 的失效日期并没有改变,因为 cookie识符是相同的。另一个控制 Cookie 消息发送时机的选项是 path 选项,和 domain 选项类似,path 选项指定了请求的资源 URL 中必须存在指定的路径时,才会发送 Cookie 消息。当存在一个 cookie,并允许设置可选项,该 cookie 的值会在随后的每次请求中被发送至服务器,cookie 的值被存储在名为 CookieHTTP 消息中,并且只包含了 cookie 的值,忽略全部设置选项。 阅读详情

相关推荐

FastAPI从入门到实战(9)——设置Cookie与Header参数

前面一篇文章记录了前端鉴权相关的内容,这篇笔记主要记录关于请求相关的内容,包括http的一个请求报文解析,fastapi设置cookie与参数、fastapi设置请求参数等。

欢迎自九陌而来的你做客九陌斋! 2138

HTTP Cookie 详解二

今天webryan给team做了一个关于HTTP cookie的分享,从各个方面给大家介绍一下大家耳熟能详的Cookie。主要是翻了维基百科的很多内容,因为维基百科的逻辑实在是很清晰:),ppt就不分享了,把原始的草稿贴出来给大家。欢迎批评指正。 HTTP Cookie: Cookie通常也叫做网站cookie,浏览器cookiehttp cookie,是保存在用户浏览器端的,并在发出

我的未来从这里开始 3万+

HTTP:十.cookie机制

所指定的域名必须是当前发送Cookie的域名的一部分,比如当前访问的域名是example.com,就不能将其设为google.com。在同一个服务器上有目录如下:/test/,/test/cd/,/test/dd/,现设一个cookie1的path为/test/,cookie2的path为/test/cd/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/dd/的子页面不能访问cookie2。这样,网站就可以防止未经授权的访问,并防止那些不应该看到网站的人看到用户数据。

shengdayong2008的博客 1410

[网络]HTTP协议 Cookie与Session

HTTP Cookie(也称为 Web Cookie、浏览器 Cookie 简称 Cookie)是服务器发送到 用户浏览器并保存在浏览器上的一小块数据,它会在浏览器之后向同一服务器再次发 起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态、记录用户偏好等。HTTP Session 是服务器用来跟踪用户与服务器交互期间用户状态的机制。由于 HTTP 协议是无状态的(每个请求都是独立的),因此服务器需要通过 Session 来记住用户的信息。

m0_74910646的博客 1600

HTTP Cookie深入解析

如果 cookie 是一个持久性的 cookie,那么它其实就是浏览器相关的,特定目录下的一个文件。GMT 和 UTC 都曾是现在是国际上重要的时间准,但由于地球自转的不规则性和原子钟的精确性,UTC 已经成为了全球性的准时间,而 GMT 则更多被用作历史和地理上的参考。持久 Cookie(Persistent Cookie):带有明确的过期日期持续时间,可以跨多个浏览器会话存在。(也称为 Web Cookie、浏览器 Cookie 简称 Cookie)是。Cookie):在浏览器关闭时失效。

weixin_50559423的博客 2070

http请求什么时候会带上cookie信息

http请求什么时候会带上cookie信息

ThinkStu的博客 9万+

HTTP Cookie与Session

HTTPCookie与Session实现,一篇即懂!!!

小白成长之路 3799

了解HTTP中的Cookie和Token

摘要: Cookie和Token是两种常见的用户身份验证机制。Cookie由服务器写入浏览器,用于保持会话状态(如session_id),在后续请求中自动携带,适用于传统网站。Token(如JWT)由服务器签发,客户端手动存储并通过请求发送,无需服务器保存状态,适合移动端和API调用。JWT包含加密签名,可自验证,但需注意安全设置(如HTTPS、有效期)。对比来看,Cookie易受CSRF攻击且依赖服务器Session,而Token无状态、跨域友好但无法主动失效。Token更符合现代分布式系统的需求。

Allen Roson 983

HTTP Cookie 了解

cookie 的最长有效时间,形式为符合 HTTP-date 规范的时间戳。参见Date可以获取详细信息。如果没有设置这个属性,那么表示这是一个会话期 cookie。一个会话结束于客户端被关闭时,这意味着会话期 cookie 在彼时会被移除。

jokermelove__的博客 577

一文了解cookie

一文了解cookie什么是CookieCookie 的作用Cookie原理Cookie的分类会话 Cookies永久性 CookiesCookie 的属性namevalueDomainPathExpiresMax-AgeSecureHTTPOnlySameSiteStrictLaxNone 什么是CookieCookie 就是访问者在访问网站后留下的一个信息片段。它存储在客户端(通常来说是浏览器)。你可以把cookie当作一个map,里边是键值对,每个键值对有过期时间、域、路径、脚本可否访问等描述信息

p1967914901的博客 4324

Jmeter HTTP Cookie管理器的使用

我们使用一个电商项目进行演示,在调用登录接口完成登录之后,通过查看购物车接口获取该用户购物车中的信息。也就是说如果需要查看到购物车中的信息,则我们先要是登陆状态,这样的情况下,就需要有Cookie信息的存在了。 提示:要获取购物车接口中的信息,需要使用登录后的Cookie保持登录状态。 1、在HTTP信息管理器组件中添加Cookie信息 实现步骤: 前提我们手动登陆电商网站,地址:http://www.testingedu.com.cn:8000/index.php/Home/user/log

m0_37449634的博客 1万+

HTTP——Cookie

HTTP——Cookie

qq_67693066的博客 1756

HTTP Cookie解析

本文解析HTTP Cookie的核心机制:1)HTTP无状态特性导致服务器无法识别连续请求,Cookie通过自动携带会话信息解决此问题;2)Cookie工作流程包括首次识别、服务器下发、浏览器存储和后续自动携带;3)安全隔离机制通过Domain、Path、Secure等属性限制Cookie作用范围;4)关键安全属性详解(Secure防窃听、HttpOnly防XSS、SameSite防CSRF等);5)最佳实践建议:区分Session与持久Cookie、敏感信息存服务端、采用双Cookie+Token的CSR

sonadorje的专栏 1398

对于 Cookie了解多少

cookie 是什么? http 是一个不保存状态的协议,什么叫不保存状态,就是一个服务器是不清楚是不是同一个浏览器在访问他,在 cookie 之前,有另外的技术是可以解决,就是在请求中插入一个 token,然后在发送请求的时候,把这个东西带给服务器,这种方式是易出错,所以有了 cookie 的出现 cookie 是什么,cookie 就是一种浏览器管理状态的一个文件,它有 name,也有 val...

upup 357

深入了解 HTTPcookie、session

Http协议 定义: 超文本传输协议(HTTP,Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)。 HTTP协议的主要特点 1.支持客户/服务器模式。(c/s) 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有1 3.灵活:HTT

mw_myever的博客 561

HTTP cookie session

HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80 .②HTTP 是无连接无状态的.③HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。

m0_74674329的博客 1744

cookie加密方式_了解HTTP Cookie的工作方式

cookie加密方式Introduction 介绍 Restrictions of cookies Cookies的限制 Set cookies 设置饼干 Set a cookie expiration date 设置Cookie的到期日期 Set a cookie path 设置Cookie路径 Set a cookie domain 设置CookieCookie Security Co...

cuk0051的博客 2773
上一篇: 十六进制字符串异或怎么写?
下一篇: Lua 函数前的冒号和点号,你知道他们的区别吗?
Coder567
博客等级 码龄9年 137粉丝 24原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder567

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值