這篇文章給大家分享的是有關(guān)Java Web之Cookie和Session的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計公司,集創(chuàng)意、互聯(lián)網(wǎng)應用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務商,主營產(chǎn)品:響應式網(wǎng)站設(shè)計、成都品牌網(wǎng)站建設(shè)、全網(wǎng)整合營銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗,以及在手機等移動端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運營、VI設(shè)計、云產(chǎn)品.運維為核心業(yè)務。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務。cookie機制和session機制的區(qū)別
具體來說cookie機制采用的是在客戶端保持狀態(tài)的方案,而session機制采用的是在服務器端保持狀態(tài)的方案。
同時我們也看到,由于才服務器端保持狀態(tài)的方案在客戶端也需要保存一個標識,所以session
機制可能需要借助于cookie機制來達到保存標識的目的,但實際上還有其他選擇
會話cookie和持久cookie的區(qū)別
如果不設(shè)置過期時間,則表示這個cookie生命周期為瀏覽器會話期間,只要關(guān)閉瀏覽器窗口,cookie就消失了。這種生命期為瀏覽會話期的cookie被稱為會話cookie。會話cookie一般不保存在硬盤上而是保存在內(nèi)存里。
如果設(shè)置了過期時間,瀏覽器就會把cookie保存到硬盤上,關(guān)閉后再次打開瀏覽器,這些cookie依然有效直到超過設(shè)定的過期時間。
存儲在硬盤上的cookie可以在不同的瀏覽器進程間共享,比如兩個IE窗口。而對于保存在內(nèi)存的cookie,不同的瀏覽器有不同的處理方式。
日?,F(xiàn)象
登錄了某個網(wǎng)站,過一會兒再登錄,誒,不用輸入密碼了,直接是登錄狀態(tài)了,好神奇~~~
在某網(wǎng)站看了一部手機,接下來瀏覽其他網(wǎng)站,旁邊的廣告全是手機和類似信息,好恐怖~~~
瀏覽某網(wǎng)站時,提示我是第66666位訪問的客戶,真的假的?
其實這些都是Cookie和Session在后面作祟,下面就帶大家學習學習這兩個東東。
Cookie和Session的異同
Cookie與Session都是用來保存用戶狀態(tài)信息的一種方法或者手段;
Cookie是保存在客戶端的臨時文件夾, Session是保存在服務器的內(nèi)存中的,服務器使用一種類似于散列表的結(jié)構(gòu)來保存信息,一個Session域?qū)ο鬄橐粋€客戶瀏覽器服務;
Cookie安全性較差,Session安全性較高;
Cookie的保存時間可以很久(以txt格式保存在客戶端硬盤),Session保存的時間很短,一般是30分鐘;
Cookie為多個客戶瀏覽器共享,Session為一個客戶瀏覽器獨享;
Session是通過Cookie的機制來實現(xiàn)的。
兩個經(jīng)典問題與URL重寫
1、客戶端禁用Cookie,問Session還能工作嗎?
不能(事實)絕大多數(shù)的網(wǎng)站是這樣,原因是沒有使用URL重寫機制來解決Cookie被禁用的問題。(URL重寫代碼量大而且只能應用在動態(tài)的頁面靜態(tài)的不行)
能(事實)微乎其微的網(wǎng)站可以(比如:卓越),原因是它使用了URL重寫機制。
2、 Cookie可以用來實現(xiàn)購物車功能嗎?
能,Session能做的Cookie也能做。
** 本質(zhì) **
無論Cookie,還是URL重寫,目的都是向服務器傳遞JSESSIONID=32位字符串的key和value名值對。
理解Cookie-Session機制
當程序需要為某個客戶端的請求創(chuàng)建一個Session的時候,服務器首先檢查這個客戶端的請求里是否已包含了一個Session標識——稱為 Session id,如果已包含一個Session id則說明以前已經(jīng)為此客戶端創(chuàng)建過Session,服務器就按照Session id把這個 Session檢索出來使用。如果客戶端請求不包含Session id,則為此客戶端創(chuàng)建一個Session并且生成一個與此Session相關(guān)聯(lián)的Session id,這個 Session id將在本次響應中返回給客戶端保存。客戶端保存這個Session id的方式可以采用Cookie,這樣在交互過程中瀏覽器可以自動的按照規(guī)則把這個標識發(fā)回給服務器。一般這個Cookie的名字都是類似于JSESSIONID。對Session來說,除非應用程序通知服務器刪除一個Session,否則服務器會一直保留它。瀏覽器從來不會主動在關(guān)閉之前通知服務器它將要關(guān)閉,因此服務器不會知道瀏覽器已經(jīng)關(guān)閉。之所以會有這種錯覺,是大部分Session機制都使用會話Cookie來保存Session id,而關(guān)閉瀏覽器后這個 Session id就消失了,再次連接服務器時也就無法找到原來的Session。如果服務器設(shè)置的Cookie被保存到硬盤上,或者使用某種手段改寫瀏覽器發(fā)出的HTTP請求頭,把原來的Session id發(fā)送給服務器,則再次打開瀏覽器仍然能夠找到原來的Session。也就實說關(guān)閉瀏覽器不會導致服務器端Session被刪除,但是大量的Session一直在也服務器內(nèi)存,服務器也受不了,所以服務器為Session設(shè)置了一個失效時間,當距離客戶端上一次使用Session的時間超過這個失效時間(一般為30分鐘)時,服務器就可以認為客戶端已經(jīng)停止了活動,才會把Session刪除以節(jié)省服務器端的存儲空間。
感謝各位的閱讀!關(guān)于“Java Web之Cookie和Session的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
標題名稱:JavaWeb之Cookie和Session的示例分析-創(chuàng)新互聯(lián)
當前URL:http://www.rwnh.cn/article16/gdjgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站維護、App開發(fā)、域名注冊、自適應網(wǎng)站、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)