Cookies 和 Session的詳解及區(qū)別
Cookies 和 Session的詳解及區(qū)別
1.cookie 是一種發(fā)送到客戶瀏覽器的文本串句柄,并保存在客戶機硬盤上,可以用來在某個WEB站點會話間持久的保持數(shù)據(jù)。
2.session其實指的就是訪問者從到達某個特定主頁到離開為止的那段時間。 Session其實是利用Cookie進行信息處理的,當(dāng)用戶首先進行了請求后,服務(wù)端就在用戶瀏覽器上創(chuàng)建了一個Cookie,當(dāng)這個Session結(jié)束時,其實就是意味著這個Cookie就過期了。
注:為這個用戶創(chuàng)建的Cookie的名稱是aspsessionid。這個Cookie的唯一目的就是為每一個用戶提供不同的身份認證。
session 從字面上講,就是會話。這個就類似于你和一個人交談,你怎么知道當(dāng)前和你交談的是張三而不是李四呢?對方肯定有某種特征(長相等)表明他就是張三。session 也是類似的道理,服務(wù)器要知道當(dāng)前發(fā)請求給自己的是誰。為了做這種區(qū)分,服務(wù)器就要給每個客戶端分配不同的“身份標(biāo)識”,然后客戶端每次向服務(wù)器發(fā)請求的時候,都帶上這個“身份標(biāo)識”,服務(wù)器就知道這個請求來自于誰了。至于客戶端怎么保存這個“身份標(biāo)識”,可以有很多種方式,對于瀏覽器客戶端,大家都默認采用 cookie 的方式。
3.cookie和session的共同之處在于:cookie和session都是用來跟蹤瀏覽器用戶身份的會話方式。
4.cookie 和session的區(qū)別是:cookie數(shù)據(jù)保存在客戶端,session數(shù)據(jù)保存在服務(wù)器端。
簡單的說,當(dāng)你登錄一個網(wǎng)站的時候:
· 如果web服務(wù)器端使用的是session,那么所有的數(shù)據(jù)都保存在服務(wù)器上, 客戶端每次請求服務(wù)器的時候會發(fā)送當(dāng)前會話的sessionid,服務(wù)器根據(jù)當(dāng)前sessionid判斷相應(yīng)的用戶數(shù)據(jù)標(biāo)志 ,以確定用戶是否登錄或具有某種權(quán)限。由于數(shù)據(jù)是存儲在服務(wù)器上面,所以你不能偽造, 但是如果你能夠獲取某個登錄用戶的sessionid,用特殊的瀏覽器偽造該用戶的請求也是能夠成功的。 sessionid是服務(wù)器和客戶端鏈接時候隨機分配的,一般來說是不會有重復(fù),但如果有大量的并發(fā)請求, 也不是沒有重復(fù)的可能性. · 如果瀏覽器使用的是cookie,那么所有的數(shù)據(jù)都保存在瀏覽器端,比如你登錄以后, 服務(wù)器設(shè)置了cookie用戶名,那么當(dāng)你再次請求服務(wù)器的時候,瀏覽器會將用戶名一塊發(fā)送給服務(wù)器, 這些變量有一定的特殊標(biāo)記。服務(wù)器會解釋為cookie變量,所以只要不關(guān)閉瀏覽器,那么cookie變量一直是有效的, 所以能夠保證長時間不掉線。如果你能夠截獲某個用戶的cookie變量,然后偽造一個數(shù)據(jù)包發(fā)送過去, 那么服務(wù)器還是認為你是合法的。所以,使用cookie被攻擊的可能性比較大。如果設(shè)置了的有效時間, 那么它會將cookie保存在客戶端的硬盤上,下次再訪問該網(wǎng)站的時候,瀏覽器先檢查有沒有 cookie, 如果有的話,就讀取該cookie,然后發(fā)送給服務(wù)器。如果你在機器上面保存了某個論壇 cookie, 有效期是一年,如果有人入侵你的機器,將你的cookie拷走,然后放在他的瀏覽器的目錄下面, 那么他登錄該網(wǎng)站的時候就是用你的的身份登錄的。所以cookie是可以偽造的。當(dāng)然,偽造的時候需要注意, 直接copy cookie文件到cookie目錄,瀏覽器是不認的,他有一個index.dat文件,存儲了cookie文件的建立時間, 以及是否有修改,所以你必須先要有該網(wǎng)站的 cookie文件,并且要從有效時間上騙過瀏覽器。
5.兩個都可以用來存私密的東西,同樣也都有有效期的說法,區(qū)別在于session是放在服務(wù)器上的,過期與否取決于服務(wù)期的設(shè)定,cookie是存在客戶端的,過去與否可以在cookie生成的時候設(shè)置進去。
(1)cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上
(2)cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙,如果主要考慮到安全應(yīng)當(dāng)使用session
(3)session會在一定時間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能,如果主要考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE
(4)單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K。
(5)所以:將登陸信息等重要信息存放為SESSION;其他信息如果需要保留,可以放在COOKIE中
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- 深入探究Django中的Session與Cookie
- 詳解node.js平臺下Express的session與cookie模塊包的配置
- php及codeigniter使用session-cookie的方法(詳解)
- JavaWeb使用Session和Cookie實現(xiàn)登錄認證
- java中Cookie被禁用后Session追蹤問題
- php頁面跳轉(zhuǎn)session cookie丟失導(dǎo)致不能登錄等問題的解決方法
- 基于java中cookie和session的比較
- 淺談cookie 和session 的區(qū)別
- 詳解PHP中cookie和session的區(qū)別及cookie和session用法小結(jié)
- 關(guān)于session和cookie的簡單理解
- cookie、session和java過濾器結(jié)合實現(xiàn)登陸程序
- 帶你了解session和cookie作用原理區(qū)別和用法
相關(guān)文章
總結(jié)分享10個JavaScript代碼優(yōu)化小tips
這篇文章主要介紹了總結(jié)分享10個JavaScript代碼優(yōu)化小tips,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07js實現(xiàn)把圖片的絕對路徑轉(zhuǎn)為base64字符串、blob對象再上傳
本文主要介紹了JavaScript把項目本地的圖片或者圖片的絕對路徑轉(zhuǎn)為base64字符串、blob對象再上傳的方法,具有一定的參考價值,需要的朋友一起來看下吧2016-12-12JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之檢索算法示例【二分查找法、計算重復(fù)次數(shù)】
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之檢索算法,結(jié)合實例形式分析了二分查找法、計算重復(fù)次數(shù)相關(guān)算法原理與使用技巧,需要的朋友可以參考下2019-02-02Chrome中模態(tài)對話框showModalDialog返回值問題的解決方法
chrome中彈出模態(tài)對話框,通過window.returnValue賦返回值關(guān)閉后,有的情況下無法取得返回值。2010-05-05