1. 程式人生 > >捍衛Cookie——沒有Cookie,我們什麼都沒有了(第一方cookie和第三方cookie詳解)

捍衛Cookie——沒有Cookie,我們什麼都沒有了(第一方cookie和第三方cookie詳解)

開始正文前,先說點兒題外話。Google Analytics最近推出了API介面功能,開發人員可以將Google Analytics的資料和功能整合在自己的應用中。詳細內容請見這裡

  話歸正題。當微軟還沒有推出IE8的時候,老實說,我就不喜歡這個瀏覽器。這不是來自於我對微軟的偏見(這個公司確實非常偉大),而是來自於我對Cookie這個美好事物的無比忠誠。但是,IE8的出現,讓我們的美好蒙上一層厚厚的陰影。不過,當一切還沒有變得非常嚴重之前,讓我們先來了解一下Cookie是什麼,它對於我們的意義,以及我們為什麼需要捍衛它。

  • 什麼是Cookie以及Cookie的作用

  Cookie是在你瀏覽網頁的時候,網站伺服器放在客戶端(Client End,就是你的電腦)裡面的一個小小的TXT檔案。這個檔案裡面儲存了一些與你訪問的這個網站有關的一些東西,當你下一次訪問這個網站的時候,Cookie就會記住你上次訪問時候的一些狀態或者設定,讓伺服器針對性的傳送頁面的相關內容。Cookie裡面包含的資訊並沒有一個標準的格式,各個網站伺服器的規範都可能不同,但一般會包括:所訪問網站的域名(domain name),訪問開始的時間,訪問者的IP地址等客戶端資訊,訪問者關於這個網站的一些設定等等。比如,你設定的諸如Google一個頁面要顯示幾條搜尋結果之類的資訊,即使你不登入你的Google賬號,你下次訪問時也能夠儲存下來,這就是上次你訪問時把相關資訊放入了Cookie的效果。如果是線上購物網站,還記錄了一些你的購物車,儲物架以及你的賬戶名等資訊。另外有些網站則會通過Cookie把你的登入賬號和密碼記下來,這樣你下次開啟瀏覽器就會自動登入。

  當然,如果你在系統資料夾中開啟Cookie的TXT檔案,你並不會看到這些資訊而只能看到一串亂七八糟的字元,因為為了安全起見,Cookie的內容一般都是加密的,只有對應的伺服器才能讀懂。另外,由於Cookie只是TXT檔案,而不是程式,更不是病毒,不能自己執行,不會對作業系統和其他任何計算機程式產生影響,也不會通過網際網路傳播,因此它對網際網路安全實際上不構成威脅。

[版權歸作者Sidney Song所有,歡迎轉載,但請事先告知作者並註明出處]

  對於網站分析而言,Cookie的作用在於幫助嵌入程式碼類的網站分析工具記錄網站的訪問(Visit)和訪問者(Unique Visitor)的資訊,沒有Cookie就無法實現相關監測。而通過伺服器端Log來進行網站分析的軟體則不需要Cookie也能實現相關分析,因此Cookie只對嵌入程式碼類工具有效。那些你耳熟能詳的工具——Google Analytics、Omniture、HBX、WebTrends(嵌入程式碼版)等等,都需要在網站訪問者的電腦上放置Cookie才能實現監測。

  • Cookie的數量和時效

  Cookie的數量是指一個網站可以在客戶端放置Cookie的個數。一個網站並不是只能放置一個Cookie在客戶端,而是根據需要,會放置多個不同的Cookie。對網站分析工具而言,幫助監測Visit的Cookie和幫助監測Unique Visitor的Cookie就不能是一個,而應該分開設定。對每一個網站(域)而言,不同瀏覽器能夠支援的最多Cookie數是不同的。IE7和FireFox3.0支援每個網站50個Cookie,而Opera則支援30個。無論是30還是50,基本都夠用了。

  Cookie的時效(expiration)是另一個非常重要的概念,也是Cookie的重要屬性之一。任何Cookie都是有時效的,有些Cookie的有效時間很短,有些Cookie則在瀏覽器關閉的同時自動失效,而有些則是號稱”永久Cookie”。其實,Cookie的時效是在伺服器端人為設定的,可以設定為1秒,也可以設定10年,也可以設定在瀏覽器關閉的同時失效,完全根據不同情況的需要。永久Cookie就是指那些時效很長的Cookie,但不是真的永久。暫時性的Cookie是指隨瀏覽器關閉就失效的Cookie。

  Cookie的時效性對於網站分析監測意義重大。Visit的監測依賴於Cookie的時效。例如,Google Analytics對Visit的Cookie設定了兩個時效,一個是30分鐘,另一個是瀏覽器關閉時。這就意味著,如果Visit Cookie在30分鐘內沒有更新,這個Cookie就失效了——這就是為什麼我們說Visit這個度量衡量的是間隔不超過30分鐘的頁面瀏覽過程,如果兩次頁面瀏覽之間的時間超過了30分鐘,那麼Visit計數會被增加1。另外,如果你開啟一個網站,看了一會兒就關掉瀏覽器,那麼當你再次開啟瀏覽器重新開這個網站的時候,即使兩次瀏覽沒有超過30分鐘,也會被計算為一個新的Visit,原因就是Visit Cookie瀏覽器關閉時效結束的設定起的作用。

