1. Cookie會(huì)話跟蹤技術(shù)介紹
會(huì)話跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個(gè)會(huì)話。常用的會(huì)話跟蹤技術(shù)是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份,可以在客戶端保存臨時(shí)數(shù)據(jù).
Cookie 技術(shù)誕生以來,它就成了廣大網(wǎng)絡(luò)用戶和 Web 開發(fā)人員爭(zhēng)論的一個(gè)焦點(diǎn)。有一些網(wǎng)絡(luò)用戶,甚至包括一些資深的 Web 專家也對(duì)它的產(chǎn)生和推廣感到不滿,這并不是因?yàn)?Cookie 技術(shù)的功能太弱或其他技術(shù)性能上的原因,而是因?yàn)?Cookie 的使用對(duì)網(wǎng)絡(luò)用戶的隱私構(gòu)成了危害。因?yàn)?Cookie 是由 Web 服務(wù)器保存在用戶瀏覽器上的小文本文件,它包含有關(guān)用戶的信息.
Cookie 技術(shù)產(chǎn)生源于 HTTP 協(xié)議在互聯(lián)網(wǎng)上的急速發(fā)展。隨著互聯(lián)網(wǎng)的深層次發(fā)展,帶寬等限制不存在了,人們需要更復(fù)雜的互聯(lián)網(wǎng)交互活動(dòng),就必須同服務(wù)器保持活動(dòng)狀態(tài)。于是,在瀏覽器發(fā)展初期,為了適應(yīng)用戶的需求,技術(shù)上推出了各種保持 Web 瀏覽狀態(tài)的手段,其中就包括了 Cookie 技術(shù)。1993 年,網(wǎng)景公司雇員 Lou Montulli 為了讓用戶在訪問某網(wǎng)站時(shí),進(jìn)一步提高訪問速度,同時(shí)也為了進(jìn)一步實(shí)現(xiàn)個(gè)人化網(wǎng)絡(luò),發(fā)明了今天廣泛使用的 Cookie.
Cookie 是在 HTTP 協(xié)議下,服務(wù)器或腳本可以維護(hù)客戶工作站上信息的一種方式。Cookie 是由 Web 服務(wù)器保存在用戶瀏覽器(客戶端)上的小文本文件,它可以包含有關(guān)用戶的信息。無論何時(shí)用戶鏈接到服務(wù)器,Web 站點(diǎn)都可以訪問 Cookie 信息
目前有些 Cookie 是臨時(shí)的,有些則是持續(xù)的。臨時(shí)的 Cookie 只在瀏覽器上保存一段規(guī)定的時(shí)間,一旦超過規(guī)定的時(shí)間,該 Cookie 就會(huì)被系統(tǒng)清除
持續(xù)的 Cookie 則保存在用戶的 Cookie 文件中,下一次用戶返回時(shí),仍然可以對(duì)它進(jìn)行調(diào)用。在 Cookie 文件中保存 Cookie,有些用戶擔(dān)心 Cookie 中的用戶信息被一些別有用心的人竊取,而造成一定的損害。其實(shí),網(wǎng)站以外的用戶無法跨過網(wǎng)站來獲得 Cookie 信息。如果因?yàn)檫@種擔(dān)心而屏蔽 Cookie,肯定會(huì)因此拒絕訪問許多站點(diǎn)頁(yè)面。因?yàn)椋?dāng)今有許多 Web 站點(diǎn)開發(fā)人員使用 Cookie 技術(shù),例如 Session 對(duì)象的使用就離不開 Cookie 的支持.
會(huì)話跟蹤技術(shù)是用于維持客戶端和服務(wù)器端通信信息的技術(shù), 而Cookie是其中的一種會(huì)話跟蹤技術(shù);
Cookie是在http協(xié)議下,服務(wù)器或腳本可以維護(hù)客戶端信息的一種方式,
Cookie保存在客戶端,通常保存在瀏覽器的Cookie臨時(shí)文件夾中,可以手動(dòng)刪除,
當(dāng)用戶訪問服務(wù)器時(shí),服務(wù)器可以設(shè)置和訪問cookie的信息
Cookie利用了網(wǎng)頁(yè)代碼中的HTTP頭信息進(jìn)行傳遞的,瀏覽器的每一次網(wǎng)頁(yè)請(qǐng)求,都可以伴隨Cookie傳遞
2. Cookie的機(jī)制
在程序中,會(huì)話跟蹤是很重要的事情。理論上,一個(gè)用戶的所有請(qǐng)求操作都應(yīng)該屬于同一個(gè)會(huì)話,而另一個(gè)用戶的所有請(qǐng)求操作則應(yīng)該屬于另一個(gè)會(huì)話,二者不能混淆。例如,用戶A在超市購(gòu)買的任何商品都應(yīng)該放在A的購(gòu)物車內(nèi),不論是用戶A什么時(shí)間購(gòu)買的,這都是屬于同一個(gè)會(huì)話的,不能放入用戶B或用戶C的購(gòu)物車內(nèi),這不屬于同一個(gè)會(huì)話。
而Web應(yīng)用程序是使用HTTP協(xié)議傳輸數(shù)據(jù)的。HTTP協(xié)議是無狀態(tài)的協(xié)議。一旦數(shù)據(jù)交換完畢,客戶端與服務(wù)器端的連接就會(huì)關(guān)閉,再次交換數(shù)據(jù)需要建立新的連接。這就意味著服務(wù)器無法從連接上跟蹤會(huì)話。即用戶A購(gòu)買了一件商品放入購(gòu)物車內(nèi),當(dāng)再次購(gòu)買商品時(shí)服務(wù)器已經(jīng)無法判斷該購(gòu)買行為是屬于用戶A的會(huì)話還是用戶B的會(huì)話了。要跟蹤該會(huì)話,必須引入一種機(jī)制。
由于HTTP是一種無狀態(tài)的協(xié)議,服務(wù)器單從網(wǎng)絡(luò)連接上無從知道客戶身份。怎么辦呢?就給客戶端們頒發(fā)一個(gè)通行證吧,每人一個(gè),無論誰訪問都必須攜帶自己通行證。這樣服務(wù)器就能從通行證上確認(rèn)客戶身份了。這就是Cookie的工作原理。
Cookie實(shí)際上是一小段的文本信息??蛻舳苏?qǐng)求服務(wù)器,如果服務(wù)器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個(gè)Cookie??蛻舳藶g覽器會(huì)把Cookie保存起來。當(dāng)瀏覽器再請(qǐng)求該網(wǎng)站時(shí),瀏覽器把請(qǐng)求的網(wǎng)址連同該Cookie一同提交給服務(wù)器。服務(wù)器檢查該Cookie,以此來辨認(rèn)用戶狀態(tài)。服務(wù)器還可以根據(jù)需要修改Cookie的內(nèi)容。
Cookie在你瀏覽網(wǎng)頁(yè)的時(shí)候,網(wǎng)站服務(wù)器放在客戶端(Client End,就是你的電腦)里面的一個(gè)小小的TXT文件。這個(gè)文件里面存儲(chǔ)了一些與你訪問的這個(gè)網(wǎng)站有關(guān)的一些東西,當(dāng)你下一次訪問這個(gè)網(wǎng)站的時(shí)候,Cookie就會(huì)記住你上次訪問時(shí)候的一些狀態(tài)或者設(shè)置,讓服務(wù)器針對(duì)性的發(fā)送頁(yè)面的相關(guān)內(nèi)容。Cookie里面包含的信息并沒有一個(gè)標(biāo)準(zhǔn)的格式,各個(gè)網(wǎng)站服務(wù)器的規(guī)范都可能不同,但一般會(huì)包括:所訪問網(wǎng)站的域名(domain name),訪問開始的時(shí)間,訪問者的IP地址等客戶端信息,訪問者關(guān)于這個(gè)網(wǎng)站的一些設(shè)置等等。比如,你設(shè)置的諸如Google一個(gè)頁(yè)面要顯示幾條搜索結(jié)果之類的信息,即使你不登錄你的Google賬號(hào),你下次訪問時(shí)也能夠保存下來,這就是上次你訪問時(shí)把相關(guān)信息放入了Cookie的效果。如果是在線購(gòu)物網(wǎng)站,還記錄了一些你的購(gòu)物車,儲(chǔ)物架以及你的賬戶名等信息。另外有些網(wǎng)站則會(huì)通過Cookie把你的登錄賬號(hào)和密碼記下來,這樣你下次打開瀏覽器就會(huì)自動(dòng)登錄。
當(dāng)然,如果你在系統(tǒng)文件夾中打開Cookie的TXT文件,你并不會(huì)看到這些信息而只能看到一串亂七八糟的字符,因?yàn)闉榱税踩鹨姡珻ookie的內(nèi)容一般都是加密的,只有對(duì)應(yīng)的服務(wù)器才能讀懂。另外,由于Cookie只是TXT文件,而不是程序,更不是病毒,不能自己運(yùn)行,不會(huì)對(duì)操作系統(tǒng)和其他任何計(jì)算機(jī)程序產(chǎn)生影響,也不會(huì)通過互聯(lián)網(wǎng)傳播,因此它對(duì)互聯(lián)網(wǎng)安全實(shí)際上不構(gòu)成威脅。
對(duì)于網(wǎng)站分析而言,Cookie的作用在于幫助嵌入代碼類的網(wǎng)站分析工具記錄網(wǎng)站的訪問(Visit)和訪問者(Unique Visitor)的信息,沒有Cookie就無法實(shí)現(xiàn)相關(guān)監(jiān)測(cè)。而通過服務(wù)器端Log來進(jìn)行網(wǎng)站分析的軟件則不需要Cookie也能實(shí)現(xiàn)相關(guān)分析,因此 Cookie只對(duì)嵌入代碼類工具有效。那些你耳熟能詳?shù)墓ぞ摺狦oogle Analytics、Omniture、HBX、WebTrends(嵌入代碼版)等等,都需要在網(wǎng)站訪問者的電腦上放置Cookie才能實(shí)現(xiàn)監(jiān)測(cè)。
3.Cookie如何使用
在JavaScript語言中,我們使用document.cookie: 獲取/設(shè)置cookie
格式為: name=value;[expires=過期時(shí)間];[path=訪問路徑];[domain=域名];[secure]
如: document.cookie = "username=zhangsan";
4.Cookie的應(yīng)用場(chǎng)景
4.1 自動(dòng)登錄
4.2電商購(gòu)物車功能
4.3 記錄用戶登錄網(wǎng)址的次數(shù)
4.4 商品瀏覽記錄
5.電商購(gòu)物車案例
在瀏覽器本地實(shí)現(xiàn)購(gòu)物車功能
在商品詳情界面, 我們可以點(diǎn)擊加入購(gòu)物車按鈕, 將商品添加到購(gòu)物車中, 該加入購(gòu)物車的商品數(shù)據(jù)實(shí)際保存在Cookie中, 商品詳情頁(yè)面如下圖:
個(gè)商品到購(gòu)物車后, 我們可以前往我的購(gòu)物車中查看購(gòu)物車中的商品,這些商品數(shù)據(jù)我們都是從cookie中獲取的, 如下圖:
購(gòu)物車商品顯示后我們可以繼續(xù)對(duì)購(gòu)物車中的每個(gè)商品進(jìn)行操作, 如數(shù)量的增減, 商品刪除, 價(jià)格統(tǒng)計(jì), 批量刪除, 全選等操作, 如下圖可以對(duì)商品進(jìn)行刪除, 在刪除的同時(shí)我們也會(huì)對(duì)Cookie中的數(shù)據(jù)進(jìn)行同步更改.
網(wǎng)站題目:web前端學(xué)習(xí)教程:Cookie會(huì)話跟蹤技術(shù)-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://aaarwkj.com/article40/dppgeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作、軟件開發(fā)、網(wǎng)站策劃、建站公司、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容