
由于HTTP協(xié)議是無狀態(tài)的協(xié)議,所以服務(wù)端需要記錄用戶的狀態(tài)時,就需要用某種機制來識具體的用戶,這個機制就是Session.典型的場景比如購物車,當(dāng)你點擊下單按鈕時,由于HTTP協(xié)議無狀態(tài),所以并不知道是哪個用戶操作的,所以服務(wù)端要為特定的用戶創(chuàng)建了特定的Session,用用于標(biāo)識這個用戶,并且跟蹤用戶,這樣才知道購物車?yán)锩嬗袔妆緯?。這個Session是保存在服務(wù)端的,有一個唯一標(biāo)識。在服務(wù)端保存Session的方法很多,內(nèi)存、數(shù)據(jù)庫、文件都有。集群的時候也要考慮Session的轉(zhuǎn)移,在大型的網(wǎng)站,一般會有專門的Session服務(wù)器集群,用來保存用戶會話,這個時候 Session 信息都是放在內(nèi)存的,使用一些緩存服務(wù)比如Memcached之類的來放 Session。
思考一下服務(wù)端如何識別特定的客戶?這個時候cookie就登場了。每次HTTP請求的時候,客戶端都會發(fā)送相應(yīng)的cookie信息到服務(wù)端。實際上大多數(shù)的應(yīng)用都是用 cookie 來實現(xiàn)Session跟蹤的,第一次創(chuàng)建Session的時候,服務(wù)端會在HTTP協(xié)議中告訴客戶端,需要在 cookie 里面記錄一個Session ID,以后每次請求把這個會話ID發(fā)送到服務(wù)器,我就知道你是誰了。有人問,如果客戶端的瀏覽器禁用了 cookie 怎么辦?一般這種情況下,會使用一種叫做URL重寫的技術(shù)來進(jìn)行會話跟蹤,即每次HTTP交互,URL后面都會被附加上一個諸如 sid=xxxxx 這樣的參數(shù),服務(wù)端據(jù)此來識別用戶。

cookie其實還可以用在一些方便用戶的場景下,設(shè)想你某次登陸過一個網(wǎng)站,下次登錄的時候不想再次輸入賬號了,怎么辦?這個信息可以寫到cookie里面,訪問網(wǎng)站的時候,網(wǎng)站頁面的腳本可以讀取這個信息,就自動幫你把用戶名給填了,能夠方便一下用戶。這也是cookie名稱的由來,給用戶的一點甜頭。所以,總結(jié)一下:Session是在服務(wù)端保存的一個數(shù)據(jù)結(jié)構(gòu),用來跟蹤用戶的狀態(tài),這個數(shù)據(jù)可以保存在集群、數(shù)據(jù)庫、文件中;cookie是客戶端保存用戶信息的一種機制,用來記錄用戶的一些信息,也是實現(xiàn)Session的一種方式。
本文鏈接:
本文章“eion 和 cookie 有什么區(qū)別”已幫助 101 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579