[版權歸作者Sidney Song所有,歡迎轉載,但請事先告知作者並註明出處]

  Unique Visitor也依賴於Cookie的時效。如果這個Cookie的時間設定為2天失效,那麼你今明兩天都訪問同一個網站,Unique Visitor只會記錄為從0增加到1;而如果你第三天又來,那麼Unique Visitor就會再增加計數一次,共計2次。除了Visit和Unique Visitor外,Return visitor、Frequency等等度量當然也依賴於Cookie的時效。

  • 1st party cookie和3rd party cookie

   第一方Cookie和第三方Cookie其實是一個非常簡單的概念,但是我在百度上隨便搜尋了一些解釋,好像都不是很清楚,也不是很準確。實際上,所謂第一方和第三方的說法,是用來確定Cookie的歸屬的,這個歸屬是指Cookie中記錄的域(domain)。舉個例子:如果你訪問我的這個網站www.chinawebanalytics.cn的時候,我的網站在你的電腦上設定了一個Cookie,裡面的記錄的域名也是www.chinawebanalytics.cn,那麼這個Cookie就是第一方的,歸你訪問的網站www.chinawebanalytics.cn所有。而如果你訪問網站www.chinawebanalytics.cn時,在你的計算機中設定的Cookie的域名是www.omd.com,那麼這個Cookie就是第三方Cookie,歸www.omd.com所有。

  對於網站分析而言,這個概念是非常重要的。例如,你會問Google Analytics使用的Cookie是1st party的,還是3rd party的。答案是第一方的。首先,Google Analytics在每個被監測網站上的Cookie都是由我們熟悉的監測javascript程式碼所建立的(是的,javascript也可以建立Cookie,知道這點就夠了,不需要深挖),其次,這個被建立的cookie的域不是analytics.google.com,而是被監測網站自己的域。因此,雖然這個Cookie實際上是在Google Analytics的幫助下建立的,而且也為Google Analytics所用(反而不能被“被監測網站”直接利用),它仍然是第一方Cookie。

  所以,第一方Cookie並不一定需要由某個網站自己的伺服器給自己建立,別的網站也能為它建立;而且,第一方Cookie也不一定是能由某個網站自己讀取的,它完全可能由第三方讀取。第一方和第三方的唯一區別只是:Cookie中的域名是否和被訪問網站的域一樣,是就是第一方,否就是第三方。

  這真的是一個容易混淆的概念,希望看了我上面的內容您弄清楚了。

