久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

cookie與session的關(guān)系

 sd9527 2010-12-01
為什么會(huì)有cookie呢,大家都知道,,http是無狀態(tài)的協(xié)議,,客戶每次讀取web頁(yè)面時(shí),服務(wù)器都打開新的會(huì)話,,而且服務(wù)器也不會(huì)自動(dòng)維護(hù)客戶的上下文信息,,那么要怎么才能實(shí)現(xiàn)網(wǎng)上商店中的購(gòu)物車呢,session就是一種保存上下文信息的機(jī)制,,它是針對(duì)每一個(gè)用戶的,,變量的值保存在服務(wù)器端,通過 SessionID來區(qū)分不同的客戶,session是以cookie或URL重寫為基礎(chǔ)的,,默認(rèn)使用cookie來實(shí)現(xiàn),,系統(tǒng)會(huì)創(chuàng)造一個(gè)名為 JSESSIONID的輸出cookie,我們叫做session cookie,以區(qū)別persistent cookies,也就是我們通常所說的cookie,注意session cookie是存儲(chǔ)于瀏覽器內(nèi)存中的,,并不是寫到硬盤上的,,這也就是我們剛才看到的JSESSIONID,我們通常情是看不到JSESSIONID的,,但是當(dāng)我們把瀏覽器的cookie禁止后,,web服務(wù)器會(huì)采用URL重寫的方式傳遞Sessionid,我們就可以在地址欄看到 sessionid=KWJHUG6JJM65HS2K6之類的字符串,。
        明白了原理,,我們就可以很容易的分辨出persistent cookies和session cookie的區(qū)別了,網(wǎng)上那些關(guān)于兩者安全性的討論也就一目了然了,,session cookie針對(duì)某一次會(huì)話而言,,會(huì)話結(jié)束session cookie也就隨著消失了,而persistent cookie只是存在于客戶端硬盤上的一段文本(通常是加密的),,而且可能會(huì)遭到cookie欺騙以及針對(duì)cookie的跨站腳本攻擊,,自然不如 session cookie安全了。
        通常session cookie是不能跨窗口使用的,,當(dāng)你新開了一個(gè)瀏覽器窗口進(jìn)入相同頁(yè)面時(shí),,系統(tǒng)會(huì)賦予你一個(gè)新的sessionid,這樣我們信息共享的目的就達(dá)不到了,,此時(shí)我們可以先把sessionid保存在persistent cookie中,,然后在新窗口中讀出來,就可以得到上一個(gè)窗口SessionID了,,這樣通過session cookie和persistent cookie的結(jié)合我們就實(shí)現(xiàn)了跨窗口的session tracking(會(huì)話跟蹤),。
        在一些web開發(fā)的書中,往往只是簡(jiǎn)單的把Session和cookie作為兩種并列的http傳送信息的方式,,session cookies位于服務(wù)器端,,persistent cookie位于客戶端,,可是session又是以cookie為基礎(chǔ)的,明白的兩者之間的聯(lián)系和
區(qū)別,,我們就不難選擇合適的技術(shù)來開發(fā)web service了
cookie
Session是由應(yīng)用服務(wù)器維持的一個(gè)服務(wù)器端的存儲(chǔ)空間,,用戶在連接服務(wù)器時(shí),會(huì)由服務(wù)器生成一個(gè)唯一的SessionID,用該SessionID 為標(biāo)識(shí)符來存取服務(wù)器端的Session存儲(chǔ)空間,。而SessionID這一數(shù)據(jù)則是保存到客戶端,用Cookie保存的,,用戶提交頁(yè)面時(shí),,會(huì)將這一 SessionID提交到服務(wù)器端,來存取Session數(shù)據(jù),。這一過程,,是不用開發(fā)人員干預(yù)的。所以一旦客戶端禁用Cookie,,那么Session也會(huì)失效,。

服務(wù)器也可以通過URL重寫的方式來傳遞SessionID的值,因此不是完全依賴Cookie,。如果客戶端Cookie禁用,,則服務(wù)器可以自動(dòng)通過重寫URL的方式來保存Session的值,并且這個(gè)過程對(duì)程序員透明,。

可以試一下,,即使不寫Cookie,在使用request.getCookies();取出的Cookie數(shù)組的長(zhǎng)度也是1,,而這個(gè)Cookie的名字就是JSESSIONID,,還有一個(gè)很長(zhǎng)的二進(jìn)制的字符串,是SessionID的值,。
Cookie是客戶端的存儲(chǔ)空間,,由瀏覽器來維持。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多