内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

深層次理解cookie/session機制

今天對“cookie”和“session”做一些簡單的小總結(jié),幫助我們在產(chǎn)品設(shè)計中更好的與開發(fā)哥哥們溝通。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的彰武網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

cookie與session應(yīng)用于互聯(lián)網(wǎng)中的一項基本技術(shù)——會話(用戶與客戶端的交互)跟蹤技術(shù),用來跟蹤用戶的整個會話。簡單來說,cookie是通過在客戶端記錄信息確定用戶身份的,而session則通過在服務(wù)器端記錄信息確定用戶身份。

cookie

定義

cookie是服務(wù)器傳給客戶端的體積很小的純文本文件??蛻舳苏埱蠓?wù)器,如果服務(wù)器需要記錄該用戶狀態(tài),就向客戶端瀏覽器發(fā)一個cookie??蛻舳藶g覽器會把cookie保存起來。當(dāng)瀏覽器再請求該網(wǎng)站時,瀏覽器把請求的網(wǎng)址連同該cookie一同提交給服務(wù)器。服務(wù)器檢查該cookie,以此來辨認(rèn)用戶狀態(tài)。

cookie機制

cookie的生成(java代碼舉例):

Cookie cookie = new Cookie(“key”,”value”);

cookie.setMaxAge(60); //設(shè)置cookie的生存期60秒

cookie.setPath(“/test”);//設(shè)置cookie的路徑

cookie會附在請求資源的HTTP請求頭上發(fā)送給服務(wù)器,服務(wù)器通過相應(yīng)方法獲得該cookie。

cookie屬性

cookie的主要屬性包括:名字,值,過期時間,路徑和域:

路徑與域一起構(gòu)成cookie的作用范圍。

過期時間:對于會話cookie,如果不設(shè)置過期時間,表示這個cookie的生命期為瀏覽器的會話期間,關(guān)閉瀏覽器窗口,cookie就消失了,會話cookie一般保存在內(nèi)存里。對于持久cookie,設(shè)置了過期時間,瀏覽器會把cookie保存在硬盤上,存儲在硬盤上的cookie會在不同的瀏覽器進(jìn)程間共享。

名字:就是給cookie起一個名字。

值:cookie中記錄的信息內(nèi)容。

應(yīng)用場景

判斷注冊用戶是否已經(jīng)登錄網(wǎng)站:用戶可能會得到提示,是否在下一次進(jìn)入此網(wǎng)站時保留用戶信息以便簡化登錄流程。

根據(jù)用戶的愛好定制內(nèi)容:網(wǎng)站創(chuàng)建包含用戶瀏覽內(nèi)容的cookies,在用戶下次訪問時,網(wǎng)站根據(jù)用戶的情況對顯示的內(nèi)容進(jìn)行調(diào)整,將用戶感興趣的內(nèi)容放在前列。

實現(xiàn)永久登錄:如果用戶是在自己家的電腦上上網(wǎng),登錄時就可以記住他的登錄信息,下次訪問時不需要再次登錄,直接訪問即可。

實現(xiàn)自動登錄:當(dāng)用戶注冊網(wǎng)站后,就會收到一個惟一用戶ID的cookie。用戶再次連接時,這個用戶ID會自動返回,服務(wù)器對它進(jìn)行檢查,確定它是否是注冊用戶且選擇了自動登錄,從而使用戶無需給出明確的用戶名和密碼,就可以訪問服務(wù)器上的資源。

使用cookie記錄各個用戶的訪問計數(shù):獲取cookie數(shù)組中專門用于統(tǒng)計用戶訪問次數(shù)的cookie的值,將值加1并將最新cookie輸出。

使用cookie記住用戶名與用戶密碼。用戶勾選了“自動登錄”,就把用戶名和密碼的信息放到cookie中。同時可設(shè)置有效期。

用cookie實現(xiàn)新手大禮包等彈窗功能。同理,將新手大禮包彈窗邏輯寫入到cookie中,并設(shè)置相應(yīng)的有效期。比如在有效期內(nèi)只彈出一次該彈窗,超過有效期登錄后再次彈出彈窗。

session

定義

session是另一種記錄客戶狀態(tài)的機制,不同的是cookie保存在客戶端瀏覽器中,而session保存在服務(wù)器上??蛻舳藶g覽器訪問服務(wù)器的時候,服務(wù)器把客戶端信息以某種形式記錄在服務(wù)器上,這就是session??蛻舳藶g覽器再次訪問時只需要從該session中查找該客戶的狀態(tài)就可以了。session相當(dāng)于程序在服務(wù)器上建立的一份用戶的檔案,用戶來訪的時候只需要查詢用戶檔案表就可以了。

