最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Web學習之Cookie和Session的深入理解

 更新時間:2018年04月29日 10:26:58   作者:YungFan  
這篇文章主要給大家介紹了關(guān)于Java Web學習之Cookie和Session的相關(guān)資料,需要的朋友可以參考下

cookie機制和session機制的區(qū)別

具體來說cookie機制采用的是在客戶端保持狀態(tài)的方案,而session機制采用的是在服務器端保持狀態(tài)的方案。
同時我們也看到,由于才服務器端保持狀態(tài)的方案在客戶端也需要保存一個標識,所以session
機制可能需要借助于cookie機制來達到保存標識的目的,但實際上還有其他選擇

會話cookie和持久cookie的區(qū)別

如果不設置過期時間,則表示這個cookie生命周期為瀏覽器會話期間,只要關(guān)閉瀏覽器窗口,cookie就消失了。這種生命期為瀏覽會話期的cookie被稱為會話cookie。會話cookie一般不保存在硬盤上而是保存在內(nèi)存里。

  如果設置了過期時間,瀏覽器就會把cookie保存到硬盤上,關(guān)閉后再次打開瀏覽器,這些cookie依然有效直到超過設定的過期時間。

  存儲在硬盤上的cookie可以在不同的瀏覽器進程間共享,比如兩個IE窗口。而對于保存在內(nèi)存的cookie,不同的瀏覽器有不同的處理方式。


日常現(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。如果服務器設置的Cookie被保存到硬盤上,或者使用某種手段改寫瀏覽器發(fā)出的HTTP請求頭,把原來的Session id發(fā)送給服務器,則再次打開瀏覽器仍然能夠找到原來的Session。也就實說關(guān)閉瀏覽器不會導致服務器端Session被刪除,但是大量的Session一直在也服務器內(nèi)存,服務器也受不了,所以服務器為Session設置了一個失效時間,當距離客戶端上一次使用Session的時間超過這個失效時間(一般為30分鐘)時,服務器就可以認為客戶端已經(jīng)停止了活動,才會把Session刪除以節(jié)省服務器端的存儲空間。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Spring?Boot日志基礎(chǔ)使用之如何設置日志級別

    Spring?Boot日志基礎(chǔ)使用之如何設置日志級別

    這篇文章主要介紹了Spring?Boot日志基礎(chǔ)使用設置日志級別的方法,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • jasypt dubbo配置密文存放使用詳解

    jasypt dubbo配置密文存放使用詳解

    這篇文章主要介紹了jasypt dubbo配置密文存放使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 詳解Java向服務端發(fā)送文件的方法

    詳解Java向服務端發(fā)送文件的方法

    這篇文章主要為大家詳細介紹了Java向服務端發(fā)送文件的方法,主要是IO流,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Java函數(shù)式開發(fā) Optional空指針處理

    Java函數(shù)式開發(fā) Optional空指針處理

    本文主要介紹Java函數(shù)式開發(fā) Optional空指針處理,這里整理了相關(guān)資料,及示例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • Spring中Bean的加載與SpringBoot的初始化流程詳解

    Spring中Bean的加載與SpringBoot的初始化流程詳解

    這篇文章主要介紹了Spring中Bean的加載與SpringBoot的初始化流程詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java反射如何獲取方法屬性和方法調(diào)用

    java反射如何獲取方法屬性和方法調(diào)用

    這篇文章主要介紹了java反射如何獲取方法屬性和方法調(diào)用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringMVC五大組件與執(zhí)行原理分析總結(jié)

    SpringMVC五大組件與執(zhí)行原理分析總結(jié)

    這篇文章主要介紹了SpringMVC五大組件與執(zhí)行原理分析總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Maven繼承與聚合詳解及作用介紹

    Maven繼承與聚合詳解及作用介紹

    繼承關(guān)系中,分為父模塊與子模塊,父模塊也被稱為 parent 模塊,子模塊會繼承父模塊的依賴,父模塊中也可以設置依賴管理器,供子模塊選擇是否需要某些依賴
    2022-08-08
  • Java編程細節(jié)重構(gòu)之為什么if-else不是好代碼詳析

    Java編程細節(jié)重構(gòu)之為什么if-else不是好代碼詳析

    這篇文章主要給大家介紹了關(guān)于Java編程細節(jié)重構(gòu)之為什么if-else不是好代碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學些學習吧
    2018-09-09
  • 深入理解Java嵌套類和內(nèi)部類

    深入理解Java嵌套類和內(nèi)部類

    本篇文章主要介紹了深入理解Java嵌套類和內(nèi)部類,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

漠河县| 信丰县| 宜阳县| 藁城市| 南雄市| 临邑县| 沁水县| 剑川县| 陈巴尔虎旗| 土默特左旗| 新野县| 伊宁市| 财经| 满洲里市| 苍南县| 东阿县| 南昌县| 马龙县| 德昌县| 武宣县| 石城县| 沂水县| 林口县| 兰坪| 宜州市| 象山县| 台东市| 新乡县| 邯郸县| 彭州市| 兴化市| 错那县| 恩施市| 台北市| 景德镇市| 金寨县| 彰化县| 枣庄市| 三原县| 南城县| 榆社县|