什么是 Cookie?
Cookie 是您訪問過的網站創建的文件,用于存儲瀏覽信息,例如您的網站偏好設置或個人資料信息。共有兩種類型的 Cookie:第一方 Cookie 是由地址欄中列出的網站域設置的 Cookie,而第三方 Cookie 來自在網頁上嵌入廣告或圖片等項的其他域來源。
Cookie可以用來提升用戶體驗,比如網站可以使用Cookie來記錄用戶的登錄狀態,用戶只要登錄一次就可以不用登錄了,購物網站通過Cookie來保存購物車中的商品等。同時很多的網站分析都是依靠Cookie來完成的。
?
以網站統計為例,目前主要的統計方式是 日志記錄法和頁面標記法 。一般日志記錄法細化到IP,而頁面標記法細化到Unique??Visitor。UV并不僅僅是一個指標,更重要的是的它可以把一個用戶多次訪問的事件聯系在一起。包括用戶第一次從哪里來,第二次從哪里來,在網站上的瀏覽軌跡等都可以查詢出來。
?
Cookie是如何工作的?
一般來說,Cookie通過HTTP Headers從服務器端返回到瀏覽器上。首先,服務器端在響應中利用Set-Cookie header來創建一個Cookie ,然后,瀏覽器在它的請求中通過Cookie header包含這個已經創建的Cookie,并且反它返回至服務器,從而完成瀏覽器的論證。
?
比如,我們訪問一個網站,來到了登錄的頁面。頁面需要我們輸入用戶名和密碼,同時下面有一個選項,叫“保留我的登錄狀態”,如果輸入了用戶名,密 碼。為了下次在來這個網站,不用再重新輸入,我們激活了保留狀態的選項。最后點了提交。這時,我們的瀏覽器就會和網站服務器之間通過HTTP協議進行連 接,提交剛才輸入的內容和選擇。服務器收到以后,會判斷這個用戶名密碼是否正確,因為我們需要保留狀態,就需要設置Cookie來記錄狀態。那服務器會在 返回的HTTP數據包的頭部包含SetCookie這個指令來告訴瀏覽器要保存的Cookie。瀏覽器收到以后會把這個Cookie加密存儲到電腦上。這 個Cookie記錄的一般是用戶在這個網站的唯一的ID。之后,只要每次訪問這個網站(只要還是這個域名),我們的瀏覽器在請求這個網站服務器數據的時 候,都會在HTTP請求數據包的頭部增加一條包含Cookie數據的信息,比如這里會告訴服務器:“我是你的用戶,我的ID是9527。”那服務器收到這 個信息,就不會再提示登錄,而我們就已經是登錄的狀態了。
?
第一方Cookie和第三方Cookie
Cookie通常可以分為兩類,第一方Cookie和第三方Cookie,第一方Cookie和第三方Cookie,都是網站在客戶端上存放的一小 塊數據。他們都由某個域存放,只能被這個域訪問。他們的區別其實并不是技術 上的區別,而是使用方式上的區別。比如,訪問www.a.com這個網站,這個網站設置了一個Cookie,這個Cookie也只能被www.a.com 這個域下的網頁讀取,這就是第一方Cookie。如果還是訪問www.a.com這個網站,網頁里有用到www.b.com網站的一張圖片,瀏覽器在 www.b.com請求圖片的時候,www.b.com設置了一個Cookie,那這個Cookie只能被www.b.com這個域訪問,反而不能被 www.a.com這個域訪問,因為對我們來說,我們實際是在訪問www.a.com這個網站被設置了一個www.b.com這個域下的Cookie,所 以叫第三方Cookie。
?
第一方Cookie的優勢和應用
第一方Cookie的最大優勢是接受率高。一般主流的瀏覽器的都會有隱私的設置,可以讓用戶設置是否接受Cookie,接受哪些Cookie。除了 完全不接受Cookie這個設置以外,其他情況下,第一方Cookie都是會被用戶接受的(不接受的話,是沒辦法把那小塊數據保存下來的)。所以,如果沒 有特殊要求,使用第一方Cookie會比第三方Cookie,我們通過分析工具得到的數據會更準確。
?
第三方Cookie的優勢和應用
第三方Cookie的接受率不如第一方Cookie(不過主流的瀏覽器默認的設置下也接受帶P3P協議的第三方Cookie,我的經驗是接受率能達 到90%,甚至95%以上),但在某些特定情況下可以實現第一方Cookie無法實現的功能。比如,當我們有多個域名的網站需要跟蹤,我們希望了解到用戶 點擊某個廣告到達域名A下的網頁,然后可能瀏覽了不論那個域名下的頁面,最后在域名B下的網頁完成注冊的情況。廣告可以在域名A下的網頁被跟蹤到,而注冊 可以在域名B下的網頁跟蹤到。如果我們使用第一方Cookie,會為域名A建立一個Cookie,為域名B再建立一個Cookie,他們可以關聯各自域名 下網頁上的行為,但是無法關聯起來。而使用第三方Cookie,那么無論多少個域,都只有一個Cookie,一個屬于第三方域的Cookie,網站下所有 域都能共享這個Cookie,那么所有的行為都能被關聯起來分析。
?
結論:對于通過腳本型的網站分析工具來獲取數據
- Cookie是必須的,離開Cookie我們什么也分析不了。
- 第一方Cookie接受率高,更準確,沒有特殊需要就用他。
- 第三方Cookie可以跨域跟蹤,特別需求可以應用。
?
P3P解決第三方cookie存取的問題
P3P(Platform for Privacy Preferences)是由萬維網協會研制,它為Web用戶提供了對自己公開信息的更多的控制。支持P3P的Web站點可以為瀏覽者聲明他們的隱私策 略。支持P3P的瀏覽器則可以將Web站點的策略與用戶的隱私偏好進行對比,并為用戶提出不匹配的警告。因此,用戶可以被通知有關Web隱私的處理方式。 更詳細的說明請看 http://www.w3.org/P3P/ 的介紹。
以上幾乎都是廢話,我自己的理解就是通過P3P 可以使 用戶自己指定瀏覽器的隱私策略。而這里只用到了關于cookie的一些設置。
我們打開ie瀏覽器–>工具–>internet選項–>隱私分頁 用戶可以通過手工 “導入” 用戶隱私策略文件
?
PHP使用P3P來跨域跟蹤的示例
首先修改Windows文件,將要測試的兩個域名進行指向。
- 127.0.0.1??????? www.a.com
- 127.0.0.1??????? www.b.com
第一步:創建 a_setcookie.php 文件,內容如下:
<?php //header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
?
第二部:創建 a_getcookie.php 文件,內容如下:
<?php var_dump($_COOKIE);
?
第三部:創建 b_setcookie.php 文件,內容如下:
<script src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>
?
三個文件創建完畢后,我們通過瀏覽器依次訪問:
- http://www.b.com/b_setcookie.php
- http://www.a.com/a_getcookie.php
我們會發現,在訪問b.com域的時候,我們并沒有在a.com域設置上cookie值。
然后我們修改一下a_setcookie.php文件,去掉注釋符號,a_setcookie.php即為:
<?php header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); setcookie("test", $_GET['id'], time()+3600, "/",
?
再次通過瀏覽器依次訪問:
- http://www.b.com/b_setcookie.php
- http://www.a.com/a_getcookie.php
這次,你會發現在訪問b.com域的時候,我們設置了a.com域的cookie值。
?
其他Cookie相關知識
- cookies是暫存在電腦里的.txt格式的文本文件。
- 一臺電腦的所有用戶,用記事本都可以看到暫存的Cookie。
- 只有訪問的站點能夠建立獲取first-party cookies。
- 訪問的站點可以允許其他域名瀏覽cookie信息。
- 電腦內的信息不會因為cookies受任何影響,你可以隨時手動刪除。
- cookies文件大小限制為4k。
- 各瀏覽器對cookie的限制不同,IE8和Firefox為50個,Opera為30個。
參考資料
- HTTP cookie -Wikipedia
- How Internet Cookies Work -howstuffworks
- Cookie FAQ -cookiecentral
引用地址: http://www.biaodianfu.com/first-party-cookie-and-third-party-cookie.html
?
對于剛剛學習 分析網站 的網站分析師來說,第一方cookie與第三方cookie相信是非常基礎的知識,熟悉它們以后對于日后的學習非常有好處。
?
第一方cookie指的是訪客當前訪問的網站給訪客的瀏覽器設置的cookie, 會被存儲在訪客的計算機上。假設一個訪客正在訪問京東的網站:www.360buy.com, 那么在訪客的計算機上就會出現以下的臨時文件:
第三方cookie指的是當前訪問的網站中會加載另外第三方的代碼,例如促銷廣告,那么第三方也會在訪客的計算機上添加cookie,這種就是第三 方cookie。例如訪問新浪微博,京東的廣告出現了,那么京東有可能就會在訪客的計算器上添加這個cookie文件, 京東就屬于第三方。一些咨詢機構,例如Hitwise,Comscore的數據來源一般是這種。
?
第一方跟第三方cookie比較起來是比較安全的,因為它不會監測網站的其他訪問行為,理論上來講,對于信息的泄露也就少很多。
?
說明:Google Analytics使用的是第一方cookie,這也就是谷歌經常說自己不作惡的原因。
以下是Google Analytics中常用的cookie:
Cookie名稱 | 持續時間 | 目的 |
_utma | 24個月 | 存儲域名,訪客ID,訪問時間戳,訪問次數 |
_utmb | 30分鐘 | 會話ID,用來鑒別會話是否過期 |
_utmc | 30分鐘 | 用來兼容urchin.js; 異步跟蹤代碼已不再使用 |
_utmv | 24個月 | 存儲自定義變量 |
_utmz | 6個月 | 存儲活動變量,例如媒介,關鍵詞 |
?
文章來源于 深圳網站分析
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
