<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 60,comments - 71,trackbacks - 0

    本文來自:http://onewww.net/blog/article.asp?id=38

    今天突然發現我對Session有很大的誤解.
    一句話就是,一般情況下Session是需要Cookie支持的!
    大家都知道Session是在服務器端保存客戶狀態的,只要瀏覽器不關閉,就可以一直保存該用戶的信息,通常用做來保存是否登陸信息等.而Cookie與其剛好相反,它將信息保存到客戶端,它是寫入文件的,俗成小甜點..
    今天做了個程序,是判斷是否登陸成功的,沒有使用Cookie,而全部使用的Session機制實現的.本來很好用,可吃完午飯后,突發起想的把瀏覽器的cookie禁止了,這時候產生了一件讓我很驚訝的事情session竟然不好用了,也就是說,無論我怎么登陸系統,系統都認為我沒有登陸! 當我把cookie打開后session就好用了,系統也恢復正常了?!這是怎么會事?感覺我和思維中的某種原則性的東西沖突了
    于是決定好好研究下.
    為什么登陸后,只要不關閉瀏覽器,session就能一直存在?當然session的數據是保存在服務器上的,但服務器是怎么識別這些數據都是誰的呢?答案是sessionid,每一個瀏覽者都唯一的sessionid,這就很好的區分了不同瀏覽者的不同session了.sessionid是怎么產生的?應該是第一次訪問服務器的時候隨即生成的.假如是111,然后他的登陸信息是true,服務器就知道sessionid為111已經登陸了,這些信息都存在了服務器上了.但當瀏覽者繼續操作的時候,也就是打開該系統的另一個頁面的時候sessionid怎么辦?如何傳遞?打開另一個頁面的時候其實相當于重新訪問系統,如果沒有特殊的處理機制,系統會再次重新分配一個sessionid的,這樣的話就失去意義了~!所以sessionid在第一次訪問后應該存在了客戶端.能寸哪呢?當然,只能寸在cookie中了,這就是為什么關閉cookie,session就失去作用了
    找到這么個例子來描述cookie session的關系再恰當不過了
    一家咖啡店有喝5杯咖啡免費贈一杯咖啡的優惠,然而一次性消費5杯咖啡的機會微乎其微,這時就需要某種方式來紀錄某位顧客的消費數量。想象一下其實也無外乎下面的幾種方案:
    1、該店的店員很厲害,能記住每位顧客的消費數量,只要顧客一走進咖啡店,店員就知道該怎么對待了。這種做法就是協議本身支持狀態。
    2、發給顧客一張卡片,上面記錄著消費的數量,一般還有個有效期限。每次消費時,如果顧客出示這張卡片,則此次消費就會與以前或以后的消費相聯系起來。這種做法就是在客戶端保持狀態。
    3、發給顧客一張會員卡,除了卡號之外什么信息也不紀錄,每次消費時,如果顧客出示該卡片,則店員在店里的紀錄本上找到這個卡號對應的紀錄添加一些消費信息。這種做法就是在服務器端保持狀態。
    第一種情況暫時不考慮.看第二種情況,卡片無疑就是cookie了,所有的數據如果都存在卡片上是不安全的,也是容易遺失的(卡片被修改了?卡片遺失了?這都是有可能的).所以才用了第三種情況.客戶除了個會員號再什么信息也沒有,這是最安全的,但這個會員號必須是客戶自己知道的!也就是cookie中必須存儲的.
    這樣解釋我今天中午遇到的情況就不驚訝了.

    無cookie的解決辦法是利用URL重寫技術,就是把sessionid的數據保存在url后面http://onewww.net/a.asp?sessionid=111
    在.net中,可以用Web.config配置
    就是把cookieless="false"改為:cookieless="true"就可以了
    還有一種方法是利用表單隱藏字段技術,就是加個input type='hide'的元素.這中技術也在.Net中大量使用,尤其是.Net中的控件.個人很不喜歡這種技術,因為加大了流量(數據都是加密的.體積成倍增加)

    默認情況下session是存在inetinfo.exe進程中的
    .Net中session是可以存在sql server中的,很強

    PS:
    今天看到firefox2支持客戶端Session保存,我理解的是不利用cookie了,直接就支持.其實IE很早就支持了!只是沒有普及.應該是個很好的技術.以前看過,忘記在哪看的了,以后找到再補充上來.現在firefox也支持了,估計又要掀起一次小小的革命了.哈哈.個人觀點
    firefox 2支持session的英文資料 我是看不明白地..
    http://www.whatwg.org/specs/web-apps/current-work/#scs-client-side

    真是一篇好文,呵呵,收藏了.
    posted on 2008-06-19 09:23 henry1451 閱讀(1551) 評論(0)  編輯  收藏 所屬分類: Jsp,Js,Ajax,Html技術
    主站蜘蛛池模板: 亚洲人成电影网站国产精品| 日本亚洲国产一区二区三区| 精品国产日韩亚洲一区在线| 亚洲午夜精品一级在线播放放| 久久免费高清视频| 99久久婷婷国产综合亚洲| 亚洲精品岛国片在线观看| 在线美女免费观看网站h| 国产偷国产偷亚洲清高APP| 国产亚洲精品a在线观看app | 日韩精品视频免费观看| 99精品免费视品| 亚洲一区二区三区高清在线观看| 久久久久亚洲AV无码专区桃色| 永久免费在线观看视频| 人人爽人人爽人人片A免费| 亚洲毛片免费观看| 国产成人亚洲影院在线观看| 久久经典免费视频| 韩日电影在线播放免费版| 亚洲综合av一区二区三区| 亚洲国产成人片在线观看| 精品久久洲久久久久护士免费| 久久免费看少妇高潮V片特黄| 久久久久久亚洲精品无码| 亚洲黄色一级毛片| 亚洲女同成人AⅤ人片在线观看| 91情侣在线精品国产免费| 麻豆精品不卡国产免费看| 婷婷亚洲综合一区二区| 亚洲一级毛片中文字幕| 精品久久香蕉国产线看观看亚洲| 女人18毛片免费观看| 13一14周岁毛片免费| 99精品视频免费| 一级一级一片免费高清| 美景之屋4在线未删减免费 | 精品久久久久久亚洲精品| 久久亚洲精品无码| 亚洲午夜福利在线观看| 亚洲色图综合在线|