什么是cookie ?
先上图:

简单而言,Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息 。
目前,cookie有些是临时的,有些是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除。
在前端开发当中我们可以使用js去操作浏览器中的cookie。首先我们先用js设置cookie,代码如下:
function setCookie(name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=name+ "=" +escape(value)+
((expiredays==null) ? "" : ";
expires="+exdate.toGMTString())
}
运行上面方法,浏览器就保存了你所设置的键和对应的值和过期时间,下面我们在用代码读取刚才设置的cookie:
function getCookie(name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(name + "=")
if (c_start!=-1)
{
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end));
}
}
return ""
}
运行上面方法你就可以得到你开始所设的cookie值了。能设置,就要能删除,接下来我们就来删除cookie:
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
删除原理就是将对应cookie过期时间设为当前时间上一秒。也许有人会问把对应的cookie设为null不就行了吗?这两种方法是不一样的,将过期时间设为上一秒,浏览器会删除对应的键和值,但当设为null时,浏览器会继续保存这个键,值为空而已。
尽管cookie提供了很大的方便,但是随着科技的发展,cookie变成了泄漏用户敏感信息的源头。用户在使用浏览器进行相关操作时,存储了大量的cookie,黑客通过Cookie 窃取和篡改,来获取用户的上网习惯,甚至一些支付密码等重要信息。也许感觉没什么重要信息,但是你会发现你浏览的网页跳出与你曾经浏览过内容相关的广告,这是国内比较常用的手法。
注:如您不会运行上面的方法,请出门左转!
网友评论