足彩篮彩哪里买 篮彩神棍区手机版 nba篮彩怎么玩 1月5日篮彩 篮彩大小分攻略 篮彩分析网站 1.79完美篮彩大极品 篮彩预测分析专家推荐 足彩篮彩解盘分析 篮彩竞彩 篮彩分析捷报 网易篮彩 1.79火龙大极品篮彩版 篮彩大小分什么意思 nba篮彩篮球彩票

IT職業教育

華中地區北大青鳥校區IT集訓營

027-87807717

北大青鳥首頁 > 熱門IT技術教程 > .Net技術教程 > > 在.net中cookies和Session具有哪些特性

在.net中cookies和Session具有哪些特性

時間:2012-01-14 10:42 來源:北大青鳥武漢宏鵬魯廣校區作者:admin
導讀:武漢北大青鳥魯廣校區.NET技術 1. Cookie 的限制 大多數瀏覽器支持大為 4096 字節的 Cookie。 瀏覽器還限制站點可以在用戶計算機上存儲的 Cookie 的數量。大多數瀏覽器只允許每個站點存

    武漢北大青鳥魯廣校區.NET技術  
    1.Cookie 的限制

  大多數瀏覽器支持 4096 字節的 Cookie。

  瀏覽器還限制站點可以在用戶計算機上存儲的 Cookie 的數量。大多數瀏覽器只允許每個站點存儲 20 個 Cookie;注意這里的20個是指主鍵值,也就是20條Cookies記錄,但是每個Cookies記錄還可以包含若干子鍵,下面會詳細解釋。如果試圖存儲更多 Cookie,則舊的 Cookie 便會被丟棄。有些瀏覽器還會對它們將接受的來自所有站點的 Cookie 總數作出一定限制,通常為 300 個。

  2.Cookies的存儲格式

  Cookies可以包含一個主鍵, 主鍵再包含子鍵。比如asp.net中獲取Cookies的格式是:

  Request.Cookies[key][subkey].ToString();

  其中的key就是主鍵,subkey就是主鍵關聯的子鍵。

  (1)本地磁盤存儲格式:

  My.Common.TestCookieInfo

  Pkid=999&TestValue=aaabbbcccdddeee

  localhost/

  1536

  3059603968

  30021392

  2348960464

  30021191

  *

  其中的Pkid=999&TestValue=aaabbbcccdddeee 是Cookies的值,由于使用了subkey=subvalue的格式, 所以此Cookies是包含子鍵的。

  (2)Javascript中的Cookie格式

  在Javascript中給的Cookie是一個字符串,通過document.cookies獲取。字符格式如下:

  My.Common.SubKey=Pkid=999&TestValue=aaabbbcccdddeee; SingleKey=SingleKeyValue

  上面的字符串包含了兩個Cookies,一個是不包含子鍵的SingleKey, 一個是包含pkid和TextValue兩個子鍵的My.Common.SubKey,兩個Cookie通過“;”分割。

  (3)Asp.Net中的Cookies格式

  和所有的服務器端語言一樣,Asp.Net中使用集合類保存Cookies集合:

  public sealed class HttpCookieCollection : NameObjectCollectionBase

  {...}

  通過HttpResquest和HttpResponse對象的Cookies屬性,可以獲取和寫入當前頁面的Cookies。

  3.Cookies的內容編碼格式

  Cookies的值中可以保存除了“;”以外的標點符號。但是不能保存漢字。保存漢字會出現亂碼。

  所以對于Cookies中的內容要進行統一的編碼和解碼。為了在瀏覽器端和服務器端都能夠進行解碼和編碼, 所以要統一使用UTF編碼格式。

  主要是因為javascript中只能使用UTF編碼格式。

  4.Cookies的Path屬性

  Cookies的Path屬性表示當前的Cookies可以作用在網站的那個路徑下。

  比如下面的兩個同名的Cookies:

  

 

  允許存在兩個同名但是Path不同的Cookies。

  無論是服務器端還是客戶端,在獲取時優先獲取本頁路徑下面的Cookies。

  也就是說如果在、/chapter10/路徑下面的頁面, 獲取testKey這個Cookies的值,則只能獲取到testValue222222這個值。

  5.Cookies的過期時間

  如果保存Cookies時未設置過期時間, 則Cookies的過期時間為“當前瀏覽器進程有效”,即和Session一樣關閉瀏覽器后則消失。在asp.net中還可以通過設置HttpCookie對象的過期時間為DateTime.MinValue來指定此Cookies為跟隨瀏覽器生效。(這句話來之不易啊,在腦袋等人的幫助下才查到的。)

  如果設置了過期時間并且大于當前時間,則會保存Cookies值。

  如果設置了過期時間但是小于等于當前時間,則清除Cookies值。

  6.Cookies與Session

  有時我們會忽略Cookies與Session的關系。但是兩者是密不可分的。

  Session的標示:SessionID是通常保存在Cookies中的(也可以保存在URL中)。對于Asp.Net而言,SessionID保存在鍵值為“ASP.NET_SessionId”的Cookies中,如圖:

  

 

  因為Cookies的存儲數量是有限制的,所以我們的系統在保存Cookies的時候一定要注意防止沖掉這一個關鍵的Cookies。在下文介紹的理想實踐-以強對象方式保存Cookies的代碼中特意對這個Cookies做了處理。

  注意,在客戶端使用javascript腳本無法獲取“ASP.NET_SessionId”的Cookies, 因為此Cookies在服務器端設置了HttpOnly屬性為true。

  ASP.Net中HttpCookie對象的HttpOnly 屬性 指定一個Cookie 是否可通過客戶端腳本訪問。不能通過客戶端腳本訪問為 true;否則為 false。默認值為 false。此屬性并不能完阻止客戶端在本地獲取cookies,但是可以增加通過腳本直接獲取的難度。

  Microsoft Internet Explorer 版本 6 Service Pack 1 和更高版本支持 Cookie 屬性 HttpOnly。

  7.Cookies加密

  在設置Cookies的屬性時,有一個選項Secure用來控制Cookie的加密特性。

  如果通過 SSL 連接 (HTTPS) 傳輸 Cookie,則為 true;否則為 false。默認為 false。

  如果我們保存一個Cookies并設置加密,那么在非HTTPS的頁面中,無論是使用javascript還是服務器端都無法獲得此Cookies。但是在本地依然可以看到此Cookies的存在。

  8.Cookies與Ajax

  如果Ajax請求訪問一個服務器頁面,此服務器頁面是可以向用戶瀏覽器寫入Cookies和Session的。

