cookie

 

  • 什么是cookie:

 

cookie是保存在客户端的一块数据,一般用来保存用户相关的信息。按照存在的时间上,可分为非持久cookie和持久cookie。

非持久cookie:如果cookie未设置过期时间,或者过期时间未小于当前时间的一个值,那么这个cookie数据是存储在内存中的,当用户关闭浏览器时会话结束,内存cookie就消失了。

持久cookie:如果cookie设置了一个未来的时间,那么这个cookie会存储在本地硬盘上,直到用户手动清除或者到了过期时间,硬盘cookie才会被删除。

 

 

  • cookie的构成:

 

  名称name:一个唯一确定cookie的名称,不区分大小写,但是在实际应用中最好把cookie名称看做是区分大小写的,因为某些服务器会这样处理cookie。cookie名称必须经过URL编码。

值value:存储在cookie中的字符串值。cookie值必须经过URL编码。

域domain:cookie对哪个域向服务器发送cookie。如果domain设置包括子域www.aaa.com,则cookie对该域有效。如果domain设置包括子域.aaa.com,则cookie对它的所有子域有效。

路径path:对指定域中的哪个路径向服务器发送cookie。如设置path为/account,则指定的cookie只有在http://www.aaa.com/account/中才能访问。

失效时间expires: 表示cookie何时应该被删除的时间戳。默认情况下,在浏览器会话结束后会立即删除所有cookie。expires是GMT格式的日期(Wdy,DD-Mon-YYYY HH:MM:SS GMT)。

安全标志secure: 制定后,cookie只能在使用SSL连接的时候才能发送给服务器。

  cookie完整格式:name=value;domain=www.aaa.com;path=/account;expires=Mon,22-Jan-07 07:10:24 GMT; secure

 

  • js操作cookie:
var CookieUitl = {
get: function (name) {
var cookieName = encodeURIComponent(name) + '=',
cookieStart = document.cookie.indexOf(cookieName),
cookieValue = null;
if (cookieStart > -1) {
var cookieEnd = document.cookie.indexOf(';', cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd))
}
return cookieValue
},
set function (name, value, expires, path, domain, secure) {
var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
if (expires instanceof Date) {
cookieText += '; expires=' + expires.toGMTString();
}
if (path) {
cookieText += '; path=' + path;
}
if (domain) {
cookieText += '; domain=' + domain;
}
if (secure) {
cookieText += '; secure=';
}
document.cookie = cookieText;
},
unset: function (name, path, domain, secure) {
this.set(name, '', new Date(0), path, domain, secure);
}
  • cookie的弊端: 

  每次http请求的头信息中都会携带cookie信息,增加了请求的带宽

cookie信息容易被劫持 (最好结合加密的token,使用https协议)

cookie的大小只有4KB左右, 不能存储太多数据(可首页web storage)

 

以上属于个人学习总结,有说的不对的地方请指正,谢谢 

转载于:https://www.cnblogs.com/littlechen/p/11209505.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值