[版權歸作者Sidney Song所有,歡迎轉載,但請事先告知作者並註明出處]

  網站分析和所有的網際網路廣告的監測,都會更喜歡第三方Cookie。原因是,第三方Cookie可以用來監測跨網站的訪問者行為。例如,DoubleClick使用的就是第三方Cookie,這個公司會為你開啟的所有載有DoubleClick廣告的頁面建立同一個(僅一個)域為DoubleClick的Cookie,這樣,只要你打開了這些網頁,無論它們是否屬於同一網站,你的瀏覽廣告的行為DoubleClick都能知道。但是第一方Cookie就不行了,因為第一方Cookie得用被監測網站的域,這樣多個網站就會有多個不同的Cookie,跨網站瀏覽行為就無法監測了。

  對於大多數瀏覽器而言,第三方Cookie是被預設關閉的,原因在於人們在討論Cookie涉及的隱私問題時,傾向於認為第三方Cookie極大的獲取了人們的行為隱私,並由此產生了對第三方Cookie普遍的不信任和誤解。但事實上,所有的Cookie都不會洩露任何關於瀏覽者個人的隱私資訊,它捕捉的僅僅只是瀏覽行為本身,第三方Cookie也不例外。而如果所有人都願意接受第三方cookie,那麼網站分析能夠給出的分析和優化方案會更多。但可惜,因為第三方Cookie被普遍禁用,因此利用第三方Cookie的監測工具並不多,只有監測網路廣告的工具才會堅持使用第三方Cookie。

  • 沒有Cookie,還能監測到什麼?

  由於第三方Cookie不受歡迎,很少有網站分析工具會採用它。而如果完全沒有Cookie,那麼網站分析工具幾乎無法工作。但實際上,如果沒有Cookie,還是能監測到一點兒東西的。這個東西是PV。因為PV的監測只要引發javascript監測程式碼就可以,跟cookie無關。例如,在Omniture中,如果某個客戶端禁用cookie,Omniture還是會記錄這個客戶端貢獻的PV,但完全無法記錄Visit,這就會使這個工具監測的PV/Visit會比實際值略大。說點兒題外話:在沒有Cookie的時候,Omniture會退而求其次用訪問者客戶端IP地址來辨別不同的Visitor(Unique Visitor),這樣禁用cookie後unique visitor其實還能監測,但由於visit不能監測了,因此有可能在Omniture中出現Unique Visitor大於Visit的情況。

  沒了Cookie,除了PV,其他的度量基本上就獲得不了資料了,所以我會認為沒有Cookie,我們什麼都沒了。或者Visitor和Visitor所在的地理位置還能通過IP地址獲得,但眾所周知的原因,這個資料是非常不精確的,我們需要Cookie。

  那麼,你會問,多少客戶端會禁用Cookie呢?我沒有精確的數字,但我認為第一方Cookie應該會有大概80%的使用者正在使用,只有20%左右會禁用它。而第三方Cookie,由於是預設不開啟的,因此我估計頂多只有20%的人在使用它。

[版權歸作者Sidney Song所有,歡迎轉載,但請事先告知作者並註明出處]

  隨著IE8的出現,肯定會進一步降低Cookie的使用率,這也將進一步降低網站分析資料的樣本數量。我不認為這會降低網站分析工具在描述定性問題時的準確性(定性問題例如Bounce Rate,例如Time on site,以及Returning visitor和New visitor的比例),但在描述定量問題時會出現誤差,或者更確切地說會偏小。如果隨著Cookie禁用比例的增加,超過50%的人都禁用的話,那麼網站分析的原有方法論就會有麻煩了。不過,我肯定不相信Cookie禁用比例會有劇烈的上升,我很樂觀——Cookie帶給人們的方便遠遠要比一些不足一提的隱私問題要多的多要大的多。禁用Cookie更多隻是心理的慰藉(其實大多數時候一定只是心理上的感覺,而沒有什麼實際的對安全和隱私的幫助),但帶來的不方便則會直接影響你的瀏覽體驗。

  因此,無論是為了我們的專業本身,還是為了讓瀏覽網頁的使用者有更好的體驗,或是為了讓網站本身能夠創造更多的便利化應用,我們都有足夠的理由支援Cookie,反對微軟的IE8色情瀏覽模式,捍衛我們應該捍衛的——這代表著智慧和進步。Eric Peterson寫給總統奧巴馬的那封公開信值得看看,這代表著我們所有網站分析從業者的最強烈呼聲。【全文完】

