狀態管理之Cookie

2022-03-20 05:08:00 字數 2507 閱讀 1242

一、

cookie

工作流程

如果在使用者請求站點中不僅僅是乙個頁面,還有乙個包含過期時間的

cookie

,使用者的瀏覽器在獲得頁面的同時還獲得了該

cookie

,並將它儲存在使用者硬碟上的某個資料夾中。

以後,如果該使用者再次請求該站點,瀏覽器便會在本地硬碟上查詢與之關聯

cookie

。如果該

cookie

存在,瀏覽器便將該

cookie

與頁請求一起傳送到請求站點。

二、cookie

相關規則

瀏覽器負責管理使用者系統上的

cookie

。cookie

通過httpresponse

物件傳送到瀏覽器,該物件公開稱為

cookies

的集合。可以將

物件作為

page

類的response

屬性來訪問。要傳送給瀏覽器的所有

cookie

都必須新增到此集合中。建立

cookie

時,需要指定

name

和value

。每個cookie

必須有乙個唯一的名稱,以便以後從瀏覽器讀取

cookie

時可以識別它。由於

cookie

按名稱儲存,因此用相同的名稱命名兩個

cookie

會導致其中乙個

cookie

被覆蓋。

三、cookie操作1

:新增單值

cookie

到cookies

集合中response.cookies["username"].value = "patrick";

2:新增多值

cookie

到cookies

集合中response.cookies["userinfo"]["username"] = "patrick";

3:讀取單值

cookie

值if(request.cookies["username"] != null)

label1.text = server.htmlencode(request.cookies["username"].value);

if(request.cookies["username"] != null)

4:讀取多值

cookie

值if(request.cookies["userinfo"] != null)

5:刪除

cookie

if (request.cookies["usersettings"] != null)

6、顯示所有cookie

為什麼httpcookiecollection的enumerator只對key進行遍歷,我想這主要是出於效能的考慮。返回乙個key比返回乙個cookie物件效率高。

你期望在對cookies做遍歷操作(enumerate)時返回cookie物件, 但enumerator如果返回cookie是需要做乙個 new cookie()操作,這意味著會來乙個物件拷貝。有些cookie物件是比較大, 拷貝效率非常低。

遍歷cookies可以這樣:

foreach(string key in request.cookies)

回覆  引用    

又想了一下,發現httpcookiecollection可以通過索引訪問,最好的遍歷方法應該用for而不是foreach:

for(int i=0; i < request.cookies.count; i++)

狀態管理 Cookie

狀態管理 1 什麼是狀態管理 將瀏覽器與web伺服器之間多次互動當作乙個整體來看待,並且將多次互動涉及到的資料 即狀態 儲存下來.2 如何進行狀態管理?將狀態儲存在瀏覽器端 cookie 將狀態儲存在伺服器端 session 1 什麼是cookie?伺服器臨時存在瀏覽器端的少量資料,用於跟蹤使用者的...

HTTP狀態管理機制之Cookie

cookie 最早是網景公司的雇員 lou montulli 在1993年3月發明,後被 w3c 採納,目前 cookie 已經成為標準,所有的主流瀏覽器如 ie chrome firefox opera 等都支援。cookie 的誕生是由於 http 協議的天生缺陷,http 是一種無狀態的協議,...

認識Cookie和狀態管理

cookie session 構造方法 public cookie string name,string value getname方法 setvalue與getvalue方法 setmaxage與getmaxage方法 setpath與getpath方法 1.建立cookie物件 2.設定最大時效...