發(fā)布時(shí)間:2023-6-4 分類(lèi): 行業(yè)動(dòng)態(tài)
今天,我們將做一些簡(jiǎn)單的“cookies”和“cookies”摘要,以幫助我們更好地與產(chǎn)品設(shè)計(jì)中的開(kāi)發(fā)兄弟溝通。
Cookie和會(huì)話應(yīng)用于Internet中的基本技術(shù)——會(huì)話(用戶 - 客戶端交互)跟蹤技術(shù),用于跟蹤用戶的整個(gè)會(huì)話。簡(jiǎn)單地說(shuō),cookie通過(guò)在客戶端上記錄信息來(lái)確定用戶的身份,而會(huì)話通過(guò)在服務(wù)器上記錄信息來(lái)確定用戶的身份。
餅干
定義
Cookie是服務(wù)器傳遞給客戶端的小型純文本文件。客戶端請(qǐng)求服務(wù)器,如果服務(wù)器需要記錄用戶的狀態(tài),它會(huì)向客戶端瀏覽器發(fā)送cookie??蛻舳藶g覽器將保存cookie。當(dāng)瀏覽器再次請(qǐng)求網(wǎng)站時(shí),瀏覽器將請(qǐng)求的URL連同cookie一起提交給服務(wù)器。服務(wù)器檢查cookie以識(shí)別用戶的狀態(tài)。
Cookie機(jī)制
Cookie生成(java代碼示例):
Cookie Cookie=新Cookie(&ndquo; key”,” value”);
cookie.setMaxAge(60); //將cookie的生命周期設(shè)置為60秒
cookie.setPath(“/test”); //設(shè)置cookie的路徑
使用請(qǐng)求資源的HTTP請(qǐng)求頭將cookie發(fā)送到服務(wù)器,服務(wù)器通過(guò)相應(yīng)的方法獲取cookie。
Cookie屬性
cookie的主要屬性包括:名稱,值,到期時(shí)間,路徑和域:
路徑與域一起構(gòu)成了cookie的范圍。
到期時(shí)間:對(duì)于會(huì)話cookie,如果未設(shè)置到期時(shí)間,則表示此cookie的生命周期是在瀏覽器會(huì)話期間。當(dāng)瀏覽器窗口關(guān)閉時(shí),cookie消失,會(huì)話cookie通常存儲(chǔ)在內(nèi)存中。對(duì)于持久性cookie,設(shè)置過(guò)期時(shí)間,瀏覽器將cookie保存在硬盤(pán)上,存儲(chǔ)在硬盤(pán)上的cookie在不同的瀏覽器進(jìn)程之間共享。
名稱:只需給cookie一個(gè)名字。
值:cookie中記錄的信息內(nèi)容。
應(yīng)用場(chǎng)景
確定注冊(cè)用戶是否已登錄網(wǎng)站:用戶可能會(huì)在下次進(jìn)入網(wǎng)站時(shí)提示保留用戶信息以簡(jiǎn)化登錄過(guò)程。
根據(jù)用戶的偏好自定義內(nèi)容:網(wǎng)站創(chuàng)建包含用戶瀏覽內(nèi)容的cookie。當(dāng)用戶下次訪問(wèn)時(shí),網(wǎng)站根據(jù)用戶的情況調(diào)整顯示的內(nèi)容,并將感興趣的內(nèi)容放在最前面。
要實(shí)現(xiàn)永久登錄:如果用戶在其家用計(jì)算機(jī)上上網(wǎng),他可以在登錄時(shí)記住他的登錄信息。您無(wú)需在下次訪問(wèn)時(shí)再次登錄,即可直接訪問(wèn)。
實(shí)施自動(dòng)登錄:當(dāng)用戶注冊(cè)網(wǎng)站時(shí),他們會(huì)收到一個(gè)具有唯一用戶ID的cookie。當(dāng)用戶再次連接時(shí),將自動(dòng)返回用戶ID,服務(wù)器會(huì)檢查它以確定它是否是注冊(cè)用戶并選擇自動(dòng)登錄,以便用戶可以訪問(wèn)服務(wù)器上的資源而無(wú)需提供明確的用戶名和密碼。
使用cookie記錄每個(gè)用戶的訪問(wèn)次數(shù):獲取cookie數(shù)組中用于計(jì)算用戶訪問(wèn)次數(shù)的cookie值,將值加1并輸出最新的cookie。
使用cookie記住用戶名和用戶密碼。用戶選擇“自動(dòng)登錄”,并將用戶名和密碼信息放入cookie中。同時(shí),可以設(shè)置有效期。
使用cookie來(lái)實(shí)現(xiàn)彈出功能,如新手狂歡。類(lèi)似地,新手狂歡彈出窗口邏輯被寫(xiě)入cookie并且設(shè)置相應(yīng)的到期日期。例如,彈出窗口在有效期內(nèi)僅彈出一次,彈出窗口在有效期到期后再次彈出。
會(huì)話
定義
會(huì)話是另一種記錄客戶端狀態(tài)的機(jī)制。不同之處在于cookie存儲(chǔ)在客戶端瀏覽器中,會(huì)話保存在服務(wù)器上。當(dāng)客戶端瀏覽器訪問(wèn)服務(wù)器時(shí),服務(wù)器以某種形式在服務(wù)器上記錄客戶端信息。這是會(huì)議。當(dāng)客戶端瀏覽器再次訪問(wèn)時(shí),它只需要從會(huì)話中查找客戶端的狀態(tài)。該會(huì)話等同于服務(wù)器上的程序創(chuàng)建的用戶文件。當(dāng)用戶訪問(wèn)時(shí),只需要查詢用戶文件表。
會(huì)話生命周期和有效期
為了實(shí)現(xiàn)更高的訪問(wèn)速度,服務(wù)器通常將會(huì)話置于內(nèi)存中。每個(gè)用戶都有一個(gè)單獨(dú)的會(huì)話。如果會(huì)話內(nèi)容過(guò)于復(fù)雜,則當(dāng)大量客戶端訪問(wèn)服務(wù)器時(shí),會(huì)導(dǎo)致內(nèi)存溢出。雖然會(huì)話的使用比cookie更方便,但是在服務(wù)器的內(nèi)存中存儲(chǔ)的會(huì)話太多,這給服務(wù)器帶來(lái)了壓力。因此,會(huì)話中的信息應(yīng)盡可能簡(jiǎn)潔。
用戶首次訪問(wèn)服務(wù)器時(shí)會(huì)自動(dòng)創(chuàng)建會(huì)話。生成會(huì)話后,只要用戶繼續(xù)訪問(wèn),服務(wù)器將更新會(huì)話的上次訪問(wèn)時(shí)間并維護(hù)會(huì)話。
隨著越來(lái)越多的用戶訪問(wèn)服務(wù)器,將會(huì)有越來(lái)越多的會(huì)話。為防止內(nèi)存溢出,服務(wù)器將長(zhǎng)時(shí)間從內(nèi)存中刪除活動(dòng)會(huì)話。此時(shí)間是會(huì)話的超時(shí)時(shí)間。如果服務(wù)器的訪問(wèn)時(shí)間超過(guò)超時(shí)時(shí)間,則會(huì)話將自動(dòng)過(guò)期。
會(huì)話和cookie
雖然會(huì)話保存在服務(wù)器上,但其正常操作仍需要客戶端瀏覽器的支持。這是因?yàn)闀?huì)話需要使用cookie作為識(shí)別標(biāo)記。 HTTP協(xié)議是無(wú)狀態(tài)的。會(huì)話無(wú)法基于HTTP連接確定它是否是同一客戶端。因此,服務(wù)器將名為SESSIONID的cookie發(fā)送到客戶端瀏覽器,其值是會(huì)話的ID。會(huì)話基于cookie識(shí)別同一用戶。
對(duì)于不支持cookie的移動(dòng)瀏覽器,還有另一種解決方案:URL地址重寫(xiě)。 URL地址重寫(xiě)的原則是將用戶會(huì)話的id信息重寫(xiě)為URL地址,服務(wù)器可以解析重寫(xiě)的URL以獲得會(huì)話的id。這樣,即使客戶端不支持cookie,您也可以使用會(huì)話來(lái)記錄用戶狀態(tài)。
應(yīng)用場(chǎng)景
通過(guò)會(huì)話累積用戶數(shù)據(jù)。例如,未注冊(cè)的用戶訪問(wèn)了京東網(wǎng)站。這時(shí),京東向它發(fā)了一個(gè)餅干。假設(shè)cookie的名稱是abc,記錄是abc=001,京東的背景也生成會(huì)話ID。該值也是001,001??蛻粼?,3和4處向購(gòu)物車(chē)添加了三個(gè)項(xiàng)目,以便后臺(tái)還記錄了會(huì)話ID為001的用戶已經(jīng)在購(gòu)物車(chē)中有三個(gè)項(xiàng)目,并且每次客戶端cookie的值包含在會(huì)話ID中時(shí),后臺(tái)都可以顯示相應(yīng)的數(shù)據(jù)。如果這個(gè)時(shí)候,cookie在瀏覽器中被清除,在cookie數(shù)據(jù)消失后,后臺(tái)和客戶端無(wú)法建立對(duì)應(yīng)關(guān)系,購(gòu)物車(chē)數(shù)據(jù)將無(wú)效。
通過(guò)會(huì)話單點(diǎn)登錄。用戶帳戶成功登錄后,在會(huì)話過(guò)期之前,同一帳戶無(wú)法登錄到其他計(jì)算機(jī)上。登錄后,將用戶信息保存到會(huì)話中。如果此時(shí)請(qǐng)求在另一臺(tái)計(jì)算機(jī)上的同一帳戶登錄,則遍歷(遍歷意味著查看所有會(huì)話)Web服務(wù)器中的所有會(huì)話并確定是否包含該會(huì)話。相同的用戶信息(如果有)無(wú)法登錄到另一臺(tái)計(jì)算機(jī)上的帳戶。
以上是cookie和會(huì)話的簡(jiǎn)單摘要。你學(xué)會(huì)了嗎?
作者:轉(zhuǎn)瞬即逝,互聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)師,4年互聯(lián)網(wǎng)產(chǎn)品經(jīng)驗(yàn)。
本文最初由@流年發(fā)表。未經(jīng)許可,禁止復(fù)制。
該地圖由作者提供
« Futu Securities:不是很性感但非常穩(wěn)定,騰訊音樂(lè)IPO成為全球首個(gè)市值音樂(lè)巨頭 | 而信:互聯(lián)網(wǎng)貸款市場(chǎng)起伏的調(diào)節(jié)加速凈化 »
周一周五 8:30 - 18:00
客服QQ