• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        單點登錄與權(quán)限管理本質(zhì):session和cookie介紹-創(chuàng)新互聯(lián)

        本篇開始寫「單點登錄與權(quán)限管理」系列的第一部分:單點登錄與權(quán)限管理本質(zhì),這部分主要介紹相關(guān)的知識概念、抽象的處理過程、常見的實現(xiàn)框架。通過這部分的介紹,能夠?qū)吸c登錄與權(quán)限管理有整體上的了解,對其相關(guān)概念、處理流程、常見實現(xiàn)有個基本的認(rèn)識。

        成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供洛川網(wǎng)站建設(shè)、洛川做網(wǎng)站、洛川網(wǎng)站設(shè)計、洛川網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、洛川企業(yè)網(wǎng)站模板建站服務(wù),10余年洛川做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

        本篇文章介紹下session和cookie,它是登錄實現(xiàn)的基礎(chǔ),主要從下面幾個方面介紹:

        • session和cookie基本概念
        • session的生命周期
        • cookie的作用域

        cookie的跨域問題會在后續(xù)文章單獨介紹。

        基本概念

        大部分系統(tǒng)都需要識別用戶的身份,有些功能只有特定的用戶能使用,有些功能需要根據(jù)用戶身份顯示不同的內(nèi)容,一般使用唯一編號標(biāo)識用戶的身份。

        就像我們的×××,×××號是每個人唯一的,根據(jù)所在的省市區(qū)、出生年月、性別等規(guī)則生成,我們?nèi)フ畽C構(gòu)辦事時,都需要帶著×××,他們通過×××驗證我們的身份。

        session和cookie主要用來識別登錄者身份的,默認(rèn)通過JSESSIONID唯一編號進(jìn)行驗證。session是在服務(wù)端保存的一個數(shù)據(jù)結(jié)構(gòu),用來跟蹤用戶的狀態(tài),也可以保存用戶相關(guān)的一些數(shù)據(jù),可以保存在內(nèi)存、緩存、數(shù)據(jù)庫等存儲結(jié)構(gòu)中。cookie是客戶端保存用戶信息的一種機制。

        servlet session

        javax.servlet.http包中是session的主要API接口,主要有以下幾種接口:

        • HttpSession:實際的session接口定義;
        • Listener:session發(fā)生一些動作,如創(chuàng)建,設(shè)置屬性,失效等,會觸發(fā)一些事件,進(jìn)行相應(yīng)的處理;
        • Event:當(dāng)動作觸發(fā)之后,封裝為對應(yīng)的事件;

        單點登錄與權(quán)限管理本質(zhì):session和cookie介紹

        session相關(guān)的接口,一般由應(yīng)用服務(wù)器來實現(xiàn),比如Tomcat、Resin、Jetty。Session的主要特征:

        • 可以設(shè)置和獲取一些屬性;
        • 每個session對應(yīng)一個編號sessionId,是一次會話的唯一表示;
        • session有超時時間,用戶長時間無操作,維護(hù)的定時器會清除session,保證資源及時釋放;
        • 可以通過調(diào)用invalidate方法主動清除session;

        在tomcat中,HttpSession的實現(xiàn)是StandardSession,同時StandardSession會實現(xiàn)自定義的Session接口,它是對HttpSesion一個包裝。
        單點登錄與權(quán)限管理本質(zhì):session和cookie介紹

        另外,tomcat會實現(xiàn)session的管理和持久化,可隨時獲取到對應(yīng)的session,具體實現(xiàn)不在本篇分析,網(wǎng)上有很多文章介紹。

        cookie

        cookie是客戶端的解決方案,是服務(wù)器發(fā)給客戶端的特殊信息,這些信息以文本文件的方式存放在客戶端,后續(xù)請求,客戶端都會帶上這些特殊的信息。

        服務(wù)端通過HTTPResponse設(shè)置cookie到響應(yīng)頭,發(fā)送到客戶端,后續(xù)客戶端自動將cookie信息設(shè)置到請求頭。下面是我登錄百度后的cookie信息:
        單點登錄與權(quán)限管理本質(zhì):session和cookie介紹

        cookie也有失效時間,可在服務(wù)端通過cookie.setMaxAge(expiry)進(jìn)行設(shè)置,expiry=-1:代表瀏覽器關(guān)閉后,cookie就失效了;expiry>0:代表會將cookie保存到硬盤中,直到設(shè)置時間過期才會被瀏覽器自動刪除;expiry=0:刪除cookie,cookie都會被瀏覽器給刪除。

        另外還有其他幾個特性:

        • setDomain:設(shè)置cookie范圍,后面會詳細(xì)介紹;
        • isHttpOnly:是否只是http協(xié)議使用。只能在后端通過getCookies()獲取,js不能獲??;
        • 每一個cookie文件大小:4kb , 如果超過4kb瀏覽器不識別;
        • cookie不安全,可能泄露用戶信息,瀏覽器支持禁用cookie操作;
        • 臨時session:默認(rèn)生命周期,當(dāng)瀏覽器關(guān)閉時cookie銷毀的;
        交互過程

        單點登錄與權(quán)限管理本質(zhì):session和cookie介紹

        1. 使用瀏覽器訪問服務(wù)端頁面;
        2. 服務(wù)端收到該客戶端第一次請求后,會創(chuàng)建一個session,生產(chǎn)一個唯一sessionId;
        3. 同時在響應(yīng)請求中設(shè)置cookie,屬性名為jessionid;
        4. 客戶端收到后會保存jessionid,再次請求時,會在header中設(shè)置,服務(wù)端可從請求頭中獲??;
        5. 服務(wù)端驗證獲取的sessionId是否存在,即可驗證是否是同一用戶;

        當(dāng)瀏覽器禁用cookie后,基于cookie的session將不能正常工作,每次都將創(chuàng)建一個新的session,可通過url重寫傳遞jsessionid。

        session的生命周期

        session存儲在服務(wù)器端,session在用戶第一次訪問時創(chuàng)建,訪問jsp、servlet等程序時才會創(chuàng)建Session,只訪問html、image等靜態(tài)資源并不會創(chuàng)建,可調(diào)用request.getSession(true)強制生成Session。

        服務(wù)器會把長時間沒有活動的Session從內(nèi)存中清除,tomcat中session的默認(rèn)失效時間為20分鐘,可調(diào)用調(diào)用session的invalidate方法強制清楚。

        另外,我們可以自己實現(xiàn)session生命周期的管理,以滿足特定的業(yè)務(wù)需求,比如后續(xù)要講的單點登錄、分布式session等,tomcat可提供了相應(yīng)擴展,后續(xù)文章會介紹。

        cookie的作用域

        創(chuàng)建cookie時,需要設(shè)置domain,有多級域名時,可以控制cookie的作用域。如果網(wǎng)站請求量很大,設(shè)置的cookie作用域不當(dāng),會浪費很多流量。

        下面舉例說明,比如有三級域名support.kefu.mi.com,其中,mi.com是一級域名,kefu.mi.com是二級域名。

        在3類域名下進(jìn)行cookie設(shè)置,分別設(shè)置不同的domain,看看訪問各級域名時cookie的有效性。當(dāng)domain設(shè)置為空時,domain默認(rèn)為當(dāng)前域名。

        在一級域名mi.com下設(shè)置cookie
        domain參數(shù) 訪問一級 訪問二級 訪問三級
        mi.com
        kefu.mi.com×××
        mcc.kefu.mi.com×××

        當(dāng)domain為一級域名時,一級域名、包括其下的子域名都可以接收到cookie。但是domain參數(shù)設(shè)置其子域名時,所有域名就接收不到了,包括那個子域名。

        在二級域名kefu.mi.com下設(shè)置cookie
        domain參數(shù) 訪問一級 訪問二級 訪問三級
        ×
        mi.com
        kefu.mi.com×
        mcc.kefu.mi.com×××

        當(dāng)domain為自身域名時,其父域名無法接收到cookie,其本身與其子域名可以接收到cookie。而設(shè)置其子域名或其他域名時,所有域名都接收不到cookie。

        在三級域名mcc.kefu.mi.com下設(shè)置cookie
        domain參數(shù) 訪問一級 訪問二級 訪問三級
        ××
        mi.com
        kefu.mi.com×
        mcc.kefu.mi.com××

        可以得出結(jié)論:domain參數(shù)可以設(shè)置父域名以及自身,但不能設(shè)置其它域名,包括子域名,否則cookie不起作用。

        單點登錄與權(quán)限管理本質(zhì):session和cookie介紹

        另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

        當(dāng)前名稱:單點登錄與權(quán)限管理本質(zhì):session和cookie介紹-創(chuàng)新互聯(lián)
        文章出自:http://www.jbt999.com/article38/dshopp.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、域名注冊、動態(tài)網(wǎng)站營銷型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化企業(yè)建站

        廣告

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

        成都網(wǎng)站建設(shè)

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            欧美另天堂 | 欧美另类激情总和网 | A片在线免费观看 | 九九色视频 | 亚洲无码专区免费 | 久久久大学生毛片 | 夜夜操,天天操 | 无码免费在线视频 | 黄色成人网络空间在线播放 | 日韩骚逼网站 |