Session簡介
2020-02-15 21:13 作者:艾銻無限 瀏覽量:
迎戰(zhàn)疫情,艾銻無限用愛與您同行
為中國中小企業(yè)提供免費IT外包服務

這次的肺炎疫情對中國的中小企業(yè)將會是沉重的打擊,據(jù)釘釘和微信兩個辦公平臺數(shù)據(jù)統(tǒng)計現(xiàn)有2億左右的人在家遠程辦公,那么對于中小企業(yè)的員工來說不懂IT技術將會讓他們面臨的最大挑戰(zhàn)和困難。
電腦不亮了怎么辦?系統(tǒng)藍屏如何處理?辦公室的電腦在家如何連接?網(wǎng)絡應該如何設置?VPN如何搭建?數(shù)據(jù)如何對接?服務器如何登錄?數(shù)據(jù)安全如何保證?數(shù)據(jù)如何存儲?視頻會議如何搭建?業(yè)務系統(tǒng)如何開啟等等一系列的問題,都會困擾著并非技術出身的您。
好消息是當您看到這篇文章的時候,就不用再為上述的問題而苦惱,您只需撥打艾銻無限的全國免費熱線電話:400 650 7820,就會有我們的遠程工程師為您解決遇到的問題,他們可以遠程幫您處理遇到的一些IT技術難題。
如遇到免費熱線占線,您還可以撥打我們的24小時值班經(jīng)理電話:15601064618或技術經(jīng)理的電話:13041036957,我們會在第一時間接聽您的來電,為您提供適合的解決方案,讓您無論在家還是在企業(yè)都能無憂辦公。
那艾銻無限具體能為您的企業(yè)提供哪些服務呢?
艾銻無限始創(chuàng)于2005年,歷經(jīng)15年服務了5000多家中小企業(yè)并保障了幾十萬臺設備的正常運轉(zhuǎn),積累了豐富的企業(yè)IT緊急問題和特殊故障的解決經(jīng)驗,制定了相對應的解決方案。我們?yōu)槟钠髽I(yè)提供的IT服務分為三大版塊:
第一版塊是保障性IT外包服務:如電腦設備運維,辦公設備運維,網(wǎng)絡設備運維,服務器運維等綜合性企業(yè)IT設備運維服務。
第二版塊是功能性互聯(lián)網(wǎng)外包服務:如網(wǎng)站開發(fā)外包,小程序開發(fā)外包,APP開發(fā)外包,電商平臺開發(fā)外包,業(yè)務系統(tǒng)的開發(fā)外包和后期的運維外包服務。
第三版塊是增值性云服務外包:如企業(yè)郵箱上云,企業(yè)網(wǎng)站上云,企業(yè)存儲上云,企業(yè)APP小程序上云,企業(yè)業(yè)務系統(tǒng)上云,阿里云產(chǎn)品等后續(xù)的云運維外包服務。
您要了解更多服務也可以登錄艾銻無限的官網(wǎng):www.bjitwx.com查看詳細說明,在疫情期間,您企業(yè)遇到的任何困境只要找到艾銻無限,能免費為您提供服務的我們絕不收一分錢,我們?nèi)w艾銻人承諾此活動直到中國疫情結(jié)束,我們將這次活動稱為——春雷行動。
以下還有我們?yōu)槟峁┑囊恍┘夹g資訊,以便可以幫助您更好的了解相關的IT知識,幫您渡過疫情中辦公遇到的困難和挑戰(zhàn),艾銻無限愿和中國中小企業(yè)一起共進退,因為我們相信萬物同體,能量合一,只要我們一起齊心協(xié)力,一定會成功。再一次祝福您和您的企業(yè),戰(zhàn)勝疫情,您和您的企業(yè)一定行。
北京艾銻無限告訴您:Session簡介
一、Session簡單介紹
在WEB開發(fā)中,服務器可以為每個用戶瀏覽器創(chuàng)建一個會話對象(session對象),注意:一個瀏覽器獨占一個session對象(默認情況下)。因此,在需要保存用戶數(shù)據(jù)時,服務器程序可以把用戶數(shù)據(jù)寫到用戶瀏覽器獨占的session中,當用戶使用瀏覽器訪問其它程序時,其它程序可以從用戶的session中取出該用戶的數(shù)據(jù),為用戶服務。
二、Session實現(xiàn)與工作原理
瀏覽器和服務器采用http無狀態(tài)的通訊,為了保持客戶端的狀態(tài),使用session來達到這個目的。在session機制中,也采用了這樣的一個唯一的session_id來標示不同的用戶,不同的是:瀏覽器每次請求都會帶上由服務器為它生成的session_id。
簡單介紹一下流程:當客戶端訪問服務器時,服務器根據(jù)需求設置session,將會話信息保存在服務器上,同時將標示session的session_id傳遞給客戶端瀏覽器,瀏覽器將這個session_id保存在內(nèi)存中(還有其他的存儲方式,例如寫在url中),我們稱之為無過期時間的cookie。瀏覽器關閉后,這個cookie就清掉了,它不會存在用戶的cookie臨時文件。
以后瀏覽器每次請求都會額外加上這個參數(shù)值,再服務器根據(jù)這個session_id,就能取得客戶端的數(shù)據(jù)狀態(tài)。
如果客戶端瀏覽器意外關閉,服務器保存的session數(shù)據(jù)不是立即釋放,此時數(shù)據(jù)還會存在,只要我們知道那個session_id,就可以繼續(xù)通過請求獲得此session的信息;但是這個時候后臺的session還存在,但是session的保存有一個過期時間,一旦超過規(guī)定時間沒有客戶端請求時,他就會清除這個session。
下面介紹一下session的存儲機制,默認的session是保存在files中,即以文件的方式保存session數(shù)據(jù)。在php中主要根據(jù)php.ini的配置session.save_handler來選擇保存session的方式。
這里順便說明一下,如果要做服務器的lvs,即多臺server的話,我們一般使用memcached的方式session,否則會導致一些請求找不到session。
一個簡單的memcache配置:
session.save_handler = memcache
session.save_path = "tcp://10.28.41.84:10001"
當然如果一定要使用files文件緩存,我們可以將文件作nfs,將所有的保存session文件定位到一個地方。
剛才講返回給用戶的session-id最終保存在內(nèi)存中,這里我們也可以設置參數(shù)將其保存在用戶的url中。
三、session對象的生命周期
問題:用戶開一個瀏覽器訪問一個網(wǎng)站,服務器是不是針對這次會話創(chuàng)建一個session?
答:不是的。session的創(chuàng)建時機是在程序中第一次去執(zhí)行request.getSession();這個代碼,服務器才會為你創(chuàng)建session。
問題:關閉瀏覽器,會話結(jié)束,session是不是就銷毀了呢?
答:不是的。session是30分鐘沒人用了才會死,服務器會自動摧毀session。
-
在web.xml文件中可以手工配置session的失效時間。例如:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
-
<display-name>day07</display-name>
-
-
<!-- 設置Session的有效時間:以分鐘為單位-->
-
<session-config>
-
<session-timeout>10</session-timeout>
-
</session-config>
-
-
<welcome-file-list>
-
<welcome-file>index.html</welcome-file>
-
<welcome-file>index.htm</welcome-file>
-
<welcome-file>index.jsp</welcome-file>
-
<welcome-file>default.html</welcome-file>
-
<welcome-file>default.htm</welcome-file>
-
<welcome-file>default.jsp</welcome-file>
-
</welcome-file-list>
</web-app>
當需要在程序中手動設置Session失效時,可以手工調(diào)用session.invalidate方法,摧毀session。
-
HttpSession session = request.getSession();
-
// 手工調(diào)用session.invalidate方法,摧毀session
-
session.invalidate();
總結(jié):開一個瀏覽器訪問服務器,第一次去執(zhí)行request.getSession();那個代碼,服務器為你創(chuàng)建session。然后故意不關閉瀏覽器,跑去玩了1個小時,session也沒了,即使會話沒結(jié)束,服務器發(fā)現(xiàn)session沒人用也會將其摧毀掉。
四、session對象的創(chuàng)建和銷毀時機
session對象的創(chuàng)建時機:在程序中第一次調(diào)用request.getSession()方法時就會創(chuàng)建一個新的Session,可以用isNew()方法來判斷Session是不是新創(chuàng)建的。
session對象的銷毀時機:session對象默認30分鐘沒有使用,則服務器會自動銷毀session,在web.xml文件中可以手工配置session的失效時間。
五、session和Cookie的主要區(qū)別
-
Cookie是把用戶的數(shù)據(jù)寫給用戶的瀏覽器。
-
Session技術把用戶的數(shù)據(jù)寫到用戶獨占的session中。
-
Session對象由服務器創(chuàng)建,開發(fā)人員可以調(diào)用request對象的getSession方法得到session對象。