告訴我們,你現在想了解什么?

精彩專題——96%的同學看到這里都會點擊下面的專題

  • 關于我們
  • 魯廣校區北大青鳥宏鵬IT學院

    • 北大青鳥(武漢宏鵬)魯廣北校區地址:武漢市洪山區珞喻路724號(二號線光谷廣場站E口出)三樓
      電話:027-87807717
      網址:www.027hpit.com

    • 北大青鳥宏鵬IT學院:武漢市洪山區魯磨路568號
      電話:027-87808818
      網址:www.accp027.com

    • 北大青鳥(武漢宏鵬)魯廣南校區:武漢市洪山區珞喻路724號(二號線光谷廣場站E口出)五樓
      電話:027-87807736
      網址:www.whhpit.com

Copyright (c) 2006-2020 武漢宏鵬教育咨詢有限公司 版權所有 All Rights Reserved.

nba篮彩篮球彩票
足彩篮彩哪里买 篮彩神棍区手机版 nba篮彩怎么玩 1月5日篮彩 篮彩大小分攻略 篮彩分析网站 1.79完美篮彩大极品 篮彩预测分析专家推荐 足彩篮彩解盘分析 篮彩竞彩 篮彩分析捷报 网易篮彩 1.79火龙大极品篮彩版 篮彩大小分什么意思 nba篮彩篮球彩票
法海斗白蛇电子游戏 广东麻将网页游戏 上海扑克麻将千术 瑞波币官方钱包 埃及宝藏游戏 快乐8开奖历史 2011德甲沙尔克04 篮网艾伦 黑暗故事电子游戏 3分赛车走势图怎么看 11选5彩票软件注册码 黑龙江22选5开奖结果今天晚上 苹果手游棋牌游戏 麻将手游app怎么推广 经典老虎机闯关 柏林赫塔vs莱比锡