內置對象Cookie和Session有何不同【常見面試題】


我們在面試的時候,時常會被問到Cookie和Session的區別,對於初學者來說,有時候會混淆這兩個內置對象。下面就我自己的理解,對這2個內置對象進行剖析。

1、Session對象存在Web服務器端,Cookie對象存在用戶的客戶端(主要是Web瀏覽器,比如你的搜狗瀏覽器,谷歌瀏覽器等)

     用戶客戶端無法拿到Session的值,但Cookie就不一樣,Cookie是以一種文本的形式存儲在瀏覽器中的,通過瀏覽器的一些Web調試工具,我們可以輕易的看到Cookie中的值。下面我們就通過谷歌瀏覽器的自帶調試工具來查看下百度首頁打開的時候會有哪些Cookie信息。

    首先谷歌瀏覽器打開百度首頁,然后按下你電腦的F12鍵即可調出調試界面。如下圖,切換到Appliation頁簽界面,可以看到左下側有個Cookie菜單,點擊后,右側出現的即為當前頁面的所含有的Cookie信息。在列表中可以看到Cookie的鍵名、Cookie值以及過期時間等。

2、數據安全性:Session存儲的數據比較安全,Cookie因為存儲在用戶瀏覽器本地,無法保證安全性。

    因此一些機密的數據一定不能使用Cookie進行存儲,比如用戶的密碼、身份證號等關鍵信息一定不可存放在Cookie,容易被他人竊取。


3、Cookie的存儲時間可以比Session長很多,當然這個也看開發人員怎么設定,Cookie存儲在客戶瀏覽器端可以設置1天、2天或者更長的有效期。但Session一般在客戶最后一次鏈接訪問后2小時內即會失效,再次訪問就需要重新建立Session鏈接,這也是為何你登錄一些網站后,長時間不操作,再次操作要求你重新登錄的原因。

 

4、Cookie還有下面這個特點,一個瀏覽器下同一個域名只能保存一份Cookie鍵值對。

    具體舉栗子:比如某個管理系統的網站在登陸成功后,會將用戶名寫入到瀏覽器Cookie中。如果張三打開了瀏覽器登陸這個管理系統,那么寫入的Cookie值就是Cookie["name"]="張三"。張三登陸成功后,又新打開了個頁簽,登陸了李四的賬號,那這時候在切回張三的頁面,刷新網頁,你看到的Cookie值將會是李四,同時頁面顯示的內容也是李四的內容。后者覆蓋了前者。
  針對上述這個問題,有些瀏覽器可以通過打開子窗口方式解決了(重新雙擊瀏覽器圖標打開新的瀏覽器窗口),注意是非打開子頁簽。

  最后,附上我的ASP.NET學習群,歡迎各位同行入群指導交流。技術群:【ASP.NET技術社區】960640092。

更多文章可以關注博主個人站點:IT技術小屋。博主公眾號如下:

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM