Cookie 解說(分類、用途、缺陷、功能 ...)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

Cookie(復數形態Cookies),中文名稱為“小型文本文件”或“小甜餅,指某些網站為了辨別用戶身份而儲存在用戶本地終端(Client Side)上的數據(通常經過加密)。

分類

Cookie總是保存在客戶端中,按在客戶端中的存儲位置,可分為內存Cookie和硬盤Cookie。

內存Cookie由瀏覽器維護,保存在內存中,瀏覽器關閉后就消失了,其存在時間是短暫的。

硬盤Cookie保存在硬盤里,有一個過期時間,除非用戶手工清理或到了過期時間,硬盤Cookie不會被刪除,其存在時間是長期的。所以,按存在時間,可分為非持久Cookie和持久Cookie。

用途

因為HTTP協議是無狀態的,即服務器不知道用戶上一次做了什么,這嚴重阻礙了交互式Web應用程序的實現。

在典型的網上購物場景中,用戶瀏覽了幾個頁面,買了一盒餅干和兩瓶飲料。最后結帳時,由于HTTP的無狀態性,不通過額外的手段,服務器并不知道用戶到底買了什么,所以Cookie就是用來繞開HTTP的無狀態性的“額外手段”之一。服務器可以設置或讀取Cookies中包含信息,借此維護用戶跟服務器會話中的狀態。

在剛才的購物場景中,當用戶選購了第一項商品,服務器在向用戶發送網頁的同時,還發送了一段Cookie,記錄著那項商品的信息。當用戶訪問另一個頁面,瀏覽器會把Cookie發送給服務器,于是服務器知道他之前選購了什么。用戶繼續選購飲料,服務器就在原來那段Cookie里追加新的商品信息。結帳時,服務器讀取發送來的Cookie就行了。

Cookie另一個典型的應用是當登錄一個網站時,網站往往會請求用戶輸入用戶名和密碼,并且用戶可以勾選“下次自動登錄”。如果勾選了,那么下次訪問同一網站時,用戶會發現沒輸入用戶名和密碼就已經登錄了。這正是因為前一次登錄時,服務器發送了包含登錄憑據(用戶名加密碼的某種加密形式)的Cookie到用戶的硬盤上。第二次登錄時,如果該Cookie尚未到期,瀏覽器會發送該Cookie,服務器驗證憑據,于是不必輸入用戶名和密碼就讓用戶登錄了。

Cookie的缺陷

  1. Cookie會被附加在每個HTTP請求中,所以無形中增加了流量。
  2. 由于在HTTP請求中的Cookie是明文傳遞的,所以安全性成問題,除非用HTTPS。
  3. Cookie的大小限制在4KB左右,對于復雜的存儲需求來說是不夠用的。

使用Cookies

用戶可以改變瀏覽器的設置,以使用Cookies。同時一些瀏覽器自帶或安裝開發者工具包允許用戶查看、修改或刪除特定網站的Cookies信息。

識別功能

如果在一臺計算機中安裝多個瀏覽器,每個瀏覽器都會以獨立的空間存放Cookie。因為Cookie中不但可以確認用戶信息,還能包含計算機和瀏覽器的信息,所以一個用戶使用不同的瀏覽器登錄或者用不同的計算機登錄,都會得到不同的Cookie信息,另一方面,對于在同一臺計算機上使用同一瀏覽器的多用戶群,Cookie不會區分他們的身份,除非他們使用不同的用戶名登錄。

反對Cookies者

一些人反對Cookies在網絡中的應用,他們的理由如下:

識別不精確

  • 識別功能

識別有時候會發生錯誤

隱私、安全和廣告

Cookies在某種程度上說已經嚴重危及用戶的隱私和安全。其中的一種方法是:一些公司的高層人員為了某種目的(譬如市場調研)而訪問了從未去過的網站(通過搜索引擎查到的),而這些網站包含了一種叫做網頁臭蟲的圖片,該圖片透明,且只有一個像素大小(以便隱藏),它們的作用是將所有訪問過此頁面的計算機寫入Cookie。而后,電子商務網站將讀取這些Cookie信息,并尋找寫入這些Cookie的網站,隨即發送包含了針對這個網站的相關產品廣告的垃圾郵件給這些高級人員。

偷竊Cookies和腳本攻擊

