什么是 Cookie?Cookie 其實是一個標簽,經(jīng)?赡苈牭降闹形姆g:小舔餅。當你訪問一個需要唯一標識你的站址的 WEB 站點時,它會在你的硬盤上留下一個標記,下一次你訪問同一個站點時,站點的頁面會查找這個標記。 每個 WEB 站點都有自己的標記,標記的內(nèi)容可以隨時讀取,但只能由該站點的頁面完成。每個站點的Cookie與其他所有站點的Cookie存在同一文件夾中的不同文件內(nèi)(你可以在 win98 的 Windows 目錄下的 Cookie 文件夾中找到它們,而 win2k 則在 Documents and Settings 文件夾下特定用戶的 cookies 文件夾中)。 一個 Cookie 就是一個唯一標識客戶的標記,Cookie 可以包含在一個對話期或幾個對話期之間某個 WEB 站點的所有頁面共享的信息,使用 Cookie 還可以在頁面之間交換信息。這項功能經(jīng)常被使用在要求認證客戶密碼以及電子公告板、WEB 聊天室等 ASP 程序中。 盡管現(xiàn)在聽起來cookie沒有什么激動人心的,但實際上利用它,你能實現(xiàn)許多有意義的功能!比如說:你可以在站點上放置一個調(diào)查問答表,詢問訪問者最喜歡的顏色和字體,然后根據(jù)這些定制用戶的web界面。并且,你還可以保存訪問者的登錄密碼,這樣,當訪問者再次訪問這個站點時,不用再輸入密碼進行登錄。 當然,cookie也有一些不足。首先,由于利用cookie的功能可以編程實現(xiàn)一些不良企圖,所以大多數(shù)的瀏覽器中都有安全設(shè)定,其中可以設(shè)置是否允許或者接受cookie(IE瀏覽器中“工具”--“Internet選項...”--“安全”--“自定義級別”--“Cookie的使用”;Netscape瀏覽器中“工具”--“Cookie管理器”--“管理貯存的Cookie”即可),因此這就不能保證隨時能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當訪問者的機器遇到“藍屏”死機時,或者重新格式化硬盤、安裝系統(tǒng)后,原來保存的cookie將全部丟失。最后一點,有一些最初始的瀏覽器并不能支持cookie。
◆ 怎樣利用cooklie? 有2種使用cookie的基本方式: 1、將cookie寫入訪問者的計算機(使用 Response 命令) 2、從訪問者的計算機中取回cookie(使用 Request 命令)
◆ 創(chuàng)建cookie的基本語法: Response.Cookies(cookie)[(key)|.attribute]=value 這里的 cookie 是指定 cookie 的名稱,而如果指定了 key,則該 cookie 就是一個字典。(測試一cookie是否為一個字典可用后面代碼顯示布爾值:<%=Request.Cookies("cookiename").HasKeys%>。為true是字典,false則不是。 )
Attribute 指定 cookie 自身的有關(guān)信息。Attribute 參數(shù)可以是下列之一 : 、貲omain 若被指定,則 cookie 將被發(fā)送到對該域的請求中去。域?qū)傩员砻鱟ookie由哪個網(wǎng)站產(chǎn)生或者讀取,默認情況下,cookie的域?qū)傩栽O(shè)置為產(chǎn)生它的網(wǎng)站,但你也可以根據(jù)需要改變它。(Response.Cookies("CookieName").Domain = "www.mydomain.com") 、赑ath 為一路徑屬性,該屬性可以實現(xiàn)更多的安全要求,通過設(shè)置網(wǎng)站上精確的路徑,就能限制cookie的使用范圍。如果未設(shè)置該屬性,則使用應用程序的路徑。(Response.Cookies("CookieName").Path = "/maindir/subdir/path" ) 、跡xpires 指定 cookie 的過期日期。為了在會話結(jié)束后將 cookie 存儲在客戶端磁盤上,或在許多時候,我們希望能更長時間地在訪問者的計算機上保存cookie。必須設(shè)置該日期。若此項屬性的設(shè)置未超過當前日期,則在任務結(jié)束后 cookie 將到期。 后面的代碼,就可以設(shè)置cookie的使用到期時間為“2010年1月1日”: Response.Cookies("CookieName").Expires=#January 01, 2010# 后面的代碼,將設(shè)定cookie的過期時間為“cookie的創(chuàng)建時間+365天”:Response.Cookies("CookieName").Expires=Date+365 但最好不要隨便寫 Response.Cookies("CookieName").Expires=Date,這樣頁面之間的調(diào)用時值會為空。
執(zhí)行下面的代碼將會在訪問者的計算機中創(chuàng)建一個cookie,名字=VisitorName,值=Ken : Response.Cookies("VisitorName")="Ken" 執(zhí)行下面的代碼將會在訪問者的計算機中創(chuàng)建一個cookie,名字=VisitorName,值=表單中UserName的值 Response.Cookies("VisitorName")=Request.Form("UserName") 你可以擴展下面的代碼成為Cookie子關(guān)鍵值(CookieSubName),即cookie字典的生成。代碼如下: Response.Cookies("VisitorName")("FirstName")="Ken" Response.Cookies("VisitorName")("LastName")="Baumbach"
◆ 讀取cookie的基本語法:Request.Cookies(cookie)[(key)|.attribute] cookie 指定要檢索其值的 cookie,key 可選參數(shù),用于從 cookie 字典中檢索子關(guān)鍵字的值,attribe 指定 cookie 自身的有關(guān)信息。如:HasKeys 只讀,指定 cookie 是否包含關(guān)鍵字。 如果客戶端瀏覽器發(fā)送了兩個同名的 cookie,那么 Request.Cookie 將返回其中路徑結(jié)構(gòu)較深的一個。例如,如果有兩個同名的的 cookie,但其中一個的路徑屬性為 /www/ 而另一個為 /www/home/,客戶端瀏覽器同時將兩個 cookie 都發(fā)送到 /www/home/ 目錄中,那么 Request.Cookie 將只返回第二個 cookie。
◆ num.asp(通過留在本地磁盤上的cookie記錄一年內(nèi)訪問本站的次數(shù),第一次顯示“首次訪問”,以后顯示“第幾次訪問”)
[Ctrl+A 全部選擇 然后拷貝]
◆ showcookie.asp(從Cookies文件夾中遍歷出瀏覽器所有的Cookie name,以及相關(guān)的字典Cookie的顯示(藍字顯示))
[Ctrl+A 全部選擇 然后拷貝]
◆ check.asp 首先,設(shè)置頁面。然后,檢查表單變量(在同一個頁面中)。如果表單變量存在,就創(chuàng)建cookie,并設(shè)置到期時間。
[Ctrl+A 全部選擇 然后拷貝]
◆ color.asp(顯示用戶愛好顏色的頁面特性):
[Ctrl+A 全部選擇 然后拷貝]
出處:藍色理想
責任編輯:cjj
◎進入論壇網(wǎng)絡編程版塊參加討論
|