cookie
cookie概念
cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。
为什么提出cookie?
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
我的理解
cookie为一小段文本,如果服务器端页面,需要记录用户的信息状态,就使用response向客户端浏览器颁发一个Cookie(服务器通过代码提取信息,然后生成cookie保存到用户浏览器文件夹内)附带cookie对应的网址,保存。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态提取用户信息。服务器还可以根据需要修改Cookie的内容。
有想知道位置的朋友去C:UsersAdministratorAppDataRoaming 不完整
下边是不同浏览器的后续地址
IE:C:UsersAdministratorAppDataRoamingMicrosoftWindowsTemplates
Firefox:C:/Documents and Settings/你的用户名/Application Data/Mozilla/Firefox/Profiles 在这个目录下里有一个类似于这样的随机目录 b8ypabix.default 。 b8ypabix.default里面找到类似于cookies.sqlite等这样的文件就是cookie文件,但是般普通编辑器是无法正常看到里面的内容的。
Chrome:C:UsersAdministratorAppDataLocalGoogleChromeUser DataDefault;
cookie特点
1.不同的浏览器存放的cookie位置不一样,也是不能通用的
2.cookie的存储是以域名形式进行区分的
3.cookie的数据可以设置名字的
4.一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样
5.每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样
cookie的实际应用
我们通过document.cookie来获取当前网站下的cookie的时候,得到的字符串形式的值,他包含了当前网站下所有的cookie。他会把所有的cookie通过一个分号+空格的形式串联起来
如果我们想长时间存放一个cookie。需要在设置这个cookie的时候同时给他设置一个过期的时间
cookie默认是临时存储的,当浏览器关闭进程的时候自动销毁
存放:document.cookie = '名字=值';会立即销毁
正确:document.cookie = '名称=值;expires=' + 字符串格式的时间;
oDate.setDate( oDate.getDate() + 5 );
document.cookie = 'username='+ encodeURI('leo 你好') +';expires=' + oDate.toGMTString();因为可能存在/n无法识别问题所以进行1encodeURI编码,读取是进行解码
读取时也需要解码:alert(decodeURI(document.cookie));
如果在chrome上是空白请不要担心 ,chorme需要在服务器环境下才能响应呢
下边是对cookie增加,删除,获取得封装
function setCookie(key, value, t) {
var oDate = new Date();
oDate.setDate( oDate.getDate() + t );
document.cookie = key + '=' + value + ';expires=' + oDate.toGMTString();
}
function getCookie(key) {
var arr1 = document.cookie.split('; ');
for (var i=0; i<arr1.length; i++) {
var arr2 = arr1[i].split('=');
if ( arr2[0] == key ) {
return decodeURI(arr2[1]);
}
}
}
function removeCookie(key) {
setCookie(key, '', -1);
}