雖然Cookies沒有中計算機病毒那么危險,但它仍包含了一些敏感消息:用戶名、計算機名、使用的瀏覽器和曾經訪問的網站。用戶不希望這些內容泄漏出去,尤其是當其中還包含有私人信息的時候。

這并非危言聳聽,跨站點腳本(Cross site scripting)可以達到此目的。在受到跨站點腳本攻擊時,Cookie盜賊和Cookie毒藥將竊取內容。一旦Cookie落入攻擊者手中,它將會重現其價值。

  • Cookie盜賊:搜集用戶Cookie并發給攻擊者的黑客,攻擊者將利用Cookie消息通過合法手段進入用戶帳戶。
  • Cookie投毒:一般認為,Cookie在儲存和傳回服務器期間沒有被修改過,而攻擊者會在Cookie送回服務器之前對其進行修改,達到自己的目的。例如,在一個購物網站的Cookie中包含了顧客應付的款項,攻擊者將該值改小,達到少付款的目的。

Cookies的替代品

鑒于Cookie的局限和反對者的聲音,有如下一些替代方法:

  • Brownie方案,是一項開放源代碼工程,由SourceForge發起。Brownie曾被用以共享在不同域中的接入,而Cookies則被構想成單一域中的接入。這項方案已經停止開發。
  • P3P,用以讓用戶獲得更多控制個人隱私權利的協議。在瀏覽網站時,它類似于Cookie。
  • 在與服務器傳輸數據時,通過在地址后面添加唯一查詢串,讓服務器識別是否合法用戶,也可以避免使用Cookie。

?

?

轉自:https://zh.wikipedia.org/wiki/Cookie

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449213.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449213.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449213.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

需求規格說明書1.0

1.引言 1.1目的 該文檔是關于我們組的記事本安卓APP和網頁版本的功能和性能的描述,重點描述了系統的功能需求,并作為系統設計的主要輸入。 本文檔的預期讀者包括:需求分析人員,設計人員,開發人員,項目管理人…

2020-3-30

