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