下面我們正式開始Cookie的詳細(xì)介紹:
Cookie是網(wǎng)站存放在客戶端的一小段數(shù)據(jù)。一般的,網(wǎng)站為了提升用戶體驗(yàn),在客戶的客戶端中保存用戶的歷史信息,以備用戶再次訪問時(shí)網(wǎng)站能提供更方便,更有針對(duì)性的服務(wù)。比如,網(wǎng)站可以記住你的登錄狀態(tài),只要登錄一次下次訪問就不用在登錄;購物網(wǎng)能記住你瀏覽過的產(chǎn)品,保留你購物車中的物品。這 些都有Cookie的功勞。
Cookie對(duì)網(wǎng)站分析又有什么作用?
網(wǎng)站分析是以數(shù)據(jù)為基礎(chǔ)的,而數(shù)據(jù)的采集需要借助網(wǎng)站分析工具。主流的網(wǎng)站分析工具主要分兩種類型:日志型和頁面腳本型。這兩種類型工具的一個(gè)區(qū)別就在于對(duì)Unique??Visitor的區(qū)分很判斷。當(dāng)網(wǎng)站有很多次訪問的記錄的時(shí)候,如何判斷那些訪問來至同一個(gè)用戶。日志型的分析工具,一般通過訪問的來源IP地址進(jìn)行判 斷,通過相同IP地址的訪問被認(rèn)為來至同一個(gè)用戶。頁面腳本型的分析工具,就需要根據(jù)Cookie的記錄來判斷不同的訪問是否來至不同的用戶。這類的工具會(huì)在Cookie中存放用來標(biāo)識(shí)唯一用戶的ID,每個(gè)瀏覽器得到的ID都是不同的。用戶訪問時(shí)檢查Cookie中的ID,ID相同的訪問被認(rèn)為來至同一個(gè)用戶,否則,則是不同用戶的訪問。
Unique Visitor的判斷對(duì)于網(wǎng)站分析來說非常重要,以致于分析工具在Cookie中存儲(chǔ)的其他信息都顯得不那么重要了。Unique??Visitor并不僅僅是一個(gè)Metric,更重要的是,Unique??Visitor把跨越多次訪問的事件聯(lián)系在一起。想象一下,一個(gè)訪客通過一個(gè)廣告來到網(wǎng)站,在這次訪問離開前沒有進(jìn)行任何購買,但有把網(wǎng)站的網(wǎng)址加入到書簽。過了幾天,這個(gè)訪客通過點(diǎn)擊書簽,又訪問了我們的網(wǎng)站,最后購買了一些商品。這時(shí),如果沒有Unique??Visitor來關(guān)聯(lián),那點(diǎn)擊廣告和購買商品的行為是沒有任何關(guān)聯(lián)的,我們無法知道訪客點(diǎn)擊的廣告為最后的購買所做的貢獻(xiàn)。可見,Cookie對(duì)網(wǎng)站分析是多么重要,通過Cookie,才能將多次訪問中的事件串聯(lián)起來。
Cookie的技術(shù)細(xì)節(jié)
Cookie是如何工作的?
比如,我們?cè)L問一個(gè)網(wǎng)站,來到了登錄的頁面。頁面需要我們輸入用戶名和密碼,同時(shí)下面有一個(gè)選項(xiàng),叫“保留我的登錄狀態(tài)”,如果輸入了用戶名,密 碼。為了下次在來這個(gè)網(wǎng)站,不用再重新輸入,我們激活了保留狀態(tài)的選項(xiàng)。最后點(diǎn)了提交。這時(shí),我們的瀏覽器就會(huì)和網(wǎng)站服務(wù)器之間通過HTTP協(xié)議進(jìn)行鏈 接,提交剛才輸入的內(nèi)容和選擇。服務(wù)器收到以后,會(huì)判斷這個(gè)用戶名密碼是否正確,因?yàn)槲覀冃枰A魻顟B(tài),就需要設(shè)置Cookie來記錄狀態(tài)。那服務(wù)器會(huì)在返回的HTTP數(shù)據(jù)包的頭部包含SetCookie這個(gè)指令來告訴瀏覽器要保存的Cookie。瀏覽器收到以后會(huì)把這個(gè)Cookie加密存儲(chǔ)到電腦上。這 個(gè)Cookie記錄的一般是用戶在這個(gè)網(wǎng)站的唯一的ID。之后,只要每次訪問這個(gè)網(wǎng)站(只要還是這個(gè)域名),我們的瀏覽器在請(qǐng)求這個(gè)網(wǎng)站服務(wù)器數(shù)據(jù)的時(shí)候,都會(huì)在HTTP請(qǐng)求數(shù)據(jù)包的頭部增加一條包含Cookie數(shù)據(jù)的信息,比如這里會(huì)告訴服務(wù)器:“我是你的用戶,我的ID是9527。”那服務(wù)器收到這個(gè)信息,就不會(huì)再提示登錄,而我們就已經(jīng)是登錄的狀態(tài)了。
Cookie的生命周期
Cookie的生命周期有兩種,一種是整個(gè)會(huì)話的,一種是永久的。也就是說,一種是臨時(shí)性的Cookie,用戶關(guān)掉瀏覽器,這個(gè)Cookie也就失效了。一種是永久的Cookie,可以持續(xù)存在的。一般網(wǎng)站分析工具 判斷Unique Visitor使用的是后者。
第一方和第三方Cookie的區(qū)別
第一方Cookie和第三方Cookie,都是網(wǎng)站在客戶端上存放的一小塊數(shù)據(jù)。他們都由某個(gè)域存放,只能被這個(gè)域訪問。他們的區(qū)別其實(shí)并不是技術(shù)上的區(qū)別,而是使用方式上的區(qū)別。比如,訪問www.a.com這個(gè)網(wǎng)站,這個(gè)網(wǎng)站設(shè)置了一個(gè)Cookie,這個(gè)Cookie也只能被www.a.com 這個(gè)域下的網(wǎng)頁讀取,這就是第一方Cookie。如果還是訪問www.a.com這個(gè)網(wǎng)站,網(wǎng)頁里有用到www.b.com網(wǎng)站的一張圖片,瀏覽器在向 www.b.com請(qǐng)求圖片的時(shí)候,www.b.com設(shè)置了一個(gè)Cookie,那這個(gè)Cookie只能被www.b.com這個(gè)域訪問,反而不能被 www.a.com這個(gè)域訪問,因?yàn)閷?duì)我們來說,我們實(shí)際是在訪問www.a.com這個(gè)網(wǎng)站被設(shè)置了一個(gè)www.b.com這個(gè)域下的Cookie,所以叫第三方Cookie。
上面這么多看完還沒有繞暈的請(qǐng)繼續(xù)。
第一方Cookie的優(yōu)勢(shì)和應(yīng)用
第一方Cookie的最大優(yōu)勢(shì)是接受率高。一般主流的瀏覽器的都會(huì)有隱私的設(shè)置,可以讓用戶設(shè)置是否接受Cookie,接受哪些Cookie。除了 完全不接受Cookie這個(gè)設(shè)置以外,其他情況下,第一方Cookie都是會(huì)被用戶接受的(不接受的話,是沒辦法把那小塊數(shù)據(jù)保存下來的)。所以,如果沒有特殊要求,使用第一方Cookie會(huì)比第三方Cookie,我們通過分析工具得到的數(shù)據(jù)會(huì)更準(zhǔn)確。
第三方Cookie的優(yōu)勢(shì)和應(yīng)用
第三方Cookie的接受率不如第一方Cookie(不過主流的瀏覽器默認(rèn)的設(shè)置下也接受帶P3P協(xié)議的第三方Cookie,我的經(jīng)驗(yàn)是接受率能達(dá)到90%,甚至95%以上),但在某些特定情況下可以實(shí)現(xiàn)第一方Cookie無法實(shí)現(xiàn)的功能。比如,當(dāng)我們有多個(gè)域名的網(wǎng)站需要跟蹤,我們希望了解到用戶 點(diǎn)擊某個(gè)廣告到達(dá)域名A下的網(wǎng)頁,然后可能瀏覽了不論那個(gè)域名下的頁面,最后在域名B下的網(wǎng)頁完成注冊(cè)的情況。廣告可以在域名A下的網(wǎng)頁被跟蹤到,而注冊(cè) 可以在域名B下的網(wǎng)頁跟蹤到。如果我們使用第一方Cookie,會(huì)為域名A建立一個(gè)Cookie,為域名B再建立一個(gè)Cookie,他們可以關(guān)聯(lián)各自域名 下網(wǎng)頁上的行為,但是無法關(guān)聯(lián)起來。而使用第三方Cookie,那么無論多少個(gè)域,都只有一個(gè)Cookie,一個(gè)屬于第三方域的Cookie,網(wǎng)站下所有域都能共享這個(gè)Cookie,那么所有的行為都能被關(guān)聯(lián)起來分析。
結(jié)論
對(duì)于通過腳本型的網(wǎng)站分析工具來獲取數(shù)據(jù)
Cookie是必須的,離開Cookie我們什么也分析不了。
第一方Cookie接受率高,更準(zhǔn)確,沒有特殊需要就用他。
第三方Cookie可以跨域跟蹤,特別需求可以應(yīng)用。
以下是作者信息,歡迎大家去訪問原文。
作者:beanmoon
出處:http://www.cnblogs.com/beanmoon/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
該文章也同時(shí)發(fā)布在我的獨(dú)立博客中-豆月博客。