題目一: JavaScript 將數組原有的順序打亂 function le(){ //創建一個函數作為sort()函數的參數。return 0.5-Math.random(); //返回一個數字可能大于零也可能小于零,這樣就可以實現隨機排序功能, } var arr[]; //聲明一個空數組。for(var i…

vuecli3+webpack4優化實踐(刪除console.log和配置dllPlugin)

本文主要介紹如何在vuecli3生成的項目中,打包輸出時刪除console.log和使用dllplugin,并記錄了配置過程中踩到的坑。 (本人水平有限~希望大家多多指出有誤的地方) 一、生產環境中刪除console.log 在開發代碼中寫的conso…

傷腎的九個惡習及解決辦法(圖)

近年來,很多人都在通過各種藥物保護腎臟,其實,在生活中形成的各種不良飲食和生活習慣在不停地傷害你的腎,只是你未曾注意到而已。所以要保護好你的腎臟,必須從改變不良飲食和生活習慣開始。 不愛喝水 大部分男人對喝…

CC-BY-NC-SA (創作共用許可協議)

創作共用許可協議 (英語:Creative Commons license,簡稱CC許可) 是一種公共版權許可協議,其允許分發受版權保護的作品。一個創作共用許可,用于一個作者想給他人分享、使用、甚至創作派生作品的權利。創作共…

2020-3-31

題目一&#xff1a; 評論敏感詞過濾代碼&#xff0c;很多時候需要對一些評論或者文章中的敏感詞進行過濾。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> </head> <script type"text/javascript"> window.o…

快速通讀《現代軟件工程——構建之法》

在快速通讀《現代軟件工程——構建之法》后&#xff0c;我有如下問題&#xff1a;Q1&#xff1a;第一章通過形象的例子告訴我們什么是軟件工程&#xff0c;介紹了軟件工程的各個階段&#xff0c;對軟件工程的概念及它的特性做了較為生動而詳細的介紹&#xff0c;那么為什么需要…

Java 對象的序列化和反序列化

一.序列化和反序列化的概念 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 把對象轉換為字節序列的過程稱為對象的序列化。 把字節序列恢復為對象的過程稱為對象的反序列化。 對象的序列…

不可重入鎖和可重入鎖

不可重入鎖也叫自旋鎖 指當一個方法調用了鎖之后&#xff0c;如持有本鎖的另一個方法也想執行&#xff0c;將會進入等待。那么想要使用這個方法必須先釋放鎖方可調用 public class Lock{private boolean isLocked false;public synchronized void lock() throws InterruptedEx…

家長必看 父母須知孩子社交圈九要點(組圖)

孩子在慢慢的長大&#xff0c;總要接觸外面的環境、接觸到更多的人&#xff0c;也需要自己的社交圈。那么孩子的社交圈父母要知道9點。 1、媽媽是第一個“好朋友” 孩子社交的第一步從出生就開始了。雖然小小的他躺在那里還不能說話&#xff0c;但是通過哭、目光接觸、笑等表…

2020-4-1

題目一 頁面加載圖片的時候&#xff0c;可能由于各種原因導致加載失敗。 為了頁面的人性化&#xff0c;在失敗的時候通常會使用一張給定的圖片替代。 <img src"logo.gif" onerror"javascript:this.srcdefault.gif" > //上面代碼本來要加載logo.gif…

NGINX 配置超時時間

一、啥時候用到 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 用來設置請求資源和服務器返回的時間&#xff0c;保證一個請求占用固定時間&#xff0c;超出后報504超時&#xff01;這…

kettle變量(param命名參數)

1、定義&#xff1a; 編輯-設置-命名參數 在當前界面下定義參數名稱和缺省值。 2、引用&#xff1a;原始數據 通過${var}引用變量 輸出 注&#xff1a;1、字符串在命名參數引用是需要添加單引號的&#xff0c;但位置參數是不需要進行轉譯&#xff1b; 2、引用變量時需要勾選替換…

Excel操作

區間范圍計算 方法一:用IF函數 方法二:構建一個輔助區域&#xff0c;用VLOOKUP函數 方法一:用IF函數 在F3中輸入:IF(E3>90%,5%,IF(E3>80%,4%,IF(E3>70%,3%,IF(E3>60%,2%,1%)))) 向下拖動,搞定。 示例&#xff1a; IF(BB2<0.5,"50及以下",IF(AND(BB2&g…

養心靈,才能美容顏,擁有好日子(圖)

“養心&#xff0c;就是在養顏”&#xff0c;說得多好啊。我們的臉是不會說謊的鏡子&#xff0c;即使再巧妙的掩飾&#xff0c;也會在臉上顯露出蛛絲馬跡。 一個尖刻的人&#xff0c;嘴角的紋路必然多而雜;一個工于心計的人&#xff0c;臉色必定是陰沉暗淡的;一個無知的人&…

2020-4-2

題目一 利用事件冒泡原理實現了獲取td單元格內容的功能。 <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <style type"text/css"> #table{ width:300px; height:100px; border:1px solid #ccc; border-c…

AGC008D K-th K

題意簡述&#xff1a;給你一個長度為\(N\)的整數序列\(x\)&#xff0c;請判斷是否存在一個滿足下列條件的整數序列\(a\)&#xff0c;如果存在&#xff0c;請構造一種方案。 1.\(a\)的長度為\(N^2\)并且滿足數字\(1,2,3,\cdots,N\)都各出現恰好\(N\)次 2.對于\(1<i<N\)&am…

(一)prometheus與grafana介紹與安裝

#&#xff08;1&#xff09;prometheus介紹 prometheus是一款 強大的監控系統和時序系統 采集數據&#xff1a; 在目標主機上安裝exporter, exporter組件會在目標處收集監控數據, 并暴露一個http接口供prometheus查詢, prometheus通過pull的方式來采集數據; 目前exporter已經采…

男人該知道的人生感悟(圖)

一、家庭篇&#xff1a; 1、孝敬自己的父母&#xff0c;男人往往沒有女人心細&#xff0c;所以你要經常提醒自己&#xff0c;常回家看看&#xff0c;不要等到“子欲養而親不待”。 2、遇到事情&#xff0c;多聽聽父母的意見&#xff0c;他們是這個世界上最愛你的人。 3、好好…

2020-4-3

題目一 如何讓IE8和IE8以下瀏覽器支持HTML5 <!–[if IE]> <script src"http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]–>上面這段代碼僅會在IE瀏覽器下運行&#xff0c;還有一點需要注意&#xff0c;在頁面中…