Cookie简述

一.Cookie介绍
Cookie是服务器在浏览器端存放的少量数据。按照Netscape最初的规范,一个Cookie不能包含超过4KB的数据(这个大小是指包含了Cookie的名称和值合起来的大小)。

  某些Cookie是临时性的;有些又是持久性的。临时性的Cookie,又被称为会话Cookie,只存在于浏览器的内存中。当浏览器关闭时,任何添加到浏览器的Cookie都丢失了。

  另一方面,持久性Cookie (Persistent Cookie)可以存在数月甚至是数年。支持Cookie的浏览器维护一个或多个特殊的文件。这些文件在Windows计算机上称为Cookie (Cookie file)文件,而在Macintosh计算机上则称为魔幻Cookie (magic Cookie file)文件,它们都是保存了来自于Web站点的数据。

  Cookie 是如何起作用的?

  Cookie在浏览器和服务器之间通过 http 头部 (header) 来回传递。服务器首先在响应中使用 Set-Cookie 头部来创建一个Cookie。从浏览器发出的后续请求就在Cookie头部中返回这个Cookie。

  假设要创建一个名为 UserName 的Cookie,其中包含访问你的Web站点的用户名。要创建这个Cookie,服务器就要发送一个头部:

  Set-Cookie: UserName=Bill+Gates; Path=/; domain=super.com;
  expires=Tuesday, 01-Jan-05 00:00:01 GMT

  这样头部指示浏览器添加一个条目到其Cookie文件中。浏览器添加了一个名为UserName且值为 Bill Gates 的Cookie。注意这个Cookie的值是URL编码的

二、cookie的属性
除名字与值外,每个cookie有四个可选属性:
1.expires:指定cookie的生存期。默认情况下cookie是暂时的,浏览器关闭就失效。
2.path:它指定了与cookie关联在一起的网页。默认是在和当前网页同一目录的网页中有效。 如果把path设置为"/",那么它对该网站的所有网页都可见了。
3.domain:设定cookie有效的域名, 如果把path设置为"/",把domain设为".sohu.com",那么 A.sohu.com和B.sohu.com 的所有网页都能够访问此cookie。
4.secure:布尔值,它指定了网络上如何传输cookie。默认情况下,cookie是不安全的, 可以通过一个不安全的,普通的HTTP协议传输;若设置cookie为安全的,那么它将 只在浏览器和服务器通过HTTPS或其它的安全协议连接在一起时才被传输。

三、cookie的操作 cookie可以用javascipt来操作
下面给大家我写的几个例子,相信大家一看就明白了:
1.javascript 操作:
    
<script language="javascript">
//设置cookie,cookie有效期时间未GMT时间(距1970年1月1日临时的毫秒)
//例如可以设置setCookie("password","12345",(3600000*24*180)),180有效
function setCookie (name, value, expires) {
var expdate = new Date();
expdate.setTime(expdate.getTime() + expires);
document.cookie = name + "=" + escape(value) +
"; expires=" + expires.toGMTString() + "; path=/";
}

//根据cookie名,取得cookie值
function getCookie(name) {
var search;
search = name + "="
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length ;
end = document.cookie.indexOf(";", offset) ;
if (end == -1)
end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));
}
else
return "";
}

//删除某一cookie
function deleteCookie(name) {
var expdate = new Date();
expdate.setTime(expdate.getTime() - (3600 *24* 1000 * 1));
setCookie(name, "", expdate);
}

//检查是否存在此cookie
function checkCookie(cookieName,cookieValue){
if (getCookie(cookieName)==cookieValue){
return true;
}else{
return false;
}
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值