- 相關(guān)推薦
Web端cookie知識(shí)介紹
Cookie,有時(shí)也用其復(fù)數(shù)形式Cookies。類型為“小型文本文件”,是某些網(wǎng)站為了辨別用戶身份,進(jìn)行Session跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密),由用戶客戶端計(jì)算機(jī)暫時(shí)或永久保存的信息。下面是小編帶來的Web端cookie知識(shí)介紹,希望對(duì)你有幫助。
首先,我們要關(guān)注什么是cookie以及cookie是如何工作的。當(dāng)對(duì)cookie的定義以及工作原理、如何獲得存儲(chǔ)在硬盤上的cookie以及應(yīng)該怎樣對(duì)cookie進(jìn)行編輯、設(shè)置有一個(gè)比較清晰地認(rèn)識(shí)時(shí),那么cookie測(cè)試你就會(huì)游刃有余了。
什么是cookie?
cookie是web服務(wù)器存儲(chǔ)在客戶端硬盤上的一小段文本信息。這些信息存儲(chǔ)后用于Web瀏覽器去檢索來自相關(guān)計(jì)算機(jī)的信息。通常,cookie包含用于在不同網(wǎng)頁之間通信的個(gè)性化用戶數(shù)據(jù)和信息。
為什么使用cookie?
cookie標(biāo)識(shí)著計(jì)算機(jī)上用戶的身份,并用于跟蹤用戶瀏覽整個(gè)網(wǎng)站頁面的過程。我們知道Web瀏覽器和Web服務(wù)器之間的通信是無狀態(tài)的。
比如,你訪問域名http://www.example.com/1.html,Web瀏覽器將查詢來自example.com網(wǎng)絡(luò)服務(wù)器的1.html頁面,下次當(dāng)你輸入網(wǎng)址http://www.example.com/2.html的時(shí)候,瀏覽器就會(huì)發(fā)送新的請(qǐng)求發(fā)給example.com網(wǎng)絡(luò)服務(wù)器的2.html網(wǎng)頁,而整個(gè)過程中Web服務(wù)器根本不知道前一頁1.html已經(jīng)提供過相關(guān)服務(wù)了。
如果你想讓W(xué)eb服務(wù)器知道該用戶在前一段時(shí)間的通信歷史,就需要在Web瀏覽器和Web服務(wù)器的交互過程中維持用戶的狀態(tài)信息,而這正是cookie作用的地方。因此,cookie服務(wù)的目的是維持Web服務(wù)器和用戶間的交互。
cookie是怎樣工作的?
用來在網(wǎng)絡(luò)上進(jìn)行超文本信息傳輸?shù)腍TTP協(xié)議負(fù)責(zé)維護(hù)cookie。事實(shí)上HTTP協(xié)議有兩種類型,無狀態(tài)的HTTP協(xié)議和有狀態(tài)HTTP協(xié)議。無狀態(tài)HTTP協(xié)議不保留以前訪問過的網(wǎng)頁的歷史記錄。但是有狀態(tài)HTTP協(xié)議將會(huì)保留Web瀏覽器和Web服務(wù)器交互的一些歷史,有狀態(tài)HTTP協(xié)議將使用cookie來維持用戶交互。
當(dāng)你訪問一個(gè)使用cookie的網(wǎng)站或網(wǎng)頁時(shí),網(wǎng)頁中的一小段代碼(js、php和perl等腳本語言)將會(huì)把cookie寫入到用戶的機(jī)器中。
下面是用來寫cookie的一個(gè)例子,它可以放置任何HTML網(wǎng)頁內(nèi):
Set-Cookie:NAME=VALUE;expires=DATE;path=PATH;domain=DOMAIN_NAME;
譯者注:若您想模擬響應(yīng)Cookie,可使用三劍客接口測(cè)試平臺(tái)Xmock模塊。
當(dāng)用戶訪問同一頁面或同一域以后,這個(gè)cookie將會(huì)從磁盤中被讀取并用于識(shí)別該域的同一個(gè)用戶的第二次訪問。另外需要解釋的是cookie的過期時(shí)間設(shè)置,這個(gè)時(shí)間是由使用cookie的應(yīng)用決定的。
通常有兩種類型的cookie會(huì)被寫入用戶的計(jì)算機(jī)上。
1)會(huì)話cookie:從打開瀏覽器開始,這個(gè)cookie就是活躍的,直到我們關(guān)閉瀏覽器,這個(gè)cookie才會(huì)被刪除。有些時(shí)候應(yīng)用程序也會(huì)將該cookie的過期時(shí)間設(shè)置為20分鐘。
2)永久cookie:它是永久寫入用戶機(jī)器上的,有效期可以持續(xù)數(shù)月或數(shù)年。
cookie在哪里存儲(chǔ)?
任何網(wǎng)頁應(yīng)用程序?qū)懭氲腸ookie都會(huì)被保存在用戶本地硬盤的一個(gè)文本文件中。而且cookie的存儲(chǔ)路徑也與瀏覽器的設(shè)置有關(guān)。不同的瀏覽器會(huì)在不同的路徑下存儲(chǔ)cookie。例如IE瀏覽器存儲(chǔ)cookie的路徑為 “C:Users Default User AppDataRoamingMicrosoftWindowsCookies”,這里的“Default User”表示當(dāng)前登錄的用戶,比如 “Administrator”等。
通過瀏覽器導(dǎo)航選項(xiàng)可以很容易的發(fā)現(xiàn)cookie的存儲(chǔ)位置。在Mozilla Firefox瀏覽器的選項(xiàng)中,你甚至可以看到cookie的數(shù)據(jù)信息。具體操作為:打開Mozilla Firefox瀏覽器,點(diǎn)擊工具- >選項(xiàng)- >隱私,然后點(diǎn)擊“顯示cookie”按鈕。
cookie是怎么存儲(chǔ)的?
讓我們來舉一個(gè)例子,在Mozilla Firefox瀏覽器寫下rediff.com的cookie,當(dāng)在Mozilla Firefox瀏覽器打開網(wǎng)址rediff.com或登錄rediff賬戶時(shí),一個(gè)cookie就被寫入到你的硬盤上。要查看此cookie只需找到上面提到的路徑點(diǎn)擊“顯示Cookie”按鈕。點(diǎn)擊Rediff.com站點(diǎn)下這個(gè)cookie列表。你可以看到不同rediff域名寫入的不同cookie。
cookie的應(yīng)用場(chǎng)景
1)要實(shí)現(xiàn)購物車:你可以用來維持在線訂購系統(tǒng)的一些狀態(tài),能夠記住用戶想要買什么。假設(shè)用戶在他們的購物車增加了一些產(chǎn)品,但是由于某種原因,用戶不希望購買這些產(chǎn)品,并關(guān)閉了瀏覽器窗口,而當(dāng)下次相同的用戶訪問購買頁面,他是可以看到自己上一次訪問過程中在購物車添加的商品的。
2)個(gè)性化網(wǎng)站:用戶在瀏覽網(wǎng)頁時(shí),根據(jù)個(gè)人偏好設(shè)置一些網(wǎng)頁為不可見,或是將某些網(wǎng)站設(shè)置為不可訪問,cookie將會(huì)記住用戶的設(shè)置,下次用戶在瀏覽網(wǎng)頁的時(shí)候,cookie會(huì)根據(jù)用戶的設(shè)置屏蔽一些網(wǎng)頁。
3)用戶追蹤:要在特定的時(shí)間里,追蹤一些特殊的訪客。
4)營(yíng)銷:有些公司通過cookie在用戶的機(jī)器上展示廣告。cookie可以控制這些廣告,什么時(shí)候、以什么樣的形式被展示,同時(shí)也可以用來判斷什么廣告是用戶感興趣的,哪些關(guān)鍵字是用戶曾在網(wǎng)站上搜索過的,所有這些東西都會(huì)記錄在cookie中。
5)用戶會(huì)話:cookie可以使用用戶ID和密碼在特定的域追蹤用戶的會(huì)話。
cookie的缺點(diǎn)
1)即使cookie是維持用戶交互的好方法,但是如果用戶設(shè)置瀏覽器為:寫cookie警告或完全禁止cookie,那么包含cookie的網(wǎng)站將被完全禁用,用戶將不能執(zhí)行任何操作,從而造成網(wǎng)站流量的大量丟失。
2)cookie冗余:如果你在每一個(gè)網(wǎng)頁導(dǎo)航中寫太多cookie,用戶打開瀏覽器選項(xiàng):寫cookie警告,這足可以使用戶對(duì)你的網(wǎng)站敬而遠(yuǎn)之。
3)安全問題:用戶的個(gè)人信息被存儲(chǔ)在cookie中,如果有黑客劫持了用戶的cookie,則黑客可以訪問用戶的個(gè)人信息。甚至別的域也可以讀取一些損壞的cookie,從而帶來安全問題。
4)敏感信息:有些網(wǎng)站可能在cookie中存儲(chǔ)敏感信息,由于涉及隱私,這么做是禁止的。
Test Cases
1)在設(shè)計(jì)文檔中的一種隱私策略是確保個(gè)人信息或敏感數(shù)據(jù)都不要存儲(chǔ)在cookie中。
2)如果沒有別的選擇,必須要將敏感數(shù)據(jù)存保存在cookie的時(shí)候,那么敏感數(shù)據(jù)需要以一種加密的方式存儲(chǔ)到cookie中。
3)測(cè)試人員必須確保網(wǎng)站上沒有過度使用cookie。若瀏覽器頻繁的提示寫入cookie會(huì)給用戶造成很大的困擾,可能導(dǎo)致網(wǎng)站失去流量,并最終失去業(yè)務(wù)。
4)在瀏覽器的設(shè)置中禁用cookie:如果在網(wǎng)站中使用cookie,當(dāng)用戶禁用cookie時(shí),網(wǎng)站主要功能將不起作用,因此,應(yīng)當(dāng)確保沒有cookie時(shí)網(wǎng)站也是可用的。不應(yīng)該由于禁用cookie而讓頁面有任何崩潰(在執(zhí)行這個(gè)測(cè)試之前,請(qǐng)確保關(guān)閉所有瀏覽器,并且刪除所有之前寫的cookie)。
5)接受或者拒絕一些cookie:檢查網(wǎng)站的功能最好的辦法是不接受任何cookie?梢栽趙eb應(yīng)用程序?qū)?0個(gè)cookie,然后隨機(jī)接受一些cookie,假如接受5個(gè),拒絕5個(gè)。我們?cè)趫?zhí)行這個(gè)測(cè)試用例時(shí)可以通過設(shè)置瀏覽器選項(xiàng)為在寫入cookie時(shí)給出提示。在這個(gè)提示窗口中你可以接受或拒絕cookie。盡量訪問該網(wǎng)站的主要功能,看看頁面是否會(huì)因此崩潰或者出現(xiàn)數(shù)據(jù)損壞等現(xiàn)象。
6)刪除cookie:在測(cè)試環(huán)境下,允許網(wǎng)站寫入cookie,然后關(guān)閉所有瀏覽器并手動(dòng)從網(wǎng)站中刪除所有cookie;訪問網(wǎng)頁并且檢查頁面的行為。
7)破壞cookie:破壞一個(gè)cookie是容易的。前面我們已經(jīng)知道cookie存儲(chǔ)的位置?梢栽谟浭卤局惺謩(dòng)編輯cookie并改變一些模糊的參數(shù)的值。像改變cookie內(nèi)容,cookie的名稱或cookie的有效期限,然后查看網(wǎng)站的功能。在某些情況下?lián)p壞cookie能夠讀取其他域里面的數(shù)據(jù)。在網(wǎng)站中這是不應(yīng)該發(fā)生的。注意如果cookie是由rediff.com域?qū)懙,就不可以被其他的域訪問,比如yahoo.com,除非cookie被損壞或者有人試著攻擊cookie數(shù)據(jù)。
8)從web應(yīng)用程序頁面檢查cookie的刪除: 在測(cè)試一些“行動(dòng)跟蹤”門戶網(wǎng)站時(shí)經(jīng)常出現(xiàn)的場(chǎng)景:rediff.com域已經(jīng)向cookie中寫入數(shù)據(jù),但是被這個(gè)域下的另一個(gè)網(wǎng)頁刪除。在“行為追蹤”或“購買行為追蹤”的網(wǎng)頁測(cè)試中,當(dāng)用戶產(chǎn)生行為或是產(chǎn)生購買記錄的時(shí)候,需要將已經(jīng)寫入磁盤的cookie刪除,從而避免同一個(gè)cookie下產(chǎn)生多個(gè)行為或購買記錄。適當(dāng)?shù)膭h除cookie中的內(nèi)容,檢查是否能夠追蹤到你的行為或是購買頁面;另外檢查cookie中同一個(gè)用戶下不會(huì)存在非法的行為或購買記錄。
9)在多個(gè)瀏覽器測(cè)試cookie:檢查你的web應(yīng)用程序頁面是否能在不同的瀏覽器上寫入cookie,并且網(wǎng)站使用這些cookie可以正常工作,這是最重要的事情。你可以在常用的瀏覽器上測(cè)試你的web應(yīng)用程序,例如不同版本的Internet explorer、Mozilla Firefox、netscape、opera等。
10)如果你的web應(yīng)用程序使用cookie維護(hù)用戶的日志狀態(tài),并且你的應(yīng)用程序使用用戶名和密碼記錄,在許多情況下,你可以直接在瀏覽器地址欄看到登錄用戶ID參數(shù)。通過改變這個(gè)參數(shù),你可以看到其他用戶的相關(guān)信息。假定如果以前的用戶ID是100,修改為 101,然后按enter鍵。當(dāng)前用戶的訪問消息應(yīng)該顯示給用戶,但是用戶不應(yīng)該能看到其他用戶的賬戶信息。
在測(cè)試網(wǎng)站cookie的時(shí)候,這些都是一些常用的測(cè)試用例。你可以在這些測(cè)試場(chǎng)景中,通過執(zhí)行多個(gè)測(cè)試用例的組合來進(jìn)行web的cookie測(cè)試。如果你有不同的應(yīng)用場(chǎng)景,你可以在下面的評(píng)論中說說你的測(cè)試用例。
拓展閱讀
巧禁Cookie安全上網(wǎng)
一、IE選項(xiàng)法
1、啟動(dòng)IE;
2、在“工具”菜單上,單擊“Internet選項(xiàng)”,打開“Internet選項(xiàng)”對(duì)話框;
3、單擊“隱私”選項(xiàng)卡,將滑塊上移到更高的隱私級(jí)別。如果移動(dòng)到最頂端則是選擇“阻止所有的Cookie”,此時(shí)系統(tǒng)將阻止所有網(wǎng)站的 Cookie,而且網(wǎng)站不能讀取計(jì)算機(jī)上已有的Cookie;
4、單擊“確定”按鈕。
二、屬性設(shè)置法
當(dāng)然,上述的“IE選項(xiàng)法”筆者是在IE6中操作完成,如果你用的是IE5,那么請(qǐng)?jiān)凇癐nternet選項(xiàng)”對(duì)話框中“安全”選項(xiàng)卡上進(jìn)行設(shè)置,在 IE4中又有所不同。而下述的“屬性設(shè)置法”把保存Cookie的文件夾設(shè)置為“只讀”屬性,從而網(wǎng)站也就無法向其中寫入Cookie信息了。該法適用于各種版本的IE.
1、啟動(dòng)“Windows資源管理器”;
2、找到保存Cookie的文件夾。使用Windows版本不同,保存Cookie的文件夾會(huì)有所不同。比如,在Windows XP中,該文件夾為“C:Documents and tings用戶名Cookies”文件夾;在Windows 98中,是“C:WindowsCookies”文件夾;
3、右鍵單擊該文件夾,再單擊“屬性”,打開文件夾屬性對(duì)話框,選中“只讀”復(fù)選框,指定此文件夾中的文件為只讀屬性,只讀意味著文件不能被更改或意外刪除;
4、單擊“確定”按鈕。
三、注冊(cè)表法
“屬性設(shè)置法”實(shí)際上也有缺陷,就是網(wǎng)站照樣可以讀取計(jì)算機(jī)上已有的Cookie.而且有一些特殊Cookie不是以文本文件形式存在,而是保存在內(nèi)存中。這類Cookie通常是用戶在訪問某些特殊網(wǎng)站時(shí),由系統(tǒng)自動(dòng)在內(nèi)存中生成,一旦訪問者離開該網(wǎng)站又自動(dòng)將Cookie從內(nèi)存中刪除。上述兩法對(duì)這些 Cookie就無能為力了,而“注冊(cè)表法”可以彌補(bǔ)這些不足。
1、單擊“開始”菜單,再單擊“運(yùn)行”,然后在“打開”框中鍵入“regedit”,單擊“確定”按鈕,打開“注冊(cè)表編輯器”窗口;
2、依次展開 “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet tingsCacheSpecial PathsCookies”分支,右鍵單擊“Cookies”,然后單擊快捷菜單中的“刪除”命令,當(dāng)系統(tǒng)提示確認(rèn)刪除時(shí),請(qǐng)單擊“是”按鈕;
3、關(guān)閉“注冊(cè)表編輯器”窗口。
為了防止一些網(wǎng)站將Cookie文件放到你的計(jì)算機(jī)中,除了如上所述手動(dòng)進(jìn)行設(shè)置外,還有一個(gè)簡(jiǎn)便的方法是安裝軟件來保護(hù)你的Cookie文件。這類軟件比較多,你可以到各大軟件下載站點(diǎn)去下載。比如,Complete Cleanup Software Trail就是一款專門用來清除各種Cookie的軟件,它的功能十分強(qiáng)大,不但能讓已保存在計(jì)算機(jī)中的Cookie無處藏身,也能將用戶瀏覽網(wǎng)頁時(shí)保存在硬盤緩存中的垃圾信息清除。
【W(wǎng)eb端cookie知識(shí)介紹】相關(guān)文章:
web前端設(shè)計(jì)基礎(chǔ)知識(shí)11-12
web程序復(fù)習(xí)重點(diǎn)知識(shí)09-07
禁用Cookie功能的方法10-07
怎么禁用cookie功能08-31
如何禁用cookie功能11-03
php怎么刪除cookie08-12