您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎樣解析Cookie和Session,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
當(dāng)用戶使用瀏覽器首次訪問(wèn)一個(gè)支持Cookie的網(wǎng)站的時(shí)候,用戶會(huì)提供包括用戶名在內(nèi)的個(gè)人信息發(fā)送到服務(wù)器;
接著服務(wù)器端接收到客戶端發(fā)送過(guò)來(lái)的http請(qǐng)求后,會(huì)發(fā)送一個(gè)http響應(yīng)到客戶端,其中包含Set-Cookie頭部,自此,客戶端再向服務(wù)器發(fā)送請(qǐng)求的時(shí)候,都會(huì)把相應(yīng)的Cookie再次發(fā)回至服務(wù)器,服務(wù)器在接收到來(lái)自客戶端瀏覽器的請(qǐng)求之后,就能夠通過(guò)分析存放于請(qǐng)求頭的Cookie得到客戶端特有的信息,從而動(dòng)態(tài)生成與該客戶端相對(duì)應(yīng)的內(nèi)容;
在客戶端的第二次請(qǐng)求中包含的Cookie頭部中,提供給了服務(wù)器端可以用來(lái)唯一標(biāo)識(shí)客戶端身份的信息。這時(shí),服務(wù)器端也就可以判斷客戶端是否啟用了cookies
在客戶端的第二次請(qǐng)求中包含的Cookie頭部中,提供給了服務(wù)器端可以用來(lái)唯一標(biāo)識(shí)客戶端身份的信息。這時(shí),服務(wù)器端也就可以判斷客戶端是否啟用了cookies,查看瀏覽器中的Cookie信息
Web應(yīng)用程序是使用HTTP協(xié)議傳輸數(shù)據(jù)的,但是HTTP協(xié)議是無(wú)狀態(tài)的協(xié)議,也就是說(shuō)一旦數(shù)據(jù)交換完畢,客戶端與服務(wù)器端的連接就會(huì)關(guān)閉,再次交換數(shù)據(jù)需要建立新的連接;
這就意味著服務(wù)器無(wú)法從連接上跟蹤會(huì)話,如果想要蹤該會(huì)話,必須引入一種機(jī)制,Cookie就是這樣的一種機(jī)制,它可以彌補(bǔ)HTTP協(xié)議無(wú)狀態(tài)的不足,在Session出現(xiàn)之前基本上所有的網(wǎng)站都采用Cookie來(lái)跟蹤會(huì)話;
Cookie具有不可跨域名性,根據(jù)Cookie規(guī)范,瀏覽器訪問(wèn)一個(gè)域名時(shí)只會(huì)攜帶此域名的Cookie,而不會(huì)攜帶其他域名的Cookie;
Cookie在客戶端是由瀏覽器來(lái)管理的,瀏覽器能夠保證域名不跨域,從而保證用戶的隱私安全,瀏覽器判斷一個(gè)網(wǎng)站是否能操作另一個(gè)網(wǎng)站Cookie的依據(jù)是域名;
讓瀏覽器禁用Cookie,這樣當(dāng)再次訪問(wèn)登錄過(guò)的網(wǎng)頁(yè)時(shí)需要重新登錄,
name
:名稱,Cookie一旦創(chuàng)建,名稱便不可更改;
value
:值,如果值為Unicode字符,需要為字符編碼
maxAge
:Cookie失效的時(shí)間,單位秒,默認(rèn)為-1。如果為正數(shù)則該Cookie在在超過(guò)maxAge秒之后失效。如果為負(fù)數(shù)則Cookie為臨時(shí)Cookie,關(guān)閉瀏覽器即失效,瀏覽器也不會(huì)以任何形式保存該Cookie。如果為0,表示刪除該Cookie。
secure
:Cookie是否僅被使用安全協(xié)議(HTTPS,SSL等)傳輸;
path
:Cookie的使用路徑,如果設(shè)置為“/sessionWeb/”,則只有contextPath為“/sessionWeb”的程序可以訪問(wèn)該Cookie。如果設(shè)置為“/”,則本域名下contextPath都可以訪問(wèn)該Cookie。注意最后一個(gè)字符必須為“/”;
String domain
:可以訪問(wèn)該Cookie的域名,如果設(shè)置為“.9xkd.com”,則所有以“9xkd.com”結(jié)尾的域名都可以訪問(wèn)該Cookie。注意第一個(gè)字符必須為“.”;
Session是服務(wù)器端使用的一種記錄客戶端狀態(tài)的機(jī)制,使用上比Cookie簡(jiǎn)單一些,相應(yīng)的也增加了服務(wù)器的存儲(chǔ)壓力;
Session技術(shù)則是服務(wù)端的解決方案,它是通過(guò)服務(wù)器來(lái)保持狀態(tài)的,我們通常都會(huì)把Session翻譯成會(huì)話,因此我們可以把客戶端瀏覽器與服務(wù)器之間一系列交互的動(dòng)作稱為一個(gè) Session;
第一步是創(chuàng)建Session,Session是在服務(wù)器端程序運(yùn)行的過(guò)程中創(chuàng)建的,不同語(yǔ)言實(shí)現(xiàn)的應(yīng)用程序有不同創(chuàng)建Session的方法,在創(chuàng)建了Session的同時(shí),服務(wù)器會(huì)為該Session生成唯一的Session id,而這個(gè)Session id在隨后的請(qǐng)求中會(huì)被用來(lái)重新獲得已經(jīng)創(chuàng)建的Session;
然后可以調(diào)用Session相關(guān)的方法往Session中增加內(nèi)容,這些內(nèi)容只會(huì)保存在服務(wù)器中,發(fā)到客戶端的只有Session id;
當(dāng)客戶端再次發(fā)送請(qǐng)求的時(shí)候,會(huì)將這個(gè)Session id帶上,服務(wù)器接受到請(qǐng)求之后就會(huì)依據(jù)Session id找到相應(yīng)的Session,從而再次使用,這樣用戶的狀態(tài)也就得以保持了;
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)存放在服務(wù)器上;
cookie沒(méi)有Session安全,別人可以分析存放在本地的Cookie并進(jìn)行Cookie欺騙,考慮到安全應(yīng)當(dāng)使用session;
session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上,當(dāng)訪問(wèn)增多,會(huì)比較占用服務(wù)器的性能,考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用Cookie;
服務(wù)端的session的實(shí)現(xiàn)對(duì)客戶端的cookie有依賴關(guān)系的,sessionid是寫(xiě)在cookie中的;
看完上述內(nèi)容,你們對(duì)怎樣解析Cookie和Session有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。