前端cookie字段及操作方法

本文详细介绍了HTTP Cookie的工作原理,包括其主要属性如Name、Value、Domain、Path、Expires/Max-age、Size、HttpOnly和Secure。还讲解了SameSite属性在防止跨站请求伪造中的作用。此外,文章还阐述了Cookie的大小限制以及在同源策略下的行为。最后,通过示例展示了如何使用JavaScript进行Cookie的读取、设置和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cookie字段:

  • NameCookie名称,一旦创建不可修改
  • ValueCookie
  • DomainCookie在哪个域是有效的,也就是决定向该域发送请求时是否携带此Cookie,对子域名生效
  • PathCookie的有效路径,对子路径生效
  • Expires/Max-age: 均为Cookie的有效期,Expires是该Cookie被删除的时间戳,不设置则默认关闭时删除,Max-ageCookie的有效期,表示多少秒后失效,0立即失效,-1关闭页面时失效
  • SizeCookie的大小
  • HttpOnly: 值为truefalse,设为true时,不允许document.cookie去更改这个值,这个值在document.cookie中也不可见,但请求仍会携带
  • SecureCookie的安全属性,设置为true,则浏览器只会在httpsSSL等安全协议中传输此cookie,不会在不安全的http协议中传输
  • SameSite: 限制第三方cookie,表示Cookie不随着跨域请求发送,减少安全风险
    • Strict: 最为严格,完全禁止第三方cookie,跨站点时任何情况都不发送cookie
    • Lax: 稍稍放宽,大多数情况不发送第三方cookie,但导航到目标网址的get请求除外
    • None: 网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。
  • Priority: 优先级,chrome的提案,定义了三种优先级,Low/Medium/Highcookie数量超出限制时低优先级会被优先清除
  • cookie数据大小不能超过4k,会在同源HTTP请求中携带,有路径的概念,在cookie的过期之前有效,在所有同源窗口中共享

JS操作Cookie:

  • 每个cookie都是一个名/值对存储,而cookie字符串以“;”连接多个cookie名/值对,将cookie字符串分割成单独的一个cookie名/值对
var cookieArray = document.cookie;  //获取cookie存储字符串
var arr = cookieArray.split(";");   //将获得的cookie字符串以;分割开获得单独每个cookie名/值对
  • 获得cookie名对应的值
//假设要获取的cookie的名字是name,则遍历数组找到名字所对应的值
for(var i=0;i<arr.length;i++){
  var arr1 = arr.split("=");     //将名/值对以“=”分割开
  if(arr1[0]=== 'name'){
    var result = arr1[1];  //如果名为name,则结果result为名对应的值
  }
}
  • 设置cookie,设置cookie就是给cookie赋值name,value,days,所对应的含义是名,值,过期时间
//直接设置cookie赋值语句
document.cookie="name=value;expires=GMT_String";
//以函数方式
function setcookie(name,value,days){
    var d= new Date();
    d.setTime(d.getTime()+(days*24*60*60*1000));
    var expires = d.toGMTString();
    document.cookie = name+"="+value+";expires="+expires;
}
  • 删除cookie就是将cookie的过期时间设置为0或者负数或者以前的时间。删除cokie时可以不指定cookie的值。
function delCookie(name) { //删除cookie
   document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值