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