<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??梢杂胘avascript來很方便地編寫函數用來創建、讀取和刪除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

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品色午夜免费视频| 青青草原亚洲视频| 亚洲人成网址在线观看| 中国一级特黄的片子免费| 亚洲国产精品成人AV无码久久综合影院| 国产成人精品亚洲2020| 无人在线观看完整免费版视频| 亚洲国产精品久久丫| 男女免费观看在线爽爽爽视频| 亚洲精品在线免费观看视频| 亚洲人成免费电影| 亚洲H在线播放在线观看H| 在线观看免费人成视频色9| 亚洲一区精彩视频| 国产成人高清精品免费鸭子 | 国产精品亚洲美女久久久| 亚洲av色香蕉一区二区三区| 国产zzjjzzjj视频全免费 | 久久亚洲国产午夜精品理论片| 久久久久久免费一区二区三区| 久久国产精品亚洲综合| 亚洲美女视频免费| 亚洲国产精品综合久久20| 国产男女性潮高清免费网站| 九九九精品视频免费| 久久久亚洲精品视频| 日本亚洲免费无线码| AV激情亚洲男人的天堂国语| 久久精品国产精品亚洲艾草网美妙 | 亚洲一级毛片在线观| 国产成人涩涩涩视频在线观看免费| 爱情岛论坛亚洲品质自拍视频网站| 狠狠亚洲狠狠欧洲2019| 亚洲精品在线免费观看视频| 亚洲欧美不卡高清在线| 国产亚洲一区区二区在线| 最近2019年免费中文字幕高清| 久久精品国产亚洲AV未满十八| 中文字幕精品亚洲无线码一区| 91麻豆国产免费观看| 国产精品亚洲精品日韩电影|