西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開(kāi)發(fā)其它知識(shí) → Web數(shù)據(jù)狀態(tài)保持的Cookie解釋以及原理分析

Web數(shù)據(jù)狀態(tài)保持的Cookie解釋以及原理分析

前往專(zhuān)題相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2012/4/26 23:43:15字體大小:A-A+

作者:佚名點(diǎn)擊:18次評(píng)論:0次標(biāo)簽: Cookie

  • 類(lèi)型:站長(zhǎng)工具大。5KB語(yǔ)言:中文 評(píng)分:7.5
  • 標(biāo)簽:
立即下載

我們知道web網(wǎng)站在客戶端存儲(chǔ)數(shù)據(jù)有三種形式:1. Cookie   2. hidden(隱藏域) 3.QueryString 其中viewstate什么的都是通過(guò)第二種方式隱藏域存儲(chǔ)滴。

      客戶端存儲(chǔ)數(shù)據(jù)有三種形式,那服務(wù)器端有幾種呢? 嘿嘿 服務(wù)器端有:1. Session 2. Application 3. database 4. caching(緩存) 其中session用的較多,當(dāng)然數(shù)據(jù)庫(kù)是必須的。

      好了今天的主角是cookie(小甜餅)先看下cookie存在哪吧!首先,打開(kāi)運(yùn)行對(duì)話框輸入cookies會(huì)打開(kāi)一個(gè)文件夾沒(méi)錯(cuò)這就是存儲(chǔ)cookies的地方(聲明:這里只是存儲(chǔ)的IE瀏覽器的cookies,什么谷歌、火狐什么的存在他們所對(duì)應(yīng)瀏覽器的安裝目錄中)。

先看一下怎么新建一個(gè)cookie吧!

HttpCookie cookie = new HttpCookie("userName");
cookie.Value = userName;
cookie.Expires = DateTime.Now.AddHours(2);
Response.Cookies.Add(cookie);

第一行:創(chuàng)建一個(gè)HttpCookie對(duì)象,然后構(gòu)造函數(shù) 給個(gè)cookie名稱(chēng)
第二行:給這個(gè)cookie賦值---->因?yàn)閏ookie是以鍵值對(duì)存儲(chǔ)的 ex:userName = “admin”
第三行:設(shè)置此cookie的失效時(shí)間,此值是一個(gè)具體的失效時(shí)間datetime類(lèi)型   上面是設(shè)置兩個(gè)小時(shí)后失效
第四行:將cookie寫(xiě)到cookie中,即寫(xiě)在響應(yīng)報(bào)文頭中一會(huì)分析原理的時(shí)候會(huì)講到。

行設(shè)置了cookice了那我怎么讀它呢?廢話少說(shuō)上代碼

Request.Cookies["userName"].Value

      呵呵,是不是很簡(jiǎn)單,就是在請(qǐng)求中有個(gè)Cookices集合然后通過(guò)索引的方式訪問(wèn)他---->把它比較成Request.Form["....."]  這句是不是經(jīng)常使。

好了會(huì)創(chuàng)建了也會(huì)獲得了 那咱下面就分析一下原理

     大家想下服務(wù)器是通過(guò)什么傳輸數(shù)據(jù)的?Socket沒(méi)錯(cuò),前面的文章不是通過(guò)Socket實(shí)現(xiàn)過(guò)一個(gè)簡(jiǎn)單的web服務(wù)器嗎 嘿嘿 ,然后Socket只是傳輸層的東東,那它

如果把數(shù)據(jù)發(fā)送到客戶端瀏覽器的呢,在者說(shuō)瀏覽器是通過(guò)什么把數(shù)據(jù)(請(qǐng)求)發(fā)送給服務(wù)器的呢?  是不是通過(guò)報(bào)文啊  客戶端通過(guò)請(qǐng)求報(bào)文想服務(wù)端發(fā)送請(qǐng)求,然

后呢服務(wù)器接受到客戶端的請(qǐng)求,又通過(guò)響應(yīng)報(bào)文將服務(wù)端的數(shù)據(jù)發(fā)送給服務(wù)器。那么今天的Cookice就是通過(guò)報(bào)文傳輸?shù)?下面通過(guò)圖繼續(xù)講解

Set-Cookie: userName=admin; expires=Thu, 26-Apr-2012 15:52:34 GMT; path=/

設(shè)置cookie  將服務(wù)端設(shè)置的cookice 傳給客戶端瀏覽器,其中還包括了失效時(shí)間

從圖中可以看出服務(wù)端設(shè)置cookice是通過(guò)響應(yīng)報(bào)文頭將cookice傳輸給瀏覽器滴,然后客戶端呢 客戶端是通過(guò)請(qǐng)求報(bào)文頭將cookice傳輸給服務(wù)端滴

注意:

1. 因?yàn)镃ookice是存儲(chǔ)在客戶端的數(shù)據(jù),如果有敏感的數(shù)據(jù)必須在服務(wù)端加密后然后在保存

2. Cookice在客戶端有兩種保存形式:(1)保存在硬盤(pán)上(設(shè)置了cookice的失效時(shí)間的情況下) (2)保存在內(nèi)存中(在沒(méi)有設(shè)置cookice的失效時(shí)間的情況下)

3. 如果服務(wù)端的cookice和客戶端已有的cookice重名則會(huì)覆蓋原有的cookice

4. 如果要想清除某個(gè)cookice的話可是設(shè)置它的失效時(shí)間小于當(dāng)前的日期即可cookie.Expires = DateTime.Now.AddDays(-1);

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱(chēng):
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)