Cookie是什么意思?詳解Cookie的工作原理、作用及與Session的區(qū)別
一、Cookie是什么意思
cookie有時候也用復(fù)數(shù)形式Cookies,這種是指某些網(wǎng)站為了辨別用戶身份、進行 Session 跟蹤而儲存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密),由用戶客戶端計算機暫時或永久保存的信息。簡單來說Cookie就是它能夠把你在訪問網(wǎng)站時的產(chǎn)生的一些行為信息給讀取保存下來,常用的是我們在訪問某些網(wǎng)頁時提示我們是否需要保存用戶名和密碼,下次登錄的時候能夠自動登錄,無需重新登錄。
二、Cookie的分類
Cookie保存在客戶端中,按在客戶端中的存儲位置,可分為內(nèi)存Cookie和硬盤Cookie。
內(nèi)存 Cookie 由瀏覽器維護,保存在內(nèi)存中,瀏覽器關(guān)閉即消失,存在時間短暫。硬盤Cookie保存在硬盤里,有過期時間,除非用戶手動清理或到了過期時間,硬盤Cookie不會清除,存在時間較長。所以,按存在時間,可分為非持久Cookie和持久Cookie。
三、Cookie的工作原理
Cookie是服務(wù)器或腳本在HTTP協(xié)議下維護客戶端工作站信息的一種方式。Cookie是web服務(wù)器保存在用戶瀏覽器(客戶端)上的小文件,其中可能包含用戶的登錄信息、訪問信息等數(shù)據(jù)。每當(dāng)用戶連接到服務(wù)器時,網(wǎng)站就可以訪問cookie信息。
當(dāng)用戶第一次訪問并登陸一個網(wǎng)站的時候,cookie的設(shè)置以及發(fā)送會經(jīng)歷以下4個步驟:客戶端發(fā)送一個請求到服務(wù)器 → 服務(wù)器發(fā)送一個HttpResponse響應(yīng)到客戶端,其中包含Set-Cookie的頭部 → 客戶端保存cookie,之后向服務(wù)器發(fā)送請求時,HttpRequest請求中會包含一個Cookie的頭部 → 服務(wù)器返回響應(yīng)數(shù)據(jù)。
Cookie的工作原理
目前,許多網(wǎng)站開發(fā)人員使用cookie技術(shù)來跟蹤用戶的訪問數(shù)據(jù),分析用戶的偏好,并調(diào)整"推薦算法"。cookie技術(shù)廣泛應(yīng)用于會話對象中。Cookie數(shù)據(jù)對于搜索引擎來說更為重要,因為蜘蛛程序?qū)iT抓取這個緩存的數(shù)據(jù),從跟蹤到的訪問數(shù)據(jù)中分析判斷這個網(wǎng)頁的質(zhì)量水平,然后對一些維度進行評分。
Cookie 文件必須由瀏覽器的支持,在瀏覽器中可以設(shè)置阻止cookie。這樣服務(wù)器端就不能寫入cookie 到客戶端了。目前,大多數(shù)瀏覽器都支持cookie。如谷歌、IE、火狐等。一般來說cookie都不能阻止,因為,有時訪問網(wǎng)站時必須使用cookie。否則網(wǎng)站將不能被訪問。
四、Cookie設(shè)置
瀏覽器設(shè)置cookie功能的一般方法為:
1、在IE頁面的右上角點擊"工具"按鈕。
2、彈出下拉菜單,選擇"internet選項"。
3、打開"internet選項"后,選擇"隱私"按鈕,設(shè)置為中。
4、點擊"高級",彈出對話框,勾選"替代自動cookie處理",勾選"總是允許會話cookie"。
5、點擊確定,瀏覽器cookie功能已經(jīng)啟用。
Cookie設(shè)置
五、Cookie的作用
存儲cookie是瀏覽器提供的功能。cookie 其實是存儲在瀏覽器中的純文本,瀏覽器的安裝目錄下會專門有一個 cookie 文件夾來存放各個域下設(shè)置的cookie。cookie的主要作用就是,當(dāng)你訪問某些網(wǎng)頁,并且對網(wǎng)頁的一些設(shè)置進行修改,cookie就能跟蹤并記錄到這些修改,當(dāng)你下一次訪問這個網(wǎng)頁的時候,這網(wǎng)頁會分析你電腦上的cookie,進而采取措施像你返回更符合返回個性化的網(wǎng)頁。
1、會話狀態(tài)管理(如用戶登錄狀態(tài)、購物車、游戲分數(shù)或其它需要記錄的信息);
2、個性化設(shè)置(如用戶自定義設(shè)置、主題等);
3、瀏覽器行為跟蹤(如跟蹤分析用戶行為等)。
Cookie曾一度用于客戶端數(shù)據(jù)的存儲,因當(dāng)時并沒有其它合適的存儲辦法而作為唯一的存儲手段,但現(xiàn)在隨著現(xiàn)代瀏覽器開始支持各種各樣的存儲方式,Cookie漸漸被淘汰。由于服務(wù)器指定Cookie后,瀏覽器的每次請求都會攜帶Cookie數(shù)據(jù),會帶來額外的性能開銷(尤其是在移動環(huán)境下)。新的瀏覽器API已經(jīng)允許開發(fā)者直接將數(shù)據(jù)存儲到本地,如使用 Web storage API (本地存儲和會話存儲)或 IndexedDB 。
六、如何刪除Cookie
1、在瀏覽器的更多設(shè)置功能選項中找到互聯(lián)網(wǎng)選項或清除瀏覽記錄選項。打開后會有cookie清洗選項,選擇后可以刪除。
2、如果只需要刷新當(dāng)前頁面,可以按鍵盤ctrl+f5,這樣會強制刷新頁面,相當(dāng)于刪除緩存,重新刷新。
七、Cookie的安全問題
自從cookie技術(shù)誕生以來,它就成為了網(wǎng)絡(luò)用戶和網(wǎng)絡(luò)開發(fā)者爭論的焦點。一些網(wǎng)絡(luò)用戶,甚至一些資深的Web專家,對它的出現(xiàn)和推廣并不滿意,不是因為Cookie技術(shù)的功能弱或者其他技術(shù)性能原因,而是因為Cookie的使用對網(wǎng)絡(luò)用戶的隱私造成了危害。因為Cookie是由網(wǎng)絡(luò)服務(wù)器保存在用戶瀏覽器上的小文本文件,所以它們包含關(guān)于用戶的信息。
八、Cookie的缺陷
1、Cookie會被附加在每個HTTP請求中,所以無形中增加了流量。
2、由于HTTP請求中的Cookie是明文傳遞的,所以安全性成問題,除非使用超文本傳輸安全協(xié)定。
3、Cookie的大小限制在4 KB左右,對于復(fù)雜的存儲需求來說是不夠用的。
九、Cookie和session的區(qū)別
1、存儲位置不同
cookie的數(shù)據(jù)信息存放在客戶端瀏覽器上;session的數(shù)據(jù)信息存放在服務(wù)器上。
2、存儲容量不同
單個cookie保存的數(shù)據(jù)<=4KB,一個站點最多保存20個Cookie。對于session來說并沒有上限,但出于對服務(wù)器端的性能考慮,session內(nèi)不要存放過多的東西,并且設(shè)置session刪除機制。
3、存儲方式不同
cookie中只能保管ASCII字符串,并需要通過編碼方式存儲為Unicode字符或者二進制數(shù)據(jù)。session中能夠存儲任何類型的數(shù)據(jù),包括且不限于string,integer,list,map等。
4、隱私策略不同
cookie對客戶端是可見的,別有用心的人可以分析存放在本地的cookie并進行cookie欺騙,所以它是不安全的。session存儲在服務(wù)器上,對客戶端是透明對,不存在敏感信息泄漏的風(fēng)險。
5、有效期上不同
開發(fā)可以通過設(shè)置cookie的屬性,達到使cookie長期有效的效果。session依賴于名為JSESSIONID的cookie,而cookie JSESSIONID的過期時間默認為-1,只需關(guān)閉窗口該session就會失效,因而session不能達到長期有效的效果。
6、服務(wù)器壓力不同
cookie保管在客戶端,不占用服務(wù)器資源。對于并發(fā)用戶十分多的網(wǎng)站,cookie是很好的選擇。session是保管在服務(wù)器端的,每個用戶都會產(chǎn)生一個session。假如并發(fā)訪問的用戶十分多,會產(chǎn)生十分多的session,耗費大量的內(nèi)存。
7、瀏覽器支持不同
假如客戶端瀏覽器不支持cookie:cookie是需要客戶端瀏覽器支持的,假如客戶端禁用了cookie,或者不支持cookie,則會話跟蹤會失效。關(guān)于WAP上的應(yīng)用,常規(guī)的cookie就派不上用場了。運用session需要使用URL地址重寫的方式。一切用到session程序的URL都要進行URL地址重寫,否則session會話跟蹤還會失效。
假如客戶端支持cookie:cookie既能夠設(shè)為本瀏覽器窗口以及子窗口內(nèi)有效,也能夠設(shè)為一切窗口內(nèi)有效。
session只能在本窗口以及子窗口內(nèi)有效。
8、跨域支持上不同
cookie支持跨域名訪問;session不支持跨域名訪問。
總結(jié)
優(yōu)化猩SEO:Cookie 的應(yīng)用,對用戶行為進行了跟蹤,便于為用戶提供個性化定制服務(wù),但Cookie 存儲的信息容易被竊取,假如 cookie 中所傳遞的內(nèi)容比較重要,那么就要求使用加密的數(shù)據(jù)傳輸。
參考鏈接:
cookie(儲存在用戶本地終端上的數(shù)據(jù))_百度百科
https://baike.baidu.com/item/cookie/1119
Cookie - 維基百科,自由的百科全書
https://zh.m.wikipedia.org/zh-hans/Cookie
cookie是什么意思?如何清除cookie?-阿里云開發(fā)者社區(qū)
https://developer.aliyun.com/article/788915
修改于2023-07-18
想了解更多建站百科的內(nèi)容,請訪問:建站百科