session的生命周期與有效期

為了獲得更高的存取速度,服務(wù)器一般把session放在內(nèi)存里。每個用戶都會有一個獨立的session。如果session內(nèi)容過于復(fù)雜,當(dāng)大量客戶訪問服務(wù)器時可能會導(dǎo)致內(nèi)存溢出。session的使用雖然比cookie方便,但是過多的session存儲在服務(wù)器內(nèi)存中,會對服務(wù)器造成壓力。因此,session里的信息應(yīng)該盡量精簡。

session在用戶第一次訪問服務(wù)器的時候自動創(chuàng)建。session生成后,只要用戶繼續(xù)訪問,服務(wù)器就會更新Session的最后訪問時間,并維護(hù)該session。

由于有越來越多的用戶訪問服務(wù)器,因此session也會越來越多。為防止內(nèi)存溢出,服務(wù)器會把長時間內(nèi)沒有活躍的session從內(nèi)存中刪除。這個時間就是session的超時時間。如果超過了超時時間沒訪問過服務(wù)器,session就自動失效了。

session與cookie

雖然session保存在服務(wù)器,但是它的正常運行仍然需要客戶端瀏覽器的支持。這是因為session需要使用cookie作為識別標(biāo)志。HTTP協(xié)議是無狀態(tài)的,session不能依據(jù)HTTP連接來判斷是否為同一客戶,因此服務(wù)器向客戶端瀏覽器發(fā)送一個名為SESSIONID的cookie,它的值為該Session的id。Session依據(jù)該cookie來識別是否為同一用戶。

對于不支持cookie的手機瀏覽器,有另一種解決方案:URL地址重寫。URL地址重寫的原理是將該用戶session的id信息重寫到URL地址中,服務(wù)器能夠解析重寫后的URL獲取session的id。這樣即使客戶端不支持cookie,也可以使用session來記錄用戶狀態(tài)。

應(yīng)用場景

通過session累計用戶數(shù)據(jù)。例如,一個未登錄用戶訪問了京東網(wǎng)站,這個時候京東對其下發(fā)了一個 cookie,假設(shè)cookie的名字叫做abc,那這條記錄就是 abc=001,同時京東的后臺也生成了一個 session id, 它的值也為 001, 001 這個客戶在 2 點、 3 點、 4 點分別添加了三件商品到購物車,這樣后臺也記錄了 session id 為 001的用戶的購物車?yán)锩嬉呀?jīng)有三件商品,并且只要每次客戶端 cookie 帶上來的值里面包含session id,后臺都能夠展示相應(yīng)的數(shù)據(jù),如果這個時候,在瀏覽器里面清空 cookie,cookie 數(shù)據(jù)消失之后,后臺和客戶端無法建立對應(yīng)關(guān)系,購物車的數(shù)據(jù)就會失效了。

通過session實現(xiàn)單點登錄。一個用戶帳號成功登錄后,在該次session還未失效之前,不能在其他機器上登錄同一個帳號。登錄后將用戶信息保存到session中,如果此時在另外一臺機器上一個相同的帳號請求登錄,通過遍歷(遍歷的意思就是將所有session都查看一遍)Web服務(wù)器中所有session并判斷其中是否包含同樣的用戶信息,如果有,在另一臺機器上是不能登錄該帳號的。

以上,就是對cookie與session的簡單總結(jié),大家學(xué)會了嗎?

作者:流年

本文由 @流年 原創(chuàng)發(fā)布。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖由作者提供

網(wǎng)站欄目:深層次理解cookie/session機制
文章路徑:http://www.rwnh.cn/article2/cgjioc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、軟件開發(fā)、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈動態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
横峰县| 新津县| 凤凰县| 黑山县| 溧阳市| 陆良县| 延寿县| 珲春市| 弥渡县| 阳西县| 当雄县| 揭阳市| 高陵县| 隆子县| 黔南| 陵川县| 民和| 都安| 柳河县| 吉木乃县| 克山县| 宣威市| 鱼台县| 定州市| 成武县| 宁津县| 宜君县| 体育| 二手房| 合作市| 怀化市| 尚志市| 吉安市| 郯城县| 图们市| 丰原市| 三亚市| 五寨县| 双峰县| 西城区| 抚宁县|