相關推薦

捍衛Cookie——沒有Cookie我們什麼沒有一方cookie第三方cookie

開始正文前,先說點兒題外話。Google Analytics最近推出了API介面功能,開發人員可以將Google Analytics的資料和功能整合在自己的應用中。詳細內容請見這裡。   話歸正題。當微軟還沒有推出IE8的時候,老實說,我就不喜歡這個瀏覽器。這不是來自於我

OneExerciseOne創建一個類它包含一個int域一個char域他們沒有初始化,驗證Java執行默認初始化

system println 驗證 初始化 容易 沒有 調用 消息 說明 在學習《Thinking In java》時,遇到Chapter 2的Exercise 1,問題是這麽說的“/**創建一個類,它包含一個int域,一個char域,他們都沒有初始化,將他們的值打印出來,

紅樓夢裡初試雲雨情的三對男女最後沒有在一起

    紅樓夢是世情小說,其中寫到的最多的一種情就是男女之情,除了我們所知的寶黛愛情,曹公還寫到了不少小人物之間美好而又令人惋惜的愛情。今天我們來說說紅樓夢裡偷試雲雨情的三對男女。 第一對:寶玉和襲人 寶玉襲人初試雲雨情,發生在第六回,但並無大篇幅的文字

python 多程序實際上沒有執行sleep

思考並行運算的程式碼塊中,是計算密集型的。因為計算的時間複雜度比較高,跑每一個例子會耗費幾天的時間。因此不存在所謂活少人多的問題。 1.是否是程序優先順序的問題 答案為否,因為個程序優先順序一致,而每個程序所需的記憶體量和計算量基本一致,所需執行時間也接近的。 2.是否是程式碼層面的問題 答案為否,因為可

python 多進程實際上沒有運行sleep

進程優先級 什麽 fun linux fault poi 卡死 ted 基本 思考並行運算的代碼塊中,是計算密集型的。因為計算的時間復雜度比較高,跑每一個例子會耗費幾天的時間。因此不存在所謂活少人多的問題。 1.是否是進程優先級的問題 答案為否,因為個進程優先級一致,而每個

沒學歷沒經驗沒外語沒技能沒有靠啥找工作?

之前說過很多如何發揮自己所長去求職,但還有一些人是沒學歷、沒經驗、沒外語,沒技能,什麼都沒有的。這樣的人同樣需要工作。 那麼他們如何找工作,換句話說,公司在注重一些硬體之外,還會青睞些什麼? 1 性格開朗、抗壓能力強 任何工作都有壓力,如果無法承受壓力,積極面對挫折,

如何回答“你沒有經驗我們為什麼錄用你”

關於面試,面試官也是人,人的想法可能千奇百怪,雖然其中有一定的規律可以循,但是不乏意料之外的問題。老師的工作是為學生開啟一扇門,讓學生自己走進去,不能使勁把分們拉進來,因為走進來必須是學生自己的事情。講得再多,沒有體悟也是按圖索驥。面試的套路可以說上“兵無常勢,

我們過時怎樣獲得新生

轉行 層次 經驗 跟著 服務 框架 效率 正在 手機   今天,一個同事說起現在的實習生基礎太差,while,if,return和break這些混著用就分不清return和break怎麽用了,但是他們還有自己的優點,很明確自己的發展方向是什麽,而我們才畢業的時候,軟件是怎麽

在追尋夢想的路上我們一樣

src 孤獨 這一 宋體 過去 ont nbsp 部分 種子 在追尋夢想的路上,我們都一樣 在追尋夢想的路上,我們都一樣,一樣迷茫,一樣孤獨,一樣焦慮,一樣困惑。可是,好在那些經歷過得曲折都成為醞釀夢想的能量和養分,最終我們都找到了屬於自己的夢想,並且還在為之繼續堅持努力。

友盟反饋中發現的這樣的問題對下文沒有考證最終對2.3版本通過繞過Parserable serializable方式解決的留此只做備忘

OVERVIEW Sending a private serializable subclass as an Intent extra can crash many receivers. STEPS TO REPRODUCE 1. Send a private seri

在愚人節裏我們需要變得更加智能--如何使用真格智能單

盈利 hang shu test fse 出現 時間 準備 timespan <br> 在愚人節裏,我們都需要變得更加智能--如何使用真格智能單 <br> 覺得普通委托太“愚蠢”?快來試試真格量化的“智能單”! 身處AI技術席卷一切的時代,似乎我們

Appium+python自動化二十一- 讓猴子按你指令大鬧手機我們成為耍猴高手

簡介    一年一度的暑假如期而至,每年必不可少的,便是《西遊記》這部經典電視連續劇的播出,作為一名90後,對於這部經典劇的情誼,就是觀看已成為一種習慣。依然深刻的記得,小時候媽媽為了催促我睡覺,而關掉我的《西遊記》,那種哀求不成繼而絕望的感覺,至今記憶猶新。長大後只要得空在家,哪怕手裡做著其他的事

這是我見過最詳細的十大排序演算法介紹沒有之一十大排序演算法

> **作者:** C you again,從事軟體開發 努力在IT搬磚路上的技術小白 > **公眾號:** 【**[C you again](https://cyouagain.cn/)**】,分享計算機類畢業設計原始碼、IT技術文章、遊戲原始碼、網頁模板、程式人生等等。公眾號回覆 【**粉絲

從瀏覽器地址欄輸入網址到網頁徹底打開中間發生什麽?

流氓軟件 打開 軟件 獲取 大量 上一個 負責 一段 動態腳本 從瀏覽器地址欄輸入網址,到網頁徹底打開,中間都發生了什麽? 這是一道經典面試題,以前我以為只有我喜歡出這道題,後來在微博上發現其他技術大牛也出這道題。 這道題其實測試的不是具體特定的技術,而是對整個上網

今天Java Web老師布置的作業突然想起來差點忘記!!!!

一個 ref .com ces 解釋 分解 rational http 編程 問題一:什麽是RUP?(參考位置:百度百科以及各大網址) 答:RUP全稱是Rational Unified Process,也就是統一軟件開發過程,統一軟件開發過程是一個面向對象且基於網絡的程序開

為了留住你我們真的費好多心思

沒有 小夥伴 意義 就是 生活費 讓我 在一起 是否 有意 距離你進入大學,也快接近一個學期了。不禁感慨時光荏苒,軍訓期間曾經稚嫩的臉龐似乎已被歲月抹殺殆盡。 你已或多或少了解或者上手了部門的工作,時間不回頭的溜走,想問問當初進入部門的初衷到如今是否依舊那麽清晰?是否對部門

隨著雲之家的廣泛應用我們研究出雲之家打卡定位的破解方法

jpg 領導 應用中心 現在 廣泛 需要 中國 方法 組織 現在雲之家考勤打卡軟件用的十分廣泛,各大公司都在用這個app,雲之家是中國企業移動互聯網領域的領導品牌。它通過移動辦公與團隊協作APP應用,打破部門壁壘與地域限制,凝聚企業共識,激發員工創新,提高協作效率。雲之家產

全網最詳細的Hadoop HA集群啟動後兩個namenode是standby的解決辦法圖文

config bubuko 測試 IE oop per ali col 學到老   不多說,直接上幹貨! 解決辦法   因為,如下,我的Hadoop HA集群。

全網最詳細的Hadoop HA集群啟動後兩個namenode是active的解決辦法圖文

oop 精神 問題 python shell enter 深度 In 智能 不多說,直接上幹貨!     這個問題,跟     是大同小異。    歡迎大家,加入我的微信公眾號:大數據躺過的坑