cookie默认有效期多长_cookie基础

6289cffc0279e58a7843b09472cfd643.png

cookie

用途

  • 会话状态管理(如用户登录状态,购物车,游戏分数,或其他需要记录的信息)
  • 个性化设置(如用户自定义设置、主题等)
  • 浏览器行为跟踪(如跟踪分析用户行为等

创建cookie

  • 当服务器收到HTTP请求时,服务器可以在响应头里面添加一个Set-Cookie选项。浏览器收到响应后通常会保存下Cookie,之后对该服务器每一次请求中都通过Cookie请求头部将Cookie信息发送给服务器。另外,Cookie的过期时间、域、路径、有效期、适用站点都可以根据需要来指定。
 HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookie=choco Set-Cookie: tasty_cookie=strawberry
  • 现在,对该服务器发起的每一次新请求,浏览器都会将之前保存的Cookie信息通过Cookie请求头部再发送给服务器。
 GET /sample_page.html HTTP/1.1 Host: www.example.org Cookie: yummy_cookie=choco; tasty_cookie=strawberry

会话期cookie

  • 会话期Cookie是最简单的Cookie:浏览器关闭之后它会被自动删除,也就是说它仅在会话期内有效。会话期Cookie不需要指定过期时间(Expires)或者有效期(Max-Age)。需要注意的是,有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话期Cookie也会被保留下来,就好像浏览器从来没有关闭一样。

持久性cookie

  • 和关闭浏览器便失效的会话期Cookie不同,持久性Cookie可以指定一个特定的过期时间(Expires)或有效期(Max-Age)。
 Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;

Cookie的Secure 和HttpOnly 标记

  • Secure:cookie只能通过https协议加密过的请求发送给服务端
  • HttpOnly :为避免XSS,不允许待httponly标记的cookie

cookie作用域

  • Domain和Path 标识定义了cookie的作用域:即cookie应该发送给哪些url
  • Domain指定哪些主机可以接受cookie。如果不指定,默认为当前文档的主机(不包含子域名)。如果指定Domain,则一般包含子域名。
  • Path:指定了主机下的哪些路径可以接受cookie(该url路径必须存在于请求url中)。
  • 例如:设置Path=/docs,则以下地址都会匹配
  • /docs
  • /docs/web
  • /docs/web/http

js创建cookie

 //以健值对形式存储 document.cookie = "a=b" document.cookie = "c=d" console.log(document.cookie) //a=b; c=d //添加一个过期时间 document.cookie = "name=xiaofei; expires=Thu, 18 Dec 2043 12:00:00 GMT" //使用path参数告诉浏览器cookie的路径。默认情况下,cookie属于当前页面 document.cookie = "name2=xiaofei2; expires=Thu, 18 Dec 2041 12:00:00 GMT;path=/aaa"

js读取cookie

 var cookieVal = document.cookie

js修改cookie

 //和创建cookie一样 document.cookie = "name=aaa"

js删除cookie

 //将expires参数设置为以前的时间即可 document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

设置cookie值

 //设置cookie值的函数 function setCookie(cname,cvalue,exdays){ var d = new Date() d.setTime(d.getTime()+(exdays*24*60*60*1000)) var expires = "expires="+d.toGMTString() document.cookie = cname + "=" +cvalue+ ";"+expires; } setCookie('qqq','ddd',7)

获取cookie值

 //获取cookie值的函数 function getCookie(cname){ var name = cname + "=" var ca = document.cookie.split(';') console.log('ca',ca) for(var i=0;i

检测cookie值

 //检测cookie值的函数 function checkCookie(){ var username = getCookie('qqq') if(username!=''){ alert('welcome again'+username) }else{ username = prompt('please enter your name') if(username!='' && username != null){ setCookie("username
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值