您的位置:首页 > Web前端 > JavaScript

【Javascript】——Cookie安全机制

2016-06-19 11:43 447 查看
**前言:

在javascript视频有一章主讲了cookie的使用和作用,其实对于cookie的作用以前也有过接触,比如一些浏览记录等临时文件等都和它有关系,这次将系统的进行学习它的概念和基本操作。

内容:

一:Cookie的概念

Cookie是一小段文本,存储着特定网站或网站相关的信息,以便在不同页面之间,浏览器与服务器之间相互传递数据。

其实用一句话的意思就是在浏览器端保存一些数据的一种方式。

二.Cookie的限制

浏览器限制了Cookie的大小,容量是4kb;

浏览器限制了Cookie的数量,文件数量是20个.

三.Cookie的机制**

<Cookiename+Cookievalue;expire=expirationdategmt;path=urlpath;domain=sitedomain;secure
其中cookiename是cookie的名字和值
expire是有效期
path关联的路径
domain是域名,也可以表示的是路径名。
secure是安全保密


四:Cookie的基本操作

1.Cookie的存取

//创建cookie的通用函数。
function setCookie(name, value, expires, path, domain, secure) {

var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value); //设置cookie的名字和值

if (expires instanceof Date) {
cookiename += ';expires=' + expires;  //设置cookie的保存时间
}
if (path) {
cookiename += 'path=' + path;  //设置cookie的保存路径
}
if (domain) {
cookiename += 'domain=' + domain;  //设置cookie的域名
}
if (secure) {
cookiename += ';secure=';  //设置访问的权限。
}
document.cookie = cookiename;
}
------------------------------------------------------------------------------------------------
//设置过期的时间
function setCookieDate(day) {
var date = null;
if (typeof day=='number'&& day>0) {
date = new Date();
date.setDate(date.getDate() + day);
} else {
throw new Error('您传递的天数不合法!');
}
return date;
}
------------------------------------------------------------------------------------------------
//创建了一个名为user的cookie,保存时间为7天
setCookie('user', 'changyinling', setCookieDate(7));
//创建了一个名为url的cookie,保存时间为7天
setCookie('url','yc60.com',setCookieDate(7));
// 创建了一个名为email的cookie,保存时间为30天。
setCookie('email', 'yc60@163.com', setCookieDate(30));


2.Cookie的删除

删除的方式有三种:
一种通过在浏览器上手动清空cookie文件;
二是通过代码设置它的保存时间为0;
三是将时间调到过期的时间以后。


时间调到过期的时间以后。

//删除cookie的通用函数
function deleteCookie(name, value) {
var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value);   //获取cookie的名字和值
var exp = new Date();
//关键是这一步,让保存的时间早于现在的时间
exp.setTime(exp.getDate() - 10000);
document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
var checkcookie = document.cookie;
if (checkcookie=='') {
alert('当前网页已经没有cookie!');
}
}
deleteCookie('user', 'changyinling')


设置它的保存时间为0

function deleteCookie(name, value) {
var cookiename = encodeURIComponent(name) + '=' + encodeURIComponent(value);   //获取cookie的名字和值
//使保存的时间为0,也就是不保存
var exp = new Date(0);
document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
var checkcookie = document.cookie;
if (checkcookie=='') {
alert('当前网页已经没有cookie!');
}
}
deleteCookie('user', 'changyinling')


3.获取对应的cookie

//获取相对应的cookie的value值的通用的代码

function getcookie(name) {
var cookiename=encodeuricomponent(name)+'=';
var cookiestart = document.cookie.indexof(cookiename);
if (cookiestart > -1) {  //表示当前的cookiename是存在的。
//获取从开始索引处到分号处的索引。
var cookieend = document.cookie.indexof(';', cookiestart);
//表示的是最后一个cookie,因为最后没有分号,所以cookieend的索引为应该是整个cookie的长度。
if (cookieend==-1) {
cookieend = document.cookie.length;
}
//获取对应cookiename的value值
var cookievalue = document.cookie.substring(cookiestart + cookiename.length, cookieend);
}
return cookievalue;
}


总结

基本上对于cookie的基本操作已经讲完了,其实我们在创建了一个cookie的时候需要结合浏览器查看是否已经创建成功了,cookie其实就是在浏览器上的缓冲文件的一类,还有两种方式用于保存临时文件,接下的博客将细细讲解!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: