最近在使用cookie做功能,现在随便来简单总结一下cookie。
cookie是什么?
在我理解它就是一段文本,什么文本呢? - 以名/值作为存储结构 - 以;作为分割 - 以expires作为有效期 - 默认path为/同时也可以自定义,可以允许有同名的cookie但path就不能在同一path下,而且会优先于当前的文档 - 具备主子键:我理解为类似二维数组结构一样 - 主键的cookie的数量是有限的
注意事项
要确保主键是唯一的,下面的例子我就用userid和flag作为唯一主键有效期以毫秒为单位以escape 方法对字符串进行编码,解决中文乱码的问题以正则表达式匹配cookie以unescape方法解码cookie不能直接删除,只有通过创建新的cookie,内容不变,有效期设置当前时间的前一秒
js 操作cookie
function setCookie(userId,value,flag){
var Days =
36135;
var exp =
new Date();
exp.setTime(exp.getTime() + Days*
24*
60*
60*
1000);
document.cookie = userId +flag +
"="+
escape (value) +
";expires=" + exp.toGMTString();
}
function getCookie(userId,flag){
var arr,reg=
new RegExp(
"(^| )"+userId+flag+
"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[
2]);
else
return null;
}
function delCookie(userId,flag){
var exp =
new Date();
exp.setTime(exp.getTime()-
1);
var value=getCookie(userId,flag);
if(value!=
null)
document.cookie = userId + flag+
"="+
escape (value) +
";expires=" + exp.toGMTString();
}
补充
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。所以不能什么东东都往cookie里放,同理session也一样,一般也只放用户的登录信息cookie存储的位置是客户端浏览器session存储的位置是服务器cookie不是很安全,他人分析存放在本地的cookie并进行cookie欺骗session 的运行依赖 session id 也就是唯一标识
结束语
由于个人的水平这里只能作为简单的参照,如有了解更深的需要看大神们的文章了!这段时间做了这个列表自定义的功能让对cookie有了更深的了解,以后也会继续深入学习。同时也希望大家给点学习建议,大家互相交流沟通!在此先谢谢了!