通俗理解session 如何深刻理解JavaWeb中session和cookie?
如何深刻理解JavaWeb中session和cookie?簡(jiǎn)單來(lái)說(shuō),一種是將用戶數(shù)據(jù)保存在客戶端(電腦、手機(jī)等。),另一種是保存在服務(wù)器上(云)。本文由Gear藝創(chuàng)原創(chuàng),未經(jīng)允許禁止轉(zhuǎn)載。如有技術(shù)開(kāi)發(fā)
如何深刻理解JavaWeb中session和cookie?
簡(jiǎn)單來(lái)說(shuō),一種是將用戶數(shù)據(jù)保存在客戶端(電腦、手機(jī)等。),另一種是保存在服務(wù)器上(云)。
本文由Gear藝創(chuàng)原創(chuàng),未經(jīng)允許禁止轉(zhuǎn)載。如有技術(shù)開(kāi)發(fā)需求,請(qǐng)聯(lián)系Gear藝創(chuàng)頭條號(hào)。
Cookies是每個(gè)網(wǎng)站的信息,每個(gè)網(wǎng)站只對(duì)應(yīng)一個(gè),其他網(wǎng)站。該文件保存在客戶端。每次打開(kāi)相應(yīng)的網(wǎng)站,瀏覽器都會(huì)查找這個(gè)網(wǎng)站的cookies,如果有,就會(huì)把這個(gè)文件發(fā)出去。
cookies文件的內(nèi)容包含用戶名、密碼、設(shè)置等信息。它由服務(wù)器發(fā)送并存儲(chǔ)在瀏覽器中,以便訪問(wèn)者下次返回網(wǎng)絡(luò)服務(wù)器時(shí)可以從瀏覽器中讀取這些信息。
會(huì)話是針對(duì)每一個(gè)用戶的,會(huì)話機(jī)制是服務(wù)器端的機(jī)制。只有當(dāng)客戶端訪問(wèn)時(shí),程序才會(huì)為該客戶端添加一個(gè)會(huì)話。
會(huì)話主要存儲(chǔ)用戶 的登錄信息,操作信息等等。Session直接翻譯成中文比較難,一般翻譯成時(shí)域。在計(jì)算機(jī)術(shù)語(yǔ)中,會(huì)話指的是最終用戶和交互系統(tǒng)之間的時(shí)間間隔,通常指的是從注冊(cè)到退出系統(tǒng)所經(jīng)過(guò)的時(shí)間。而且必要的話可能還有一定的操作空間。
Web中的Session是指用戶瀏覽一個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站到關(guān)閉瀏覽器所經(jīng)過(guò)的時(shí)間,也就是用戶瀏覽這個(gè)網(wǎng)站所花費(fèi)的時(shí)間。
所以從上面的定義我們可以看出,Session其實(shí)是一個(gè)具體的時(shí)間概念。
Cookie和會(huì)話的關(guān)系當(dāng)客戶端請(qǐng)求創(chuàng)建會(huì)話時(shí),服務(wù)器首先檢查客戶端請(qǐng)求是否已經(jīng)包含會(huì)話id。如果已經(jīng)包含了一個(gè)會(huì)話id,說(shuō)明之前已經(jīng)為這個(gè)客戶端創(chuàng)建了一個(gè)會(huì)話,服務(wù)器會(huì)根據(jù)這個(gè)會(huì)話id來(lái)檢索這個(gè)會(huì)話以供使用。
如果客戶端請(qǐng)求不包含會(huì)話id,則為該服務(wù)器創(chuàng)建會(huì)話,并生成與該會(huì)話相關(guān)聯(lián)的會(huì)話id。Cookie可以用來(lái)保存這個(gè)會(huì)話id,會(huì)話類似于 "云和存儲(chǔ)。會(huì)話的概念需要包括特定的客戶端、特定的服務(wù)器和不間斷的運(yùn)行時(shí)間。
優(yōu)缺點(diǎn)cookies不是很安全。還有人可以分析本地存儲(chǔ)的cookie,欺騙cookie(Cooke是透明可見(jiàn)的)??紤]到應(yīng)該使用安全性,會(huì)話將在服務(wù)器上保存一段時(shí)間。當(dāng)訪問(wèn)增加時(shí),,會(huì)占用你服務(wù)器的性能??紤]到服務(wù)器性能的降低,應(yīng)該使用COOKIEs??蛻舳松蠁蝹€(gè)cookie的限制是3K,這意味著客戶端上一個(gè)站點(diǎn)存儲(chǔ)的cookie不能是3K。綜上所述,cookie機(jī)制采用在客戶端維護(hù)狀態(tài)的方案,而會(huì)話機(jī)制采用在服務(wù)器端維護(hù)狀態(tài)的方案。
Cooki
什么層允許不同計(jì)算機(jī)上的兩個(gè)應(yīng)用程序建立使用和結(jié)束句會(huì)話連接?
1.物理層:主要功能是定義網(wǎng)絡(luò)的物理結(jié)構(gòu)、傳輸?shù)碾姶艠?biāo)準(zhǔn)、比特流的編碼以及網(wǎng)絡(luò)的時(shí)間原理,如時(shí)分復(fù)用、頻分復(fù)用等。
它決定網(wǎng)絡(luò)連接類型(端到端或多端連接)和物理拓?fù)?。在門外漢和。;用術(shù)語(yǔ)來(lái)說(shuō),這一層主要負(fù)責(zé)實(shí)際的信號(hào)傳輸。物理層的主要設(shè)備:中繼器和集線器。
2.數(shù)據(jù)鏈路審查:在兩臺(tái)主機(jī)之間建立數(shù)據(jù)鏈路連接,將數(shù)據(jù)信號(hào)傳輸?shù)轿锢韺?,并?duì)信號(hào)進(jìn)行處理,使其無(wú)差錯(cuò)、合理傳輸。數(shù)據(jù)鏈路層的主要設(shè)備:第二層交換機(jī)和網(wǎng)橋。
3.網(wǎng)絡(luò)層:主要負(fù)責(zé)路由,選擇合適的路徑,阻塞控制。網(wǎng)絡(luò)層協(xié)議的代表有:IP、IPX、OSPF等。網(wǎng)絡(luò)層主要設(shè)備:路由器。
4.傳輸層:最關(guān)鍵的一層,為支撐提供可靠的端到端服務(wù),屏蔽了較低層的數(shù)據(jù)通信細(xì)節(jié),使用戶和應(yīng)用不需要考慮實(shí)際的通信方法。傳輸層協(xié)議的代表有:TCP、UDP、SPX等。
5.會(huì)話層:主要負(fù)責(zé)兩個(gè)會(huì)話進(jìn)程之間的通信,即兩個(gè)會(huì)話層實(shí)體之間的信息交換和數(shù)據(jù)交換的管理。
6.表示層:處理通信信號(hào)的表示方法,在不同格式之間進(jìn)行翻譯,并負(fù)責(zé)數(shù)據(jù)的加密和解密,數(shù)據(jù)的壓縮和恢復(fù)。
7.應(yīng)用層:保存應(yīng)用程序之間建立連接所需的數(shù)據(jù)記錄,為用戶服務(wù)。應(yīng)用層協(xié)議的代表有:Telnet、FTP、HTTP、SNMP等。