話歸正題。當微軟還沒有推出IE8的時候,老實說,我就不喜歡這個浏覽器。這不是來自於我對微軟的偏見(這個公司確實非常偉大),而是來自於我對Cookie這個美好事物的無比忠誠。但是,IE8的出現,讓我們的美好蒙上一層厚厚的陰影。不過,當一切還沒有變得非常嚴重之前,讓我們先來了解一下Cookie是什麼,它對於我們的意義,以及我們為什麼需要捍衛它。
什麼是Cookie以及Cookie的作用
Cookie是在你浏覽網頁的時候,網站服務器放在客戶端(Client End,就是你的電腦)裡面的一個小小的TXT文件。這個文件裡面存儲了一些與你訪問的這個網站有關的一些東西,當你下一次訪問這個網站的時候,Cookie就會記住你上次訪問時候的一些狀態或者設置,讓服務器針對性的發送頁面的相關內容。Cookie裡面包含的信息並沒有一個標准的格式,各個網站服務器的規范都可能不同,但一般會包括:所訪問網站的域名(domain name),訪問開始的時間,訪問者的IP地址等客戶端信息,訪問者關於這個網站的一些設置等等。比如,你設置的諸如Google一個頁面要顯示幾條搜索結果之類的信息,即使你不登錄你的Google賬號,你下次訪問時也能夠保存下來,這就是上次你訪問時把相關信息放入了Cookie的效果。如果是在線購物網站,還記錄了一些你的購物車,儲物架以及你的賬戶名等信息。另外有些網站則會通過Cookie把你的登錄賬號和密碼記下來,這樣你下次打開浏覽器就會自動登錄。
當然,如果你在系統文件夾中打開Cookie的TXT文件,你並不會看到這些信息而只能看到一串亂七八糟的字符,因為為了安全起見,Cookie的內容一般都是加密的,只有對應的服務器才能讀懂。另外,由於Cookie只是TXT文件,而不是程序,更不是病毒,不能自己運行,不會對操作系統和其他任何計算機程序產生影響,也不會通過互聯網傳播,因此它對互聯網安全實際上不構成威脅。
對於網站分析而言,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的時效性對於網站分析監測意義重大。Visit的監測依賴於Cookie的時效。例如,Google Analytics對Visit的Cookie設置了兩個時效,一個是30分鐘,另一個是浏覽器關閉時。這就意味著,如果Visit Cookie在30分鐘內沒有更新,這個Cookie就失效了——這就是為什麼我們說Visit這個度量衡量的是間隔不超過30分鐘的頁面浏覽過程,如果兩次頁面浏覽之間的時間超過了30分鐘,那麼Visit計數會被增加1。另外,如果你打開一個網站,看了一會兒就關掉浏覽器,那麼當你再次打開浏覽器重新開這個網站的時候,即使兩次浏覽沒有超過30分鐘,也會被計算為一個新的Visit,原因就是Visit Cookie浏覽器關閉時效結束的設置起的作用。
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