js中的cookie及封装
Posted 秋风之后
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中的cookie及封装相关的知识,希望对你有一定的参考价值。
概念参考高级编程:
1.什么是cookie
cookie是用于客户端储存会话的信息; 格式key=value;
2.cookie的构成
名称:一个唯一去顶的cookie的名称,不区分大小写,cookie的名称必须是经过URL编码的;
值:存储cookie中的字符串,值必须被URL编码
域:cookie对于哪个域是有效的,所有向该域发送的请求中都会包含这个cookie信息,这个值可以包含子域,也可以不包含这个cookie信息,如果没有明确设定,那么这个域会被认作来自设置cookie的那个域
路径:对于指定域中的那个路径,应想服务器发送cookie,加入你可以指定cookie只有从 http://www.person.com/mark 中才能访问,那么http://www.person.com 就不会发送cookie信息,即使请求都是来自一个域
失效时间:表示cookie何时被删除的时间戳(何时停止向服务器发送这个cookie)默认情况下,浏览器结束会话时,即将所有cookie删除,不过也可以设置删除时间,这个值是GMT的格式的日期,用于指定删除该cookie的标准时间,
因此cookie可以在浏览器关闭后依然保存在用户的机器上,如果设置失效时间是以前的时间,cookie会立刻被删除
每一段信息都作为set-cookie头的一部分,使用分号加空格分隔每一段
Set-Cookie: name=value; expires=Mon, 22-Jan-07 07:10:24 GMT; domain=.wrox.com
3.js中的cookie的操作: 读取,写入,删除,代码如下
var cookieUtil = { set: function (name, value, expiresDay) { var expiresDate = new Date(); expiresDate.setDate(expiresDate.getDate() + expiresDay); value = encodeURIComponent(value); var mycookie = name + ‘=‘ + value + ‘;expires=‘ + expiresDate; document.cookie = mycookie; }, get: function (name) { name = encodeURIComponent(name); var cookielenght = document.cookie.length; var arr = document.cookie.split(‘; ‘); for (var i = 0; i < arr.length; i++) { var arr2 = arr[i].split(‘=‘); if (arr2[0] == name) { return decodeURIComponent(arr2[1]); } } return ‘‘; }, remove: function (name) { this.set(name, 1, -1); } };
4:cookie的工作原理
1).客户端通过浏览器发送报文给服务器,请求连接
2).服务器根据收到的请求,建立 Set-Cookies Header,并返回给客户端
3).客户端解析返回内容解析并保存cookie
5:cookie的局限性
1).每个特定的域名下只能产生10个cookie
2).cookie的最大大约是4096字节(4k),为了更好的兼容性,一般不能超过4095字节。
3).cookie存储在客户端的文本文件,所以特别重要和敏感的数据是不建议保存在cookie中的。这里是考虑安全性的问题。
4:cookie的应用:
cookie可以用于保存数据,比如购物车,保存用户名密码
以上是关于js中的cookie及封装的主要内容,如果未能解决你的问题,请参考以下文章