在新技術大軍橫空出世年代, Cookie 似乎已被遺忘. 但網頁設計中依然少不了它的身影, 這裡就本人多年對它的應用做以總結, 可能不是最全面的, 但一定是最實用的.
Cookie早已不是不可替代, 不是必不可少, 也因此失去了很多色彩, 很多人把它形容為一雞肋,食之無味, 棄之可惜. 但若都以此評判, 似乎我們很多技術都很無味, 而似乎都不可缺少. 以我看來, 技術最好少做對比, 選擇多了, 困惑也就多了, 心不靜, 看什麼都是有用而無味. 我卻覺得很多技術自己用的得心應手了自然就有了味道.
總結大家對 Cookie "食之無味" 大概有以下幾個原因.
(1). 不安全, 這是最直接的一個原因, 因為 Cookie 是保存在客戶端計算機上的, 因此很容易被修改, 從而導致訪問服務器時應用程序的執行失敗或者其他安全問題.
(2). 嚴重限制傳送內容的大小, 這是最實現的一個原因, 大多數浏覽器都限制 Cookie 的大小, 一般情況下都不能超過 4096 個字節, 因此傳送的內容有限.
(3). 用戶可控制 Cookie 的開啟與停用: 這是最無奈的一個原因, 當用戶設置其浏覽器停止接收 Cookie時, 如此, 它便失去了作用.
(4). .......
雖已為雞肋,但棄之總會可惜, 原因也無非下列幾個原由.
(1). 使用簡單: 因為使用太簡單了, 所以它能活至今日, 雖有不少人一邊天天抱怨, 一邊卻又偷偷地用它. Cookie 的簡單是源於它是最簡單的 索引鍵值 的文本結構, 讀取與設置數據非常方便.
(2). 不占用任何服務器資源: Cookie 的生成原理是由服務器創建後隨網頁一起輸入到客戶端, 並且在駐留在客戶端計算機上, 因此不需要占用服務器的任何資源.
(3). 有效期限可隨意設置: 隨心所欲地設置有效期限使它相當好用, 可以設置當浏覽器結束訪問時, Cookie 隨之消失, 或者設置某個特點的到期時間, 甚至是永久保存在計算機上.
(4). .......
OK, 是福是禍, 人各有志, 暫且放下不談. 這裡我總結出了 Cookie 在網頁設計中各個方面所起的作用和使用方法. 還是那句話, 可能不是最全的, 但一定是最實用的. 與大家分享. 好, 這裡就從最簡單的使用開始.
1. Cookie 可以存儲哪些值
在 Cookie 中只能存儲個人可識別信息. 個人可識別信息是指可以用來識別或聯系用戶的信息. 例如用戶的姓名, 電子郵件, 家庭住址等. 必須強調的是, 這些可識別信息必須是非機密或重要信息.
2. 使用 Cookie 對象保存和讀取客戶端信息.
要存儲一個 Cookie 變量, 可以通過 Response 對象的 Cookie 集合, 語法如下:
Response.Cookies[varName].Value=值;
其中, varName 為變量名.
要取回 Cookie, 可以使用 Request 對象的 Cookie 集合, 並將指定的 Cookie 集合返回, 語法如下 :
變量名=Request.Cookies[varName].Value;
以例為例: 用 Cookie 操作客戶端 IP. 代碼如下:
使用Cookie保存和讀取客戶端信息
//保存客戶端信息
string UserIP = Request.UserHostAddress.ToString();//獲取客戶端的IP地址
Response.Cookies["IP"].Value = UserIP;//將客戶端的IP地址保存在Cookies對象中
Response.Cookies["IP"].Expires = DateTime.MaxValue;//設計Cookies的失效期
//讀取
Response.Write(Request.Cookies["IP"].Value);//從Cookies中讀取客戶端IP地址值