Cookie

简介

在Web开发中,Cookie是一种在客户端存储数据的技术,用于跟踪用户会话、记录用户偏好设置等。Cookie由多个属性组成,每个属性都有特定的作用。以下是常见的Cookie属性及其作用:

  • Name(名称)
    Cookie的名称。它是Cookie的唯一标识符,用于在服务器和客户端之间传递数据。

  • Value(值)
    Cookie的值。它是与Cookie相关联的数据,可以是字符串、数字或其他格式的数据。

  • Domain(域)
    Cookie的域。指定可以访问Cookie的域名。如果未指定域,则默认为设置Cookie的页面所在的域名。

  • Path(路径)
    Cookie的路径。指定可以访问Cookie的路径。如果未指定路径,则默认为设置Cookie的页面所在路径。

  • Expires(过期时间)
    Cookie的过期时间。指定Cookie的有效期。一旦超过过期时间,Cookie将被删除。如果未设置过期时间,则Cookie将成为会话Cookie,仅在用户关闭浏览器时失效。

  • Max-Age(最大年龄)
    Cookie的最大年龄。以秒为单位指定Cookie的生存期。与Expires不同,Max-Age指定的是Cookie在被创建后的一段时间内有效,而不是指定一个具体的过期日期。

  • Secure(安全标志)
    指定是否只有在安全连接(HTTPS)下才能传输Cookie。设置了Secure属性的Cookie只能在加密的传输协议下被发送到服务器。

  • HttpOnly
    指定Cookie是否可通过客户端脚本访问。如果设置了HttpOnly属性,客户端脚本(如JavaScript)将无法通过document.cookie来访问该Cookie,这有助于防止跨站脚本攻击(XSS)。

  • SameSite
    指定Cookie的SameSite策略,用于防止跨站请求伪造(CSRF)攻击。SameSite属性可以设置为"Strict"、“Lax"或"None”,分别代表严格模式、宽松模式和不使用SameSite策略。

设置Cookie

服务端可以通过增加响应头的方式添加cookie

Set-Cookie: sessionId=abc123; Domain=example.com; Path=/; Max-Age=3600; Secure; HttpOnly; SameSite=Strict

javascript也可以直接操作cookie

// 添加cookie,执行后cookie值会变成existingCookie=existingValue; newCookie=newValue
document.cookie = "newCookie=newValue";
// 通过设置Cookie的过期时间为一个过去的时间点,达到删除cookie的效果
document.cookie = "cookieName=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

cookie共享

cookie只能在同一个域名下进行访问,因此cookie共享也只能在同一个域名下才能进行共享。cookie写入到某个域名后,它以及它的子域名便都可以访问。

例如,.example.com或者example.com下写入了一个cookie,那么可以被 x.example.com 或者 x.y.example.com等子域名访问。
需要注意的是,如果没有带Secure属性,则这个cookie可以被http和https协议同时访问,如果带了Secure,则只能被https协议访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值