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> 

你可能感兴趣的:(cookie)