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