學(xué)習(xí)什么是Cookie?

字號(hào):

什么是Cookie?
    Cookie在英文中是小甜品的意思,而這個(gè)詞我們總能在瀏覽器中看到,食品怎么會(huì)跟瀏覽器扯上關(guān)系呢?在你瀏覽以前登陸過的網(wǎng)站時(shí)可能會(huì)在網(wǎng)頁中出現(xiàn):你好XX,感覺很親切,就好像是吃了一個(gè)小甜品一樣。這其實(shí)是通過訪問你主機(jī)里邊的一個(gè)文件來實(shí)現(xiàn)的,因此這個(gè)文件也就被稱為了Cookie。想全面了解Cookie嗎?看看下文吧!
    一.了解Cookie 適用對(duì)象:初級(jí)讀者
    Cookie是當(dāng)你瀏覽某網(wǎng)站時(shí),網(wǎng)站存儲(chǔ)在你機(jī)器上的一個(gè)小文本文件,它記錄了你的用戶ID,密碼、瀏覽過的網(wǎng)頁、停留的時(shí)間等信息,當(dāng)你再次來到該網(wǎng)站時(shí),網(wǎng)站通過讀取Cookie,得知你的相關(guān)信息,就可以做出相應(yīng)的動(dòng)作,如在頁面顯示歡迎你的標(biāo)語,或者讓你不用輸入ID、密碼就直接登錄等等。你可以在IE的“工具/Internet選項(xiàng)”的“常規(guī)”選項(xiàng)卡中,選擇“設(shè)置/查看文件”,查看所有保存到你電腦里的Cookie。這些文件通常是以u(píng)ser@domain格式命名的,user是你的本地用戶名,domain是所訪問的網(wǎng)站的域名。如果你使用NetsCape瀏覽器,則存放在“C:\PROGRAMFILES\NETSCAPE\USERS\”里面,與IE不同的是,NETSCAPE是使用一個(gè)Cookie 文件記錄所有網(wǎng)站的Cookies。
    為了保證上網(wǎng)安全我們需要對(duì)Cookie進(jìn)行適當(dāng)設(shè)置。打開“工具/Internet選項(xiàng)”中的“隱私”選項(xiàng)卡(注意該設(shè)置只在IE6.0中存在,其他版本IE可以在“工具/Internet選項(xiàng)”的“安全”標(biāo)簽中單擊“自定義級(jí)別”按鈕,進(jìn)行簡單調(diào)整),調(diào)整Cookie的安全級(jí)別。通常情況,可以將滑塊調(diào)整到“中高”或者“高”的位置。多數(shù)的論壇站點(diǎn)需要使用Cookie信息,如果你從來不去這些地方,可以將安全級(jí)調(diào)到“阻止所有Cookies”。如果只是為了禁止個(gè)別網(wǎng)站的Cookie,可以單擊“編輯”按鈕,將要屏蔽的網(wǎng)站添加到列表中。在“高級(jí)”按鈕選項(xiàng)中,你可以對(duì)第一方Cookie和第三方的Cookie進(jìn)行設(shè)置,第一方Cookie是你正在瀏覽的網(wǎng)站的Cookie,第三方Cookie非正在瀏覽的網(wǎng)站發(fā)給你的Cookie,通常要對(duì)第三方Cookie選擇“拒絕”,如圖1。你如果需要保存Cookie,可以使用IE的“導(dǎo)入導(dǎo)出”功能,打開“文件/導(dǎo)入導(dǎo)出”,按提示操作即可。
    Cookie中的內(nèi)容大多數(shù)經(jīng)過了加密處理,因此在我們看來只是一些毫無意義的字母數(shù)字組合,只有服務(wù)器的CGI處理程序才知道它們真正的含義。通過一些軟件我們可以查看到更多的內(nèi)容,使用Cookie Pal軟件查看到的Cookie信息,如圖2所示。它為我們提供了Server、Expires、Name、value等選項(xiàng)的內(nèi)容。其中,Server是存儲(chǔ)Cookie的網(wǎng)站,Expires記錄了Cookie的時(shí)間和生命期,Name和value字段則是具體的數(shù)據(jù)(本報(bào)第10期第42版對(duì)該軟件有詳細(xì)介紹)。
    二、Cookie的傳遞流程 適用對(duì)象:中級(jí)讀者
    當(dāng)在瀏覽器地址欄中鍵入了一個(gè)Web站點(diǎn)的URL,瀏覽器會(huì)向該Web站點(diǎn)發(fā)送一個(gè)讀取網(wǎng)頁的請求,并將結(jié)果在顯示器上顯示。這時(shí)該網(wǎng)頁在你的電腦上尋找Amazon網(wǎng)站設(shè)置的Cookie文件,如果找到,瀏覽器會(huì)把Cookie文件中的數(shù)據(jù)連同前面輸入的URL一同發(fā)送到Amazon服務(wù)器。服務(wù)器收到Cookie數(shù)據(jù),就會(huì)在他的數(shù)據(jù)庫中檢索你的ID,你的購物記錄、個(gè)人喜好等信息,并記錄下新的內(nèi)容,增加到數(shù)據(jù)庫和Cookie文件中去。如果沒有檢測到Cookie或者你的Cookie信息與數(shù)據(jù)庫中的信息不符合,則說明你是第一次瀏覽該網(wǎng)站,服務(wù)器的CGI程序?qū)槟銊?chuàng)建新的ID信息,并保存到數(shù)據(jù)庫中。
    Cookie是利用了網(wǎng)頁代碼中的HTTP頭信息進(jìn)行傳遞的,瀏覽器的每一次網(wǎng)頁請求,都可以伴隨Cookie傳遞,例如,瀏覽器的打開或刷新網(wǎng)頁操作。服務(wù)器將Cookie添加到網(wǎng)頁的HTTP頭信息中,伴隨網(wǎng)頁數(shù)據(jù)傳回到你的瀏覽器,瀏覽器會(huì)根據(jù)你電腦中的Cookie設(shè)置選擇是否保存這些數(shù)據(jù)。如果瀏覽器不允許Cookie保存,則關(guān)掉瀏覽器后,這些數(shù)據(jù)就消失。Cookie在電腦上保存的時(shí)間是不一樣的,這些都是由服務(wù)器的設(shè)置不同決定得。Cookie有一個(gè)Expires(有效期)屬性,這個(gè)屬性決定了Cookie的保存時(shí)間,服務(wù)器可以通過設(shè)定Expires字段的數(shù)值,來改變Cookie的保存時(shí)間。如果不設(shè)置該屬性,那么Cookie只在瀏覽網(wǎng)頁期間有效,關(guān)閉瀏覽器,這些Cookie自動(dòng)消失,絕大多數(shù)網(wǎng)站屬于這種情況。通常情況下,Cookie包含Server、Expires、Name、value這幾個(gè)字段,其中對(duì)服務(wù)器有用的只是Name和value字段,Expires等字段的內(nèi)容僅僅是為了告訴瀏覽器如何處理這些Cookies。