Cookies基礎(chǔ)
Cookies是web站點(diǎn)放置到你的硬盤上的程序。它們駐留在你的計(jì)算機(jī)上收集關(guān)于你在因特網(wǎng)上所做的一切事情的信息,并且web站點(diǎn)可以在任何時(shí)候讀取到Cookies收集到的所有信息。
在新聞中這樣定義是公平的,問題是,這個(gè)定義中沒有一個(gè)是正確的,Cookies不是程序,它不能象程序一樣能做很多事,因此它們自己不能收集任何信息,也不能收集關(guān)你你的機(jī)器的任何信息。
這里有一個(gè)關(guān)于Cookies的比較恰當(dāng)?shù)亩x:
一個(gè)Cookies是web服務(wù)器存放在用戶硬盤的一段文本,Cookies允許一個(gè)wen站點(diǎn)在用戶的機(jī)器存放一些文本的信息,并可以在以后重新獲取它。這個(gè)基于文本的信息存儲(chǔ)著一些“鍵-值”對。
舉個(gè)例子,一個(gè)web站點(diǎn)要為每一個(gè)來訪者建立一個(gè)唯一的ID號(hào)碼,并且將這個(gè)號(hào)碼存儲(chǔ)到每個(gè)來訪者的機(jī)器的Cookies中。
如果你用微軟的IE瀏覽一個(gè)web,你能夠在你的硬盤看到你機(jī)器上的所有的Cookies,通常它們會(huì)駐留在目錄c:\windows\cookies(win98),或者C:\Documents and Settings\user name\Cookies(win2000,win xp) 下面,當(dāng)我看我的機(jī)器的這個(gè)目錄的時(shí)候,我發(fā)現(xiàn)有165個(gè)文件。每個(gè)都是一個(gè)包含了“鍵-值”對的文本文件,每個(gè)站點(diǎn)都有一個(gè)Cookies文件。
你能夠看到這個(gè)目錄中的每一個(gè)文件都是一個(gè)簡單的,普通的文本文件,你能夠通過文件名看到是哪個(gè)web站點(diǎn)在你的機(jī)器放置了Cookies(這個(gè)信息也保存在了文件內(nèi)容中),你可以打開每個(gè)文件查看其內(nèi)容。
例如,我已經(jīng)訪問過了站點(diǎn) goto.com,這個(gè)站點(diǎn)就會(huì)在我的機(jī)器上放置一個(gè)Cookie,這個(gè)Cookie文件的名字叫g(shù)oto.com,包含下面的信息:
UserID A9A3BECE0563982D www.goto.com/站點(diǎn) goto.com已經(jīng)在我的機(jī)器上放置了一個(gè)單個(gè)的“鍵-值”對,鍵的名字是 UserID,鍵的值是 A9A3BECE0563982D,我第一次訪問goto.com站點(diǎn),站點(diǎn)分配了一個(gè)唯一的ID給我并把這個(gè)ID存放到了我的機(jī)器。
大多數(shù)的站點(diǎn)僅僅只在你的機(jī)器存放一個(gè)用戶ID的Cookie,但這不是限制,一個(gè)站點(diǎn)可以在你的機(jī)器存放許多的“鍵-值”對,只要它喜歡。
Cookies文件只包含這些簡單的“鍵-值”對的文本,、它不是程序,因此它不能“做”任何事情,一個(gè)web站點(diǎn)只能重新取得它自己放置到你硬盤的信息,它不能從其它的Cookies文件中取得信息,也不能看到你的機(jī)器的任何別的東西
Cookies數(shù)據(jù)如何移動(dòng)
正如你在以上章節(jié)中看到的,Cookie數(shù)據(jù)是簡單的web站點(diǎn)放置在你的硬盤上的“鍵-值”對的文本,所有的Cookies文件都是如此。Web站點(diǎn)保存這些數(shù)據(jù),然后又可以取回來,一個(gè)web站點(diǎn)只能取回它自己存放在你機(jī)器的數(shù)據(jù),不能看到其它的Cookie,也不能看到你機(jī)器上的其它任何東西。
Cookie數(shù)據(jù)按照下面的方式移動(dòng):
1 如果你在你的瀏覽器中輸入了web的URL,瀏覽器會(huì)象這個(gè)URL的web站點(diǎn)發(fā)送請求,比如,你在瀏覽器中輸入一下URL:http://www.verizon.com,瀏覽器會(huì)將請求發(fā)送到Verizon的web服務(wù)器,請求它的首頁。
2 當(dāng)瀏覽器發(fā)送請求時(shí),它會(huì)查看你機(jī)器上跟域名www.verizon.com有關(guān)的Cookie文件,如果存在同www.verizon.com有關(guān)的Cookie,瀏覽器就會(huì)把相關(guān)的Cookie“鍵-值”對數(shù)據(jù)跟請求一起發(fā)送到服務(wù)器,如果不存在同www.verizon.com有關(guān)的Cookie,則瀏覽器不發(fā)送Cookie到服務(wù)器。
3 Verizon的web服務(wù)器收到Cookies數(shù)據(jù)和一個(gè)頁面的Http請求,如果收到了Cookie“鍵-值”對,Verizon的web服務(wù)器將能夠使用它們。
4 如果沒有收到Cookie“鍵-值”對,Verizon的web服務(wù)器就能知道你以前沒有訪問過這個(gè)站點(diǎn),服務(wù)器建立一個(gè)新的用戶ID,并在把你所請求的頁面發(fā)回到你的瀏覽器時(shí),把用戶ID“鍵-值”對發(fā)送到你的機(jī)器,你的硬盤就會(huì)駐留了對應(yīng)這個(gè)站點(diǎn)的“鍵-值”對Cookie。
5 web服務(wù)器可以在你訪問站點(diǎn)時(shí),隨時(shí)的更改“鍵-值”對或者加入一個(gè)新的“鍵-值”對。
同“鍵-值”對發(fā)送到客戶端的還有同這個(gè)“鍵-值”對相關(guān)的一些其它信息,其中之一就是Cookie有效期,另一個(gè)就是路徑(為了在同一個(gè)站點(diǎn)的不通部分關(guān)聯(lián)不同的Cookie)。
6 你能夠控制這個(gè)過程,你可以在你的瀏覽器中設(shè)置當(dāng)web站點(diǎn)向你的機(jī)器發(fā)送Cookie時(shí)你是接受還是拒絕