cookie和session的基礎知識及在ASP.NET中的應用

來源:互聯網
上載者:User

cookie和session的基礎知識:

cookie是儲存在用戶端的,儲存少量資訊,明文,經常用來儲存使用者id之類的資訊,常見情境就是登入時候的“記住我”。不推薦儲存敏感資訊。

session是會話級的,儲存在服務端,每個使用者是唯一的,可以用來實現購物車之類的,需要在服務端儲存目前使用者會話的上下文資訊的需求。可以儲存在伺服器的記憶體中,不能跨伺服器;可以儲存在資料庫中。

上面是一些零星的知識點。其實還有很多,例如cookie中的sessionid,session還可以用狀態伺服器儲存,這樣可以用專用的伺服器儲存session。cookie中的內容是字串類型的,session中的內容是object類型的,session中的內容擷取之後需要類型轉換,轉換成所需要的類型。

在ASP.NET中,可以在web.config檔案中進行配置。

<configuration>     <system.web> <sessionState mode="InProc"                    timeout="20"                    cookieless="true"                    stateConnectionString="tcpip=localhost:42424"                     sqlConnectionString=""                    />              </system.web>      </configuration>

關於配置節中的參數資訊,可以查看 ASP.NET Session 狀態的儲存 ,講得比較詳細,還有找到了細說Cookie 這樣一篇文章,感覺講得也比較詳細。

問題有兩個。

1 用戶端禁用cookie之後,session還能用嗎?

2 cookie是如何在用戶端和服務端傳遞的,具體的傳遞過程。

回答。

1 用戶端禁用cookie之後,session還能用嗎?

禁用cookie之後,也可以使用session。

Session的狀態儲存在兩個地方,分別是用戶端和服務端。用戶端儲存SessionID,Session資訊儲存在服務端。用戶端的SessionID是儲存在Cookie中的,如果瀏覽器禁用cookie,那麼就不能使用session的好處了。

其實sessionid還可以通過url傳遞,還可以通過form傳遞,可以自訂來實現的。

在ASP.NET中,session有兩種儲存方式:cookie和cookieless。也就是說禁用cookie也可以使用session。配置為cookieless=true之後,可以選擇將session儲存在狀態服務中,或者儲存在SQL Server中。具體的做法可以看一下最後的參考文獻。

2 cookie是如何在用戶端和服務端傳遞的,具體的傳遞過程。

cookie在用戶端和伺服器端的傳遞是通過請求和響應的頭來傳遞的。

從用戶端到伺服器端傳遞cookie,是在request的header中有一個cookie,裡面就是傳遞的內容。

從伺服器端到用戶端傳遞cookie,是在response的header中有一個set-cookie,裡面就是通過後台代碼設定的cookie的內容。

這可以通過很多的抓包工具來查看,例如fiddler,httpwatch,firebug。

本文出自 “突破中的IT結構師” 部落格,請務必保留此出處http://virusswb.blog.51cto.com/115214/998456

返回欄目頁:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/aspx/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.