cookie與session應(yīng)用于互聯(lián)網(wǎng)中的一項(xiàng)基本技術(shù)——會(huì)話(用戶與客戶端的交互)跟蹤技術(shù),用來跟蹤用戶的整個(gè)會(huì)話。簡(jiǎn)單來說,cookie是通過在客戶端記錄信息確定用戶身份的,而session則通過在服務(wù)器端記錄信息確定用戶身份。
cookie與session應(yīng)用于互聯(lián)網(wǎng)中的一項(xiàng)基本技術(shù)——會(huì)話(用戶與客戶端的交互)跟蹤技術(shù),用來跟蹤用戶的整個(gè)會(huì)話。簡(jiǎn)單來說,cookie是通過在客戶端記錄信息確定用戶身份的,而session則通過在服務(wù)器端記錄信息確定用戶身份。
cookie
定義
cookie是服務(wù)器傳給客戶端的體積很小的純文本文件??蛻舳苏?qǐng)求服務(wù)器,如果服務(wù)器需要記錄該用戶狀態(tài),就向客戶端瀏覽器發(fā)一個(gè)cookie。客戶端瀏覽器會(huì)把cookie保存起來。當(dāng)瀏覽器再請(qǐng)求該
網(wǎng)站時(shí),瀏覽器把請(qǐng)求的網(wǎng)址連同該cookie一同提交給服務(wù)器。服務(wù)器檢查該cookie,以此來辨認(rèn)用戶狀態(tài)。
cookie機(jī)制
cookie的生成(java代碼舉例):
Cookie cookie = new Cookie(“key”,”value”);
cookie.setMaxAge(60); //設(shè)置cookie的生存期60秒
cookie.setPath(“/test”);//設(shè)置cookie的路徑
cookie會(huì)附在請(qǐng)求資源的HTTP請(qǐng)求頭上發(fā)送給服務(wù)器,服務(wù)器通過相應(yīng)方法獲得該cookie。
cookie屬性
cookie的主要屬性包括:名字,值,過期時(shí)間,路徑和域:
路徑與域一起構(gòu)成cookie的作用范圍。
過期時(shí)間:對(duì)于會(huì)話cookie,如果不設(shè)置過期時(shí)間,表示這個(gè)cookie的生命期為瀏覽器的會(huì)話期間,關(guān)閉瀏覽器窗口,cookie就消失了,會(huì)話cookie一般保存在內(nèi)存里。對(duì)于持久cookie,設(shè)置了過期時(shí)間,瀏覽器會(huì)把cookie保存在硬盤上,存儲(chǔ)在硬盤上的cookie會(huì)在不同的瀏覽器進(jìn)程間共享。
名字:就是給cookie起一個(gè)名字。
值:cookie中記錄的信息內(nèi)容。
應(yīng)用場(chǎng)景
判斷注冊(cè)用戶是否已經(jīng)登錄網(wǎng)站:用戶可能會(huì)得到提示,是否在下一次進(jìn)入此網(wǎng)站時(shí)保留用戶信息以便簡(jiǎn)化登錄流程。
根據(jù)用戶的愛好定制內(nèi)容:
網(wǎng)站創(chuàng)建包含用戶瀏覽內(nèi)容的cookies,在用戶下次訪問時(shí),網(wǎng)站根據(jù)用戶的情況對(duì)顯示的內(nèi)容進(jìn)行調(diào)整,將用戶感興趣的內(nèi)容放在前列。
實(shí)現(xiàn)永久登錄:如果用戶是在自己家的電腦上上網(wǎng),登錄時(shí)就可以記住他的登錄信息,下次訪問時(shí)不需要再次登錄,直接訪問即可。
實(shí)現(xiàn)自動(dòng)登錄:當(dāng)用戶
注冊(cè)網(wǎng)站后,就會(huì)收到一個(gè)惟一用戶ID的cookie。用戶再次連接時(shí),這個(gè)用戶ID會(huì)自動(dòng)返回,服務(wù)器對(duì)它進(jìn)行檢查,確定它是否是注冊(cè)用戶且選擇了自動(dòng)登錄,從而使用戶無(wú)需給出明確的用戶名和密碼,就可以訪問服務(wù)器上的資源。
使用cookie記錄各個(gè)用戶的訪問計(jì)數(shù):獲取cookie數(shù)組中專門用于統(tǒng)計(jì)用戶訪問次數(shù)的cookie的值,將值加1并將最新cookie輸出。
使用cookie記住用戶名與用戶密碼。用戶勾選了“自動(dòng)登錄”,就把用戶名和密碼的信息放到cookie中。同時(shí)可設(shè)置有效期。
用cookie實(shí)現(xiàn)新手大禮包等彈窗功能。同理,將新手大禮包彈窗邏輯寫入到cookie中,并設(shè)置相應(yīng)的有效期。比如在有效期內(nèi)只彈出一次該彈窗,超過有效期登錄后再次彈出彈窗。