前端頁面——Cookie與Session有什么差別


我們在實際生活中總會遇到這種事情,我們一旦登錄(首次輸入username和password)某個站點之后,當我們再次訪問的時候(僅僅要不關閉瀏覽器),無需再次登錄。而當我們在這個站點瀏覽一段時間后,它會產生我們瀏覽的記錄,並且有的站點還提供購物車的功能。這些簡單有用的功能就是通過Cookie與Session實現的。接下來。讓我們一起探討一下它們是怎樣執行的。

1、概念

Cookie

有時也用其復數形式Cookies。指某些站點為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據(通常經過加密)。

Session

Session直接翻譯成中文比較困難。一般都譯成時域。在計算機專業術語中。Session是指一個終端用戶與交互系統進行通信的時間間隔。通常指從注冊進入系統到注銷退出系統之間所經過的時間。以及假設須要的話,可能還有一定的操作空間。

詳細到Web中的Session指的就是用戶在瀏覽某個站點時。從進入站點到關閉這個站點所經過的這段時間,也就是用戶瀏覽這個站點所花費的時間。因此從上述的定義中我們能夠看到,Session實際上是一個特定的時間概念。

須要注意的是,一個Session的概念須要包含特定的client,特定的server端以及不中斷的操作時間。

A用戶和Cserver建立連接時所處的Session同B用戶和Cserver建立連接時所處的Session是兩個不同的Session。

2、差別

1、cookie數據存放在客戶的瀏覽器上,session數據放在server上
2、cookie不是非常安全,別人能夠分析存放在本地的COOKIE並進行
3、session會在一定時間內保存在server上。當訪問增多,會比較占用你server的性能
4、單個cookie在client的限制是3K,就是說一個站點在client存放的COOKIE不能大於3K。

3執行機制

3.1、Cookie機制

在程序中,會話跟蹤是非常重要的事情。

理論上,一個用戶的全部請求操作都應該屬於同一個會話,而還有一個用戶的全部請求操作則應該屬於還有一個會話。二者不能混淆。

比如,用戶A在超市購買的不論什么商品都應該放在A的購物車內。不論是用戶A什么時間購買的。這都是屬於同一個會話的。不能放入用戶B或用戶C的購物車內。這不屬於同一個會話。

而Web應用程序是使用HTTP協議數據傳輸的。HTTP協議是無狀態的協議。一旦數據交換完成,client與server端的連接就會關閉,再次交換數據須要建立新的連接。

這就意味着server無法從連接上跟蹤會話。即用戶A購買了一件商品放入購物車內,當再次購買商品時server已經無法推斷該購買行為是屬於用戶A的會話還是用戶B的會話了。要跟蹤該會話,必須引入一種機制。

Cookie就是這種一種機制。它能夠彌補HTTP協議無狀態的不足。在Session出現之前。基本上全部的站點都採用Cookie來跟蹤會話。

由於HTTP是一種無狀態的協議,server單從網絡連接上無從知道客戶身份。怎么辦呢?就給client們頒發一個通行證吧,每人一個,不管誰訪問都必須攜帶自己通行證。這樣server就能從通行證上確認客戶身份了。這就是Cookie的工作原理。

Cookie實際上是一小段的文本信息。client請求server。假設server須要記錄該用戶狀態,就使用response向client瀏覽器頒發一個Cookie。

client瀏覽器會把Cookie保存起來。

當瀏覽器再請求該站點時,瀏覽器把請求的網址連同該Cookie一同提交給server。server檢查該Cookie。以此來辨認用戶狀態。server還能夠依據須要改動Cookie的內容。

這里寫圖片描寫敘述

3.2 Session機制

除了使用Cookie,Web應用程序中還常常使用Session來記錄client狀態。

Session是server端使用的一種記錄client狀態的機制,使用上比Cookie簡單一些,相應的也添加了server的存儲壓力。

client瀏覽器訪問server的時候,server把client信息以某種形式記錄在server上。

這就是Session。client瀏覽器再次訪問時僅僅須要從該Session中查找該客戶的狀態就能夠了。

假設說Cookie機制是通過檢查客戶身上的“通行證”來確定客戶身份的話,那么Session機制就是通過檢查server上的“客戶明細表”來確認客戶身份。

Session相當於程序在server上建立的一份客戶檔案,客戶來訪的時候僅僅須要查詢客戶檔案表就能夠了。

例如以下圖所看到的。張三和李四分別訪問該站點,在服務端會產生兩個SessionID來區分該用戶,而在client將相應的SessionID存放在Cookie中。以便我們再次訪問時得到我們所需的資源。

這里寫圖片描寫敘述

4總結

這里。我們將cookie跟session簡介了一下,至於實際應用還須要我們在做項目中慢慢體會,比如,怎樣控制他們的生命周期,有效期等等。並且session和cookie是我們必須要掌握的技術。由於我們要常常使用它來進行消息的傳遞與驗證。並且它們還應用在權限控制,單點登錄等技術。不管怎么說。我們都應該重視這種簡單常常使用的小技能。


免責聲明!

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



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