Cookie 用于存储 web 页面的用户信息。
什么是 cookie?
Cookie 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。
Cookie 的作用就是用于解决 "如何记录客户端的用户信息":
- 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
- 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。
cookie 是由服务器生成,发送给 User-Agent(一般是浏览器),(服务器告诉浏览器设置一下 cookie),浏览器会将 cookie 以 key/value 保存到某个目录下的文本文件内,下次请求同一网站时就发送该 cookie 给服务器(前提是浏览器设置为启用 cookie)。
cookie 就是一个小型文件(浏览器对 cookie 的内存大小是有限制的 --- 用来记录一些信息)。
cookie 内存大小受限制
cookie 有个数和大小的限制,大小一般是 4k。
cookie
cookie 的特点
满足同源策略:虽然网站 images.google.com 与网站 www.google.com 同属于 Google ,但是域名不一样,二者同样不能互相操作彼此的 cookie。
var manageCookie = {
// 设置cookie值
setCookie: function (name, value, time) {
document.cookie = name + '=' + value + ';max-age=' + time;
return this;
},
// 删除cookie值
removeCookie : function (name) {
return this.setCookie(name, '', -1);
},
// 查找cookie
getCookie : function (name, callback) {
// console.log(document.cookie);
var allCookieArr = document.cookie.split('; ');
// console.log(allCookieArr);
for(var i = 0; i < allCookieArr.length; i ++) {
var itemCookieArr = allCookieArr[i].split('=');
// console.log(itemCookieArr);
if(itemCookieArr[0] == name) {
callback(itemCookieArr[1]);
return this;
}
}
callback(undefined);
return this;
}
}
manageCookie
.setCookie('color', 'red', 1000)
.setCookie('a', 'c', 2000)
.setCookie('co', 'ggg', 1000)
.setCookie('c', 'fff', 1000)
.setCookie('dddd', 'b', 1000)
.removeCookie('a')
.getCookie('oo', function (data) {
console.log(data);
});
记录信息的方法:
- 标记用户身份 http 请求首部
form: e-mail;
user-agen: 浏览器;
referer: 跳转连接; - IP 地址
- 用户登录
- 用 URL
- cookie
document.cookie 将以字符串的方式返回所有的 cookie。