国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

網站的session機制是什么?

2020-05-30 22:39:42
字體:
來源:轉載
供稿:網友


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

session的生命周期與有效期
 
為了獲得更高的存取速度,服務器一般把session放在內存里。每個用戶都會有一個獨立的session。如果session內容過于復雜,當大量客戶訪問服務器時可能會導致內存溢出。session的使用雖然比cookie方便,但是過多的session存儲在服務器內存中,會對服務器造成壓力。因此,session里的信息應該盡量精簡。
 
session在用戶第一次訪問服務器的時候自動創建。session生成后,只要用戶繼續訪問,服務器就會更新Session的最后訪問時間,并維護該session。
 
由于有越來越多的用戶訪問服務器,因此session也會越來越多。為防止內存溢出,服務器會把長時間內沒有活躍的session從內存中刪除。這個時間就是session的超時時間。如果超過了超時時間沒訪問過服務器,session就自動失效了。
 
session與cookie
 
雖然session保存在服務器,但是它的正常運行仍然需要客戶端瀏覽器的支持。這是因為session需要使用cookie作為識別標志。HTTP協議是無狀態的,session不能依據HTTP連接來判斷是否為同一客戶,因此服務器向客戶端瀏覽器發送一個名為SESSIONID的cookie,它的值為該Session的id。Session依據該cookie來識別是否為同一用戶。
 
對于不支持cookie的手機瀏覽器,有另一種解決方案:URL地址重寫。URL地址重寫的原理是將該用戶session的id信息重寫到URL地址中,服務器能夠解析重寫后的URL獲取session的id。這樣即使客戶端不支持cookie,也可以使用session來記錄用戶狀態。
 
應用場景
 
通過session累計用戶數據。例如,一個未登錄用戶訪問了京東網站,這個時候京東對其下發了一個 cookie,假設cookie的名字叫做abc,那這條記錄就是 abc=001,同時京東的后臺也生成了一個 session id, 它的值也為 001, 001 這個客戶在 2 點、 3 點、 4 點分別添加了三件商品到購物車,這樣后臺也記錄了 session id 為 001的用戶的購物車里面已經有三件商品,并且只要每次客戶端 cookie 帶上來的值里面包含session id,后臺都能夠展示相應的數據,如果這個時候,在瀏覽器里面清空 cookie,cookie 數據消失之后,后臺和客戶端無法建立對應關系,購物車的數據就會失效了。
 
通過session實現單點登錄。一個用戶帳號成功登錄后,在該次session還未失效之前,不能在其他機器上登錄同一個帳號。登錄后將用戶信息保存到session中,如果此時在另外一臺機器上一個相同的帳號請求登錄,通過遍歷(遍歷的意思就是將所有session都查看一遍)Web服務器中所有session并判斷其中是否包含同樣的用戶信息,如果有,在另一臺機器上是不能登錄該帳號的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建昌县| 万安县| 枣强县| 宿迁市| 德庆县| 鱼台县| 太湖县| 江油市| 新建县| 塔城市| 鹤山市| 昌图县| 内乡县| 广州市| 宜兰县| 古交市| 东台市| 巍山| 延寿县| 洱源县| 栖霞市| 砀山县| 新疆| 湖州市| 民勤县| 远安县| 霍山县| 日照市| 梓潼县| 南召县| 睢宁县| 山西省| 百色市| 青川县| 齐河县| 勃利县| 宜州市| 南投市| 霍城县| 嘉峪关市| 屏东市|