Session和Cookie機制

綠龍術士發表於2018-05-08

· Session會話

· 1、 InProc Session Provider是最快的,因為所有資料都存在應用程式的記憶體裡,Session資料在IIS重啟,或者站點被回收的情況下丟失,你可以在使用者量較小的網站上使用這種模式,但別在Web Farm下使用。

· 2、 State Server模式:Session資料被儲存於aspnet_state.exe應用中,他在Web服務之外儲存Session資料,所以Web服務出現問題不會對他的Session資料造成影響,在將Session資料儲存到StateServer之前需要序列化物件,在Web Farm中我們能安全地使用這個模式。

· 3、 SQL Server模式:他將Session資料儲存到SQL Server中,我們需要提供連線串,我們儲存時也需要對物件進行序列化,這種模式在實際Web Farm的生產環境中是非常有用的。

· 4、 Custom模式,當我們需要使用一個已經存在的表來儲存Session資料時,在自定義模式中,我們也能建立自定義的Session ID,但是不推薦你自己來實現Provider,推薦使用第三方的Provider。

· 參考資料:

· https://www.cnblogs.com/ideacore/p/6423281.html

 

 

· Cookie機制

· Cookie的作用

· 比如你登入錄郵箱,登入一個頁面。我們經常會在此時設定30天內記住我,或者自動登入選項

· Cookie的分類

· cookie分為會話cookie持久cookie,會話cookie是指在不設定它的生命週期expires時的狀態,前面說了,瀏覽器的開啟到關閉就是一次會話,當關閉瀏覽器時,會話cookie就會跟隨瀏覽器而銷燬。當關閉一個頁面時,不影響會話cookie的銷燬。會話cookie就像我們沒有辦理積分卡時,單一的買賣過程,離開之後,資訊則銷燬。

· 持久cookie則是設定了它的生命週期expires,此時,cookie像商品一樣,有個保質期,關閉瀏覽器之後,它不會銷燬,直到設定的過期時間。對於持久cookie,可以在同一個瀏覽器中傳遞資料,比如,你在開啟一個淘寶頁面登陸後,你在點開一個商品頁面,依然是登入狀態,即便你關閉了瀏覽器,再次開啟瀏覽器,依然會是登入狀態。這就是因為cookie自動將資料傳送到伺服器端,在反饋回來的結果。持久cookie就像是我們辦理了一張積分卡,即便離開,資訊一直保留,直到時間到期,資訊銷燬。

 

  • Cookie的限制
  • Cookie的性質上是繫結到當前域名下的。當設定了當前Cookie後,再給建立它的域名傳送請求時都會包含這個cookie。
  • 每個域的Cookie是有數量限制的,不同的瀏覽器之間各不相同:
  • IE6及之前的版本限制每個域最多20個cookie
  • IE7及之後的版本限制50個cookie
  • Firefox限制每個域最多50個cookie
  • Opera限制每個域最多30個cookie
  • Safari和Chrome對cookie的數量沒有限制
  • 瀏覽器對域的大小也有限制,大多數瀏覽器都有大約4kb的長度限制
  •  
  • Cookie的構成
  • Cookie由瀏覽器儲存由以下資訊組成:
  • 名稱:cookie的名稱,具有唯一性,不區分大小寫,cookie名稱必須經過URL編碼
  • :儲存在cookie中的字串值,必須經過URL編碼
  • :cookie只對指定域有效。所有向該域傳送的請求都會包含該cookie資訊。這個值可以包含子域(如:www.baidu.com),也可以不包含子域(如:baidu.com,這樣就對baidu.com所有子域都有效,這是實現單點登陸的關鍵)
  • 路徑:對於指定域中的那個路徑,應該向伺服器傳送cookie。例如:你可以指定向www.baidu.com/pay傳送cookie,而www.baidu.com不會傳送cookie
  • 失效時間:表示cookie何時應該被刪除的時間戳,這個值是GMT 格式的日期
  • 安全標誌:指定後,cookie只有在使用SSL連線時才會傳送到伺服器。

· 參考資料:  

· https://blog.csdn.net/u014753892/article/details/52821268

 

相關文章