ASP.Net中CookIE編程的基礎知識(1)
簡介
Cookie 為 Web 應用程序保存用戶相關信息提供了一種有用的方法。例如,當用戶訪問您的站點時,您可以利用 CookIE 保存用戶首選項或其他信息,這樣,當用戶下次再訪問您的站點時,應用程序就可以檢索以前保存的信息。
本文概要介紹 Cookie 在 ASP.NET 應用程序中的應用,為您展示在 ASP.NET 中應用 Cookie 的技術細節,例如編寫 Cookie、然後再讀取它們。同時,還將為您介紹 CookIE 的各種特性和各種特殊情況,以及 ASP.Net 對 CookIE 的支持。
什麼是 CookIE?
CookIE 是一小段文本信息,伴隨著用戶請求和頁面在 Web 服務器和浏覽器之間傳遞。用戶每次訪問站點時,Web 應用程序都可以讀取 CookIE 包含的信息。
假設在用戶請求訪問您的網站 www.contoso.com 上的某個頁面時,您的應用程序發送給該用戶的不僅僅是一個頁面,還有一個包含日期和時間的 CookIE。用戶的浏覽器在獲得頁面的同時還得到了這個 CookIE,並且將它保存在用戶硬盤上的某個文件夾中。
以後,如果該用戶再次訪問您站點上的頁面,當該用戶輸入 URL www.contoso.com 時,浏覽器就會在本地硬盤上查找與該 URL 相關聯的 Cookie。如果該 CookIE 存在,浏覽器就將它與頁面請求一起發送到您的站點,您的應用程序就能確定該用戶上一次訪問站點的日期和時間。您可以根據這些信息向用戶發送一條消息,也可以檢查過期時間或執行其他有用的功能。
CookIE 是與 Web 站點而不是與具體頁面關聯的,所以無論用戶請求浏覽站點中的哪個頁面,浏覽器和服務器都將交換 www.contoso.com 的 Cookie 信息。用戶訪問其他站點時,每個站點都可能會向用戶浏覽器發送一個 CookIE,而浏覽器會將所有這些 CookIE 分別保存。
以上就是 Cookie 的基本工作原理。那麼,Cookie 有哪些用途呢?最根本的用途是 Cookie 能夠幫助 Web 站點保存有關訪問者的信息。更概括地說,CookIE 是一種保持 Web 應用程序連續性(即執行“狀態管理”)的方法。浏覽器和 Web 服務器除了在短暫的實際信息交換階段以外總是斷開的,而用戶向 Web 服務器發送的每個請求都是單獨處理的,與其他所有請求無關。然而在大多數情況下,都有必要讓 Web 服務器在您請求某個頁面時對您進行識別。例如,購物站點上的 Web 服務器跟蹤每個購物者,以便站點能夠管理購物車和其他的用戶相關信息。因此 CookIE 的作用就類似於名片,它提供了相關的標識信息,可以幫助應用程序確定如何繼續執行。
使用 Cookie 能夠達到多種目的,所有這些目的都是為了使 Web 站點記住您。例如,一個實施民意測驗的站點可以簡單地利用 CookIE 作為布爾值,表示您的浏覽器是否已經參與了投票,從而避免您重復投票; 而那些要求用戶登錄的站點則可以通過 CookIE 來確定您是否已經登錄過,這樣您就不必每次都輸入憑據。
有關 Cookie 的更多背景信息,建議您閱讀 Verizon Web 站點中的“How Internet CookIEs Work”一文,地址為 http://www22.verizon.com/about/community/learningcenter/articles/displayarticle1/0,4065,1022z1,00.Html(英文)。其作者詳細解釋了什麼是 Cookie 以及 CookIE 是如何在浏覽器和服務器之間交換信息的,他還全面總結了 CookIE 涉及的隱私問題。
順便問一下,您是否想知道它們為什麼被稱作“CookIE”?Jargon File(又稱為“The New Hacker''s Dictionary”)版本 4.3.3 對這一術語的詞源給出了准確的定義和合理的解釋。您可以在 http://www.catb.org/~esr/jargon/jargon.Html#cookIE(英文)找到相關的條目。
在此後的內容中,本文將假設您已經知道什麼是 CookIE,並且假設您已經清楚為什麼要在 ASP.Net 應用程序中使用 CookIE。