<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    什么是Cookie(轉)

       Cookie是在Web上用于存儲客戶系統信息的對象。所有的信息都以每行一個Cookie的形式存放在客戶端的一個名為cookies.txt的文件里。Cookie在HTTP頭標(客戶和服務器用來標識自身的分組)中在客戶機與服務器之間傳輸。

       Cookie由某個WWW網頁在某客戶機上進行設置。比如,某個WWW網頁已在一個用戶的計算機上設置了一個Cookie,其中存儲的信息是該用戶的身份號(隨機賦予該用戶的唯一標識),當該用戶的瀏覽器連接該WWW站點時,站點要求瀏覽器將Cookie送回,他的身份號就通過Cookie 傳遞給該網頁所在的WWW服務器。服務器上的一個CGI程序查找一個服務器端的文件以確定關于他的預設內容。

       當某個服務器在客戶的計算機上設置Cookie后,請注意如果要讓Cookie信息確實寫入文件,必須關閉瀏覽器。在瀏覽器未關閉之前,任何新的或變化的Cookie都存放在內存中。

    二、Cookie的特性
       每個Cookie包含有6個元素,常用的有:name、value、expires、domain和secure。這些元素存放了這個Cookie的作用范圍及實際的數據。
       1.name  這是每一個Cookie必須有的元素,它是該Cookie的名字。name元素是一個不含分號、逗號和空格的字符串。其命名方式與變量命名相同。
       2.value  value也是每個Cookie必須有的元素,它是該Cookie的值。value元素是實際存放于Cookie中的信息。它是由任何字符構成的字符串。
       3.expires  expires是一個Cookie的過期時間。沒有設置expires元素的Cookie在用戶斷開連接后過期,但在用戶關閉瀏覽器之前Cookie依然存在。
       Cookie有一個過期時間并等于它會從Cookie.txt文件中被刪除。在它的位置被用來存放另一個Cookie前,它依然存在著。過期的Cookie只是不被送往要求使用它的服務器。
       expire是一個串,它的形式如下:
       Wdy, DD-Mon-YY HH:MM:SS GMT
       expires元素是可選的。
       4.domain  domain是設置某個Cookie的Web網頁所在的計算機的域名。這樣,由一個站點創建的Cookie不會影響到另一個站點上的程序。對于較高層的域名如.com, .edu,或.mil,域名中至少有兩個分隔符(.)。而對于較低層的域名如.cn, .uk或.ca,域名中至少有3個分隔符。demain元素自動地被設為網頁所在站點的基本域名。比如,你的網頁位于http://www.abc.com/~user,則該網頁創建的Cookie缺省地對域abc.com有效。如果你希望你的Cookie 只應用于服務器www3.abc.com,那么你必須在設置Cookie的時候指定。
       只有擁有域名的站點才能為那個域名設置Cookie
       5.path  一個Cookie可以被指定為只針對一個站點的某一層次。如果一個Web站點要區分已注冊的和未注冊的客戶,就可以為已經注冊的客戶設置Cookie,當注冊過的客戶訪問該站點時,他就可以訪問到只對注冊客戶有效的頁面。path是可選項,如果沒有指定path,將被缺省地設置為設置Cookie的頁面的路徑。
       6.secure標志  secure是一個布爾值(真或假)。它的缺省值為假。如果它被設為真值, 這個Cookie只被瀏覽器認為是安全的服務器所記住。

    三、關于Cookie的一些限制

       一個站點能為一個單獨的客戶最多設置20個Cookie。如果一個站點有兩個服務器(如www.abc.com和www3.abc.com)但沒有指定域名,Cookie的域名缺省地是abc.com。如果指定了確切的服務器地址,則每個站點可以設置20個Cookie--而不是總共20個。不僅每個服務器能設置的Cookie數目是有限的,而且每個客戶機最多只能存儲300個Cookie。如果一個客戶機已有300個Cookie,并且一個站點在它上面又設置了一個新Cookie,那么,先前存在的某一個Cookie將被刪除。
       每個Cookie也有自身的限制。Cookie不得超過4KB(4096bytes),其中包括名字和其他信息。
    四、javascript和Cookie

       現在大家已經了解有關Cookie的一些基本概念了,讓我們更進一步討論Cookie。可以用javascript來很方便地編寫函數用來創建、讀取和刪除Cookie。下面,我們就介紹這些函數

       1.創建Cookie

       我們要進行的第一件事就是要創建一個Cookie。下面給出的SctCookie()函數將完成這一功能。
       function SetCookit (name, value) {
         var argv=SetCookie.arguments;
         var argc=SetCookie.arguments.length;
         var expires=(argc>2)?argv[2]: null;
         var path=(argc>3)? argv[3]: null;
         var domain=(argc>4)? argv[4]: null;
         var secure=(argc>5)? argv[5]: false;
         documents.cookie=name+"="+escape
           (value)+
         ((expires==null)?"":(";expires="
           +expires.toGMTString()))+
         ((path==null)?"":(";path="+path))+
         ((domain==null)?"":(";domain="+
           domain))+
         ((secure==true)?";secure":"");
       }
       SetCookie()只要求傳遞被設置的Cookie的名字和值,但如果必要的話你可以設置其他4 個參數而不必改變這個函數。可選的參數必須用正確的次序使用。如果不想設置某個參數, 必須設置一個空串。比如,如果我們創建的一個Cookie需要指定secure域,但不想設置expires, patb或domain,就可以像這樣調用SetCokie():  SetCookie("MyNewCookie","Myvalue" ,"",","tyue);
       2.讀取Cookie

       下面給出的函數GetCookie()用來讀取一個Cookie。當一個Cookie的請求被客戶機收到時,該客戶機查找它的cookies.txt文件以進行匹配。這個函數首先匹配這個Cookie的名字。如果有多個同名的Cookie,它再匹配路徑。函數完成匹配后返回這個Cookie的值。如果客戶機中沒有這個Cookie,或者路徑不匹配,該函數返回一個NULL。
       function GetCookie(name) {
         var arg=name+ "=";
         var alen=arg.length;
         var clen=documents.cookie.length;
         var i=0;
         while (i<clen) {
           var j=i+alen;
           if(documents.cookie.substring(i,j)
           ==arg)
           return getCookieVal(j);
           i=documents.cookie.indexOf("",i)+1;
           if(i==0)break;
         }
         return null;
       }
       函數中使用了getCookieVal()函數,它是GetCookie()函數的補充。getCookieVal()將C ookies.txt文件分解為片斷,并從一批Cookie中讀出正確的Cookie。該函數的實現如下:
       function getCookieVal(offset) {
         var endstr=documents.cookie.indexOf
           (";",offset);
         if(endstr==-1) //沒有指定其他元素
           endstr=documents.cookie.length;
         return unescape(documents.cookie.substring
           (offset,endstr));
       }

       3.刪除Cookie

       刪除一個Cookie很簡單,只需將它的過期時間設為NULL。當用戶斷開連接后,這個Cooki e就過期了(沒有過期時間的Cookie將在瀏覽器關閉時被刪除)。下面的函數DeleteCookie() 說明了如何刪除一個
    Cookie:
       function DeleteCookie(name) {
         var exp=new Date();
         exp.setTime(exp.getTime()-1);
         //將exp設為已過期的時間
         var cval=GetCookie(name);
         documents.cookie=name+"="+cval+";
         expires="+exp.toGMTString();
       }


    posted on 2009-11-03 16:28 胡鵬 閱讀(327) 評論(0)  編輯  收藏 所屬分類: js,html,css

    導航

    <2009年11月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    agile

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 999国内精品永久免费视频| 亚洲精品GV天堂无码男同| 久久99国产亚洲高清观看首页 | 亚洲国产成人精品无码区在线秒播 | 精品国产香蕉伊思人在线在线亚洲一区二区 | 综合在线免费视频| 亚洲电影在线播放| 国产亚洲综合视频| 国产一二三四区乱码免费| 91香蕉在线观看免费高清| 免费鲁丝片一级在线观看| 国产精品亚洲二区在线观看| 亚洲天堂一区二区三区四区| 一区二区三区视频免费| 2021在线观看视频精品免费| 亚洲国产V高清在线观看| 亚洲91av视频| 免费国产在线精品一区| 国产h视频在线观看免费| 亚洲亚洲人成综合网络| 亚洲av无码专区首页| 97公开免费视频| 亚洲国产亚洲综合在线尤物| 日韩在线看片免费人成视频播放| 中文字幕亚洲综合精品一区| 免费观看四虎精品成人| 久久精品夜色噜噜亚洲A∨| 精品国产免费一区二区三区| 国产免费av片在线播放| 亚洲国产区男人本色在线观看| 中文精品人人永久免费| 国产免费人人看大香伊| 久久国产乱子精品免费女| 亚洲XX00视频| 久久久99精品免费观看| 91麻豆精品国产自产在线观看亚洲 | jyzzjyzz国产免费观看| 成人亚洲网站www在线观看| 久久久国产亚洲精品| 国产av无码专区亚洲国产精品| 中国xxxxx高清免费看视频|