Cookie 解说(分类、用途、缺陷、功能 ...)
前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到教程。
Cookie(復(fù)數(shù)形態(tài)Cookies),中文名稱為“小型文本文件”或“小甜餅”,指某些網(wǎng)站為了辨別用戶身份而儲存在用戶本地終端(Client Side)上的數(shù)據(jù)(通常經(jīng)過加密)。
分類
Cookie總是保存在客戶端中,按在客戶端中的存儲位置,可分為內(nèi)存Cookie和硬盤Cookie。
內(nèi)存Cookie由瀏覽器維護(hù),保存在內(nèi)存中,瀏覽器關(guān)閉后就消失了,其存在時間是短暫的。
硬盤Cookie保存在硬盤里,有一個過期時間,除非用戶手工清理或到了過期時間,硬盤Cookie不會被刪除,其存在時間是長期的。所以,按存在時間,可分為非持久Cookie和持久Cookie。
用途
因為HTTP協(xié)議是無狀態(tài)的,即服務(wù)器不知道用戶上一次做了什么,這嚴(yán)重阻礙了交互式Web應(yīng)用程序的實現(xiàn)。
在典型的網(wǎng)上購物場景中,用戶瀏覽了幾個頁面,買了一盒餅干和兩瓶飲料。最后結(jié)帳時,由于HTTP的無狀態(tài)性,不通過額外的手段,服務(wù)器并不知道用戶到底買了什么,所以Cookie就是用來繞開HTTP的無狀態(tài)性的“額外手段”之一。服務(wù)器可以設(shè)置或讀取Cookies中包含信息,借此維護(hù)用戶跟服務(wù)器會話中的狀態(tài)。
在剛才的購物場景中,當(dāng)用戶選購了第一項商品,服務(wù)器在向用戶發(fā)送網(wǎng)頁的同時,還發(fā)送了一段Cookie,記錄著那項商品的信息。當(dāng)用戶訪問另一個頁面,瀏覽器會把Cookie發(fā)送給服務(wù)器,于是服務(wù)器知道他之前選購了什么。用戶繼續(xù)選購飲料,服務(wù)器就在原來那段Cookie里追加新的商品信息。結(jié)帳時,服務(wù)器讀取發(fā)送來的Cookie就行了。
Cookie另一個典型的應(yīng)用是當(dāng)?shù)卿浺粋€網(wǎng)站時,網(wǎng)站往往會請求用戶輸入用戶名和密碼,并且用戶可以勾選“下次自動登錄”。如果勾選了,那么下次訪問同一網(wǎng)站時,用戶會發(fā)現(xiàn)沒輸入用戶名和密碼就已經(jīng)登錄了。這正是因為前一次登錄時,服務(wù)器發(fā)送了包含登錄憑據(jù)(用戶名加密碼的某種加密形式)的Cookie到用戶的硬盤上。第二次登錄時,如果該Cookie尚未到期,瀏覽器會發(fā)送該Cookie,服務(wù)器驗證憑據(jù),于是不必輸入用戶名和密碼就讓用戶登錄了。
Cookie的缺陷
使用Cookies
用戶可以改變?yōu)g覽器的設(shè)置,以使用Cookies。同時一些瀏覽器自帶或安裝開發(fā)者工具包允許用戶查看、修改或刪除特定網(wǎng)站的Cookies信息。
識別功能
如果在一臺計算機中安裝多個瀏覽器,每個瀏覽器都會以獨立的空間存放Cookie。因為Cookie中不但可以確認(rèn)用戶信息,還能包含計算機和瀏覽器的信息,所以一個用戶使用不同的瀏覽器登錄或者用不同的計算機登錄,都會得到不同的Cookie信息,另一方面,對于在同一臺計算機上使用同一瀏覽器的多用戶群,Cookie不會區(qū)分他們的身份,除非他們使用不同的用戶名登錄。
反對Cookies者
一些人反對Cookies在網(wǎng)絡(luò)中的應(yīng)用,他們的理由如下:
識別不精確
- 識別功能
識別有時候會發(fā)生錯誤
隱私、安全和廣告
Cookies在某種程度上說已經(jīng)嚴(yán)重危及用戶的隱私和安全。其中的一種方法是:一些公司的高層人員為了某種目的(譬如市場調(diào)研)而訪問了從未去過的網(wǎng)站(通過搜索引擎查到的),而這些網(wǎng)站包含了一種叫做網(wǎng)頁臭蟲的圖片,該圖片透明,且只有一個像素大小(以便隱藏),它們的作用是將所有訪問過此頁面的計算機寫入Cookie。而后,電子商務(wù)網(wǎng)站將讀取這些Cookie信息,并尋找寫入這些Cookie的網(wǎng)站,隨即發(fā)送包含了針對這個網(wǎng)站的相關(guān)產(chǎn)品廣告的垃圾郵件給這些高級人員。
偷竊Cookies和腳本攻擊
雖然Cookies沒有中計算機病毒那么危險,但它仍包含了一些敏感消息:用戶名、計算機名、使用的瀏覽器和曾經(jīng)訪問的網(wǎng)站。用戶不希望這些內(nèi)容泄漏出去,尤其是當(dāng)其中還包含有私人信息的時候。
這并非危言聳聽,跨站點腳本(Cross site scripting)可以達(dá)到此目的。在受到跨站點腳本攻擊時,Cookie盜賊和Cookie毒藥將竊取內(nèi)容。一旦Cookie落入攻擊者手中,它將會重現(xiàn)其價值。
- Cookie盜賊:搜集用戶Cookie并發(fā)給攻擊者的黑客,攻擊者將利用Cookie消息通過合法手段進(jìn)入用戶帳戶。
- Cookie投毒:一般認(rèn)為,Cookie在儲存和傳回服務(wù)器期間沒有被修改過,而攻擊者會在Cookie送回服務(wù)器之前對其進(jìn)行修改,達(dá)到自己的目的。例如,在一個購物網(wǎng)站的Cookie中包含了顧客應(yīng)付的款項,攻擊者將該值改小,達(dá)到少付款的目的。
Cookies的替代品
鑒于Cookie的局限和反對者的聲音,有如下一些替代方法:
- Brownie方案,是一項開放源代碼工程,由SourceForge發(fā)起。Brownie曾被用以共享在不同域中的接入,而Cookies則被構(gòu)想成單一域中的接入。這項方案已經(jīng)停止開發(fā)。
- P3P,用以讓用戶獲得更多控制個人隱私權(quán)利的協(xié)議。在瀏覽網(wǎng)站時,它類似于Cookie。
- 在與服務(wù)器傳輸數(shù)據(jù)時,通過在地址后面添加唯一查詢串,讓服務(wù)器識別是否合法用戶,也可以避免使用Cookie。
?
?
轉(zhuǎn)自:https://zh.wikipedia.org/wiki/Cookie
?
總結(jié)
以上是生活随笔為你收集整理的Cookie 解说(分类、用途、缺陷、功能 ...)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c# 调用外部程序
- 下一篇: 360公布权威机构对扣扣保镖的测试报告