1、session在伺服器是怎麼存儲的,一般以文件形式寸還是存資料庫
我們一般用的Session可以基於Cookies和Cookieless,前者是將身份標識放在Cookies裡面,後者是跟在Url里作為get傳遞的參數..我們普遍用的前者
第1個問題,你賦值一個Session,
此時這個Session對應的值是存在伺服器端,客戶端無法直接獲取這個值的..每個Session對象都有一個SessionID的屬性,表明了該Session的唯一性,客戶端會生成1個名稱為AspNetSessionId(ASP.NET環境下大概是這個,你可以在FireFox的Cookies列表中查看到)的Cookies,和伺服器端的SessionID對應,伺服器端只有接受到這個Cookies的值才能判斷該瀏覽者對應於哪個Session..所以你第1個問題就回答完了.
第2個問題,過了超時時間才會失效,伺服器端永遠不會主動去聯系客戶端看對方是否超時,只是創建Session對象時會有一個過期時間,超過過期時間對應的客戶端還沒有訪問,則會清空Session對象..至於你說的不同瀏覽器的問題,暫時沒遇到過
2、在實際開發中session一般在伺服器中保存多久?
30 ~ 90 m
具體時間看業務需求來決定,當然有些企業有規定說session 時間不能超過 20 分鍾的
沒有特殊情況,請不要設 0,-1 之類的
碰到過一個系統,就是這樣死的……
3、伺服器端如何判定session的id?
還是通過cookies
一般會在客戶端存形如 SESSID=a3d3a6d8e21ba459f... 這樣的一條cookies記錄
瀏覽器每次和伺服器交互,都會把這版個SESSID發送給伺服器。權
伺服器拿這個值去和存放在伺服器上的SESSION記錄比較。
找到有效的SESSION記錄就認為這個SESSION是有效的,找不到或者只找到已經過期的記錄就認為這個SESSION已經失效。
4、Session到底是保存在客戶端還是伺服器端?
我們一般用的Session可以基於Cookies和Cookieless,前者是將身份標識放在Cookies裡面,後者是跟在Url里作為get傳遞的參數..我們普遍用的前者
第1個問題,你賦值一個Session, 此時這個Session對應的值是存在伺服器端,客戶端無法直接獲取這個值的..每個Session對象都有一個SessionID的屬性,表明了該Session的唯一性,客戶端會生成1個名稱為AspNetSessionId(ASP.NET環境下大概是這個,你可以在FireFox的Cookies列表中查看到)的Cookies,和伺服器端的SessionID對應,伺服器端只有接受到這個Cookies的值才能判斷該瀏覽者對應於哪個Session..所以你第1個問題就回答完了.
第2個問題,過了超時時間才會失效,伺服器端永遠不會主動去聯系客戶端看對方是否超時,只是創建Session對象時會有一個過期時間,超過過期時間對應的客戶端還沒有訪問,則會清空Session對象..至於你說的不同瀏覽器的問題,暫時沒遇到過
5、如何設置伺服器session?
設置<%Session("admin") = "setting"%>
6、session 保存在哪 , 伺服器還是本機(java web)
session是保存在伺服器的 cookie是保存在本機的 希望能幫助到您
7、伺服器Session數量是什麼意思
正在連接的用戶數
8、如何用redis做session伺服器
布式Session幾種實現式
1.基於資料庫Session共享
2.基於NFS共享文件系統
3.基於memcached session何保證 memcached 本身高用性
4. 基於resin/tomcat web容器本身session復制機制
5. 基於TT/Redis 或 jbosscache 進行 session 共享
6. 基於cookie 進行session共享
或者:
、Session Replication 式管理 (即session復制)
簡介:台機器Session數據廣播復制集群其餘機器
使用場景:機器較少網路流量較
優點:實現簡單、配置較少、網路機器Down掉影響用戶訪問
缺點:廣播式復制其餘機器定廷帶定網路銷
二、Session Sticky 式管理
簡介:即粘性Session、用戶訪問集群某台機器強制指定續所請求均落機器
使用場景:機器數適、穩定性要求非苛刻
優點:實現簡單、配置便、沒額外網路銷
缺點:網路機器Down掉、用戶Session丟失、容易造單點故障
三、緩存集式管理
簡介:Session存入布式緩存集群某台機器用戶訪問同節點先緩存拿Session信息
使用場景:集群機器數、網路環境復雜
優點:靠性
缺點:實現復雜、穩定性依賴於緩存穩定性、Session信息放入緩存要合理策略寫入
二SessionCookie區別聯系及Session實現原理
1、session保存伺服器客戶端知道其信息;cookie保存客戶端伺服器能夠知道其信息
2、session保存象cookie保存字元串
3、session能區路徑同用戶訪問網站期間所session任何都訪問cookie設置路徑參數同網站同路徑cookie互相訪問
4、session需要藉助cookie才能<nobr oncontextmenu="return false;"
onmousemove="kwM(3);" id="key3" onmouseover="kwE(event,3, this);"
style="COLOR: #6600ff; BORDER-BOTTOM: 0px dotted; BACKGROUND-COLOR:
transparent; TEXT-DECORATION: underline" onclick="return kwC();"
onmouseout="kwL(event, this);"
target="_blank">工作客戶端完全禁止cookiesession失效
http狀態協議客戶每讀取web頁面伺服器都打新且伺服器自維護客戶文信息要才能實現網商店
購物車呢session種保存文信息機制針每用戶變數值保存伺服器端通SessionID區同客
戶,sessioncookie或URL重寫基礎默認使用cookie實現系統創造名JSESSIONID輸cookie我
叫做session cookie,區別persistent
cookies,我通所說cookie,注意session
cookie存儲於瀏覽器內存並寫硬碟我剛才看JSESSIONID我通情看JSESSIONID
我瀏覽器cookie禁止web伺服器採用URL重寫式傳遞Sessionid我址欄看
sessionid=KWJHUG6JJM65HS2K6類字元串
明白原理我容易辨persistent cookiessession
cookie區別網些關於兩者安全性討論目session cookie針某言結束session
cookie隨著消失persistent
cookie存於客戶端硬碟段文本(通加密)且能遭cookie欺騙及針cookie跨站腳本攻擊自
session cookie安全
通session
cookie能跨窗口使用新瀏覽器窗口進入相同頁面系統賦予新sessionid我信息共享目達
我先sessionid保存persistent
cookie新窗口讀窗口SessionID通session cookiepersistent
cookie結合我實現跨窗口session tracking(跟蹤)
些web發書往往簡單Sessioncookie作兩種並列http傳送信息式session
cookies位於伺服器端persistent
cookie位於客戶端sessioncookie基礎明白兩者間聯系區別我難選擇合適技術發web
service
總:
、cookie機制session機制區別
具體說cookie機制採用客戶端保持狀態案session機制採用伺服器端保持狀態案
同我看由於伺服器端保持狀態案客戶端需要保存標識所session機制能需要藉助於cookie機制達保存標識目實際其選擇
二、cookie持久cookie區別
設置期間則表示cookie命周期瀏覽器期間要關閉瀏覽器窗口cookie消失種命期瀏覽期cookie稱cookiecookie般保存硬碟保存內存
設置期間瀏覽器cookie保存硬碟關閉再打瀏覽器些cookie依效直超設定期間
存儲硬碟cookie同瀏覽器進程間共享比兩IE窗口於保存內存cookie同瀏覽器同處理式
三、何利用實現自登錄
用戶某網站注冊收惟用戶IDcookie客戶重新連接用戶ID自返伺服器進行檢查確定否注冊用戶且選擇自登錄使用戶需給明確用戶名密碼訪問伺服器資源
四、何根據用戶定製站點
網站使用cookie記錄用戶意願於簡單設置網站直接頁面設置存儲cookie完定製於更復雜定製網站需僅惟標識符發送給用戶由伺服器端資料庫存儲每標識符應頁面設置
五、cookie發送
1.創建Cookie象
2.設置效
3.Cookie放入HTTP響應報
創建cookie並發送瀏覽器默認情況級別cookie:存儲瀏覽器內存用戶退瀏覽器刪除
希望瀏覽器該cookie存儲磁碟則需要使用maxAge並給秒單位間效設0則命令瀏覽器刪除該
cookie
發送cookie需要使用插入 Set-Cookie
HTTP請求報由於並修改任何前指定Set-Cookie報創建新報我稱addCookie
非setCookie同要記住響應報必須任何文檔內容發送客戶端前設置
六、cookie讀取
1.調用request.getCookie
要獲取瀏覽器發送cookie需要調用HttpServletRequestgetCookies調用返Cookie象數組應由HTTP請求Cookie報輸入值
2.數組進行循環調用每cookiegetName直找興趣cookie止
cookie與主機(域)相關非servlet或JSP頁面盡管servlet能發送單cookie能許相關cookie
例:
String cookieName = userID;
Cookie cookies[] = request.getCookies();
if (cookies!=null){
for(int i=0;i
Cookie
cookie = cookies[i];
if (cookieName.equals(cookie.getName())){
doSomethingWith(cookie.getValue());
}
}
}
七、何使用cookie檢測初訪者
A.調用HttpServletRequest.getCookies()獲取Cookie數組
B.循環檢索指定名字cookie否存及應值否確
C.則退循環並設置區別標識
D.根據區別標識判斷用戶否初訪者進行同操作
八、使用cookie檢測初訪者見錯誤
能僅僅cookie數組存特定數據項認用戶初訪者cookie數組null客戶能初訪者能由於用戶cookie刪除或禁用造結
數組非null,顯示客戶曾經網站或域並能說明曾經訪問servlet其servlet、JSP頁面及
非Java Web應用都設置cookie依據路徑設置其任何cookie都能返給用戶瀏覽器
確做判斷cookie數組否空且否存指定Cookie象且值確
九、使用cookie屬性注意問題
屬性伺服器發送瀏覽器報部;屬於由瀏覽器返給伺服器報
除名稱值外cookie屬性適用於伺服器輸客戶端cookie;伺服器端自於瀏覽器cookie並沒設置些屬性
要期望通request.getCookiescookie使用屬性意味著能僅僅通設置cookie效
發隨輸入數組查找適cookie,讀取值修改並存Cookie實現斷改變cookie值
十、何使用cookie記錄各用戶訪問計數
1.獲取cookie數組專門用於統計用戶訪問數cookie值
2.值轉換int型
3.值加1並用原名稱重新創建Cookie象
4.重新設置效
5.新cookie輸
十、session同環境同含義
session文經翻譯其本含義指始終系列作/消息比打電拿起電撥號掛斷電間系列程稱session
session詞與網路協議相關聯往往隱含面向連接/或保持狀態兩含義
sessionWeb發環境語義新擴展含義指類用客戶端與伺服器端間保持狀態解決案候Session用指種解決案存儲結構
十二、session機制
session機制種伺服器端機制伺服器使用種類似於散列表結構(能使用散列表)保存信息
程序需要某客戶端請求創建session候伺服器首先檢查客戶端請求否包含session標識-稱session
id,已經包含session id則說明前已經客戶創建session伺服器按照session
idsession檢索使用(檢索能新建種情況能現服務端已經刪除該用戶應session象用戶
請求URL面附加JSESSION參數)
客戶請求包含session id則客戶創建session並且與session相關聯session idsession id本響應返給客戶端保存
十三、保存session id幾種式
A.保存session id式採用cookie交互程瀏覽器自按照規則標識發送給伺服器
B.
由於cookie禁止必須其機制便cookie禁止仍能夠session
id傳遞伺服器經採用種技術叫做URL重寫session
id附加URL路徑面附加式兩種種作URL路徑附加信息另種作查詢字元串附加URL面網路整交互程始終
保持狀態必須每客戶端能請求路徑面都包含session
id
C.另種技術叫做表單隱藏欄位伺服器自修改表單添加隱藏欄位便表單提交能夠session id傳遞伺服器
十四、session候創建
見錯誤session客戶端訪問創建事實直某server端程序(Servlet)調用HttpServletRequest.getSession(true)語句才創建
十五、session何刪除
session列情況刪除:
A.程序調用HttpSession.invalidate()
B.距離收客戶端發送session id間間隔超session效間
C.伺服器進程停止
再注意關閉瀏覽器使存儲客戶端瀏覽器內存session cookie失效使伺服器端session象失效
9、如何獲得伺服器所有的session
一定可以的。只要你的伺服器沒關。那麼就可以獲得在線的人數。(一人對應一個session)。沒錯的。我以前就做了一個在線聊天系統。用到了這個。 追問: <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@page import="java.net.InetAddress"%><%List<HttpSession> l=new ArrayList<HttpSession>();
if(application.getAttribute("s1")==null)
application.setAttribute("sl",l);else{l=( List<HttpSession> )application.getAttribute("sl");}session.setAttribute("u","遊客");
l.add(session);
for(int i=0;i<l.size();i++){
if(l.get(i)==null){
l.remove(i);}}application.setAttribute("sl",l);
%>我這樣寫的 判斷以前的session是否為空 為空就清除掉 回答: 是的。思路差不多就是這樣的,不過。你那個判斷session是否為空的可以不必要,。因為session既然在集合中。那麼它就一定不為空。 追問: <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@page import="java.net.InetAddress"%><%List<HttpSession> l = new ArrayList<HttpSession>();
if (application.getAttribute("sl") == null)
application.setAttribute("sl", l);else {l = (List<HttpSession>) application.getAttribute("sl");}session.setAttribute("u", "遊客"); boolean x = false;
for (int i = 0; i < l.size(); i++) { if (l.get(i) == null) {
l.remove(i);} }for (int i = 0; i < l.size(); i++) { if (l.get(i).equals(session)) {x = true;break;} }if (x == false) {
10、伺服器如何維護session
伺服器創建session出來後,會把session的id號,以cookie的形式回寫給客戶機,這樣,只要客戶機的瀏覽器不關,再去訪問伺服器時,都會帶著session的id號去,伺服器發現客戶機瀏覽器帶session id過來了,就會使用內存中與之對應的session為之服務。