什么是cookie:
本身用于客户端和服务端通信。但是他有本地存储的功能,所以被“借用”
cookie是由服务器端生成,发送给User-Agent(一般是浏览器),(服务器告诉浏览器设置一下cookie),浏览器会将cookie以keyalue保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。
cookie就是一个小型文件(浏览器对cookie的内存大小是有限制的-------用来记录一些信息)
为什么会有cookie:
本地缓存了一些数据,在回访网站时,可以节省时间,直接从本地获取。
cookie的特点:
具有保质期:
每个cookie都有时间设置,一般会设置很长时间。
满足同源策略:
虽然网站images.google.com与网站www.google.com同属于Google,但是域名不一样,二者同样不能互相操作彼此的Cookie。
问题1:访问完zhidao.baidu.com 再访问wenku.baidu.com还需要重新登陆百度账号吗?
解决方案:document.domain
设置document.domain = ‘baidu.com’;
让页面属于这个基础域名下(那么此页面和任何二级域名为baidu.com的)设置限制----页面确实属于该基础域名之下那么资源公用了(ajax) cookie 共用了
cookie的个数和大小都用限制:
不同浏览器限制的个数不一样(一般20到50个),大小基本限制在4K左右。
cookie的安全性:
只是相对来说,对于黑客来说,没有什么安全的东西。
简单的操作cookie(增,删,改,查)(需要在本地服务器下进行我用的是Wampserver)
var manageCookie = {
setCookie: function (name, value, time) {
//cookie由属性名=属性值,保存时间max-age=111;组成
document.cookie = name + '=' + value + ';max-age=' + time;
return this;
},
removeCookie: function (name) {
return this.setCookie(name, '', -1);
},
getCookie: function (name, callback) {
var allCookieAll = document.cookie.split('; ');
for (var i = 0; i < allCookieAll.length; i++) {
var itmeCookieAll = allCookieAll[i].split('=');
if (itmeCookieAll[0] == name){
callback(itmeCookieAll[1]);
return this;
}
}
callback(undefined);
return this;
}
}