• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺析在多服務(wù)器下共享Session的解決辦法

      2014-10-10 17:33:45龔利
      電腦知識(shí)與技術(shù) 2014年24期
      關(guān)鍵詞:共享

      龔利

      摘要:該文分析了在互聯(lián)網(wǎng)上,同一個(gè)網(wǎng)站的模塊分布在不同服務(wù)器上,如何保證用戶登錄子站點(diǎn)服務(wù)器后,在訪問(wèn)另外一個(gè)子站點(diǎn)服務(wù)器相關(guān)功能時(shí),不需要重新登錄即可使用。如何通過(guò)共享Session的設(shè)置,達(dá)到“一次登錄,同一網(wǎng)站的不同服務(wù)器全部通行”的問(wèn)題。并且通過(guò)PHP程序代碼對(duì)其進(jìn)行了實(shí)現(xiàn)。

      關(guān)鍵詞:多服務(wù)器;共享;Session

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)24-5597-02

      Analysis of Shared Session Solution in Multi Server

      GONG Li

      (Yunyang Teachers College, Shiyan 442000, China)

      Abstract: This paper analyzes the distribution of a site on the Internet module in different server, how to ensure that the user after the login server, into another server related module, do not need to log back in use. This is the problem of how to achieve "once logged in, the same sites of different servers all traffic" by sharing Session Settings. It is achieved by the PHP code.

      Key words: multiple servers; shared; Session

      1 概述

      通常大型網(wǎng)站的服務(wù)器會(huì)使用幾個(gè)服務(wù)器,通過(guò)使用分配二級(jí)域名來(lái)進(jìn)行訪問(wèn)不同的服務(wù)器,每個(gè)服務(wù)器運(yùn)行著不同的功能模塊。一個(gè)整體比較好的網(wǎng)站中,用戶系統(tǒng)應(yīng)該是標(biāo)準(zhǔn)統(tǒng)一的,即:網(wǎng)站登錄的用戶名和密碼可使用于各種模塊。還有一個(gè)問(wèn)題,如何確保用戶在服務(wù)器上登錄后,進(jìn)入另一個(gè)服務(wù)器相關(guān)的模塊,不需要重新登錄使用。用通俗的解釋就是,“只需要一次登錄認(rèn)證,每個(gè)服務(wù)器都可以通過(guò)”的問(wèn)題,為了解決這個(gè)問(wèn)題,需要解決同一個(gè)網(wǎng)站下的每個(gè)服務(wù)器如何實(shí)現(xiàn)共享會(huì)話數(shù)據(jù)Session。

      2 Session運(yùn)行機(jī)制

      1) Session產(chǎn)生背景

      由于互聯(lián)網(wǎng)上HTTP本身是一個(gè)無(wú)狀態(tài)的連接協(xié)議,正因?yàn)檫@種靈活和無(wú)連接的特性,當(dāng)用戶連接訪問(wèn)到一個(gè)網(wǎng)站時(shí),無(wú)法保存和記憶每個(gè)用戶的身份。為了支持客戶端與服務(wù)器之間的交互,我們就需要通過(guò)不同的技術(shù)為用戶和網(wǎng)站訪問(wèn)之前交互保存狀態(tài),這就是Session技術(shù)產(chǎn)生的原因。

      2) 什么是Session

      Session是從用戶訪問(wèn)頁(yè)面開(kāi)始,到斷開(kāi)與網(wǎng)站連接為止,從而形成了Session的生命周期。每一次用戶連接時(shí),系統(tǒng)會(huì)自動(dòng)生成一個(gè)唯一的SessionID以標(biāo)識(shí)當(dāng)前用戶與其他用戶區(qū)分。在會(huì)話期間,PHP默認(rèn)生成名為PHPSessionID的標(biāo)識(shí),它隨著每一個(gè)頁(yè)面被送往瀏覽器,然后隨下一次頁(yè)面請(qǐng)求返回給web服務(wù)器。

      Session通過(guò)ID接受每一個(gè)訪問(wèn)請(qǐng)求,從而識(shí)別當(dāng)前用戶、跟蹤和保持用戶的具體資料,以及Session變量中存儲(chǔ)的數(shù)字或文字資料。

      3 多服務(wù)器下共享Session的解決辦法

      通過(guò)上面對(duì)Session的工作原理介紹,我們可以發(fā)現(xiàn),默認(rèn)情況下,每個(gè)服務(wù)器向同一客戶分別生成一個(gè)會(huì)話Session ID。如果同一用戶的瀏覽器,訪問(wèn)服務(wù)器A的Session ID為Session_A1,而在B服務(wù)器上產(chǎn)生的ID是Session_B1,并且PHP的Session數(shù)據(jù)分別保存在本服務(wù)器的文件系統(tǒng)中,如圖1所示。

      我們發(fā)現(xiàn),Session數(shù)據(jù)要進(jìn)行兩個(gè)服務(wù)器共享,所以對(duì)于同一瀏覽器生成session_id必須是相同的,這個(gè)session_ID可以通過(guò)多個(gè)服務(wù)器之間發(fā)送的Cookie。如果我們給這個(gè)用戶的session被定義為passid。用于Cookie的域(domain)需要特殊的設(shè)置。在這里我們可以使用PHP語(yǔ)句:Ini_set(“session.Cookie_domain”,$domain)。

      通常,服務(wù)器的域名或IP地址是Cookie的域(domain),如果域是不同的,各服務(wù)器Cookie不能互相訪問(wèn)。

      假設(shè)同一個(gè)網(wǎng)站的兩臺(tái)不同服務(wù)器分別為:A.yytc.net和B.yytc.net,其一級(jí)域名為yytc.net. 則Cookie 的域(domain)可以設(shè)置為.yytc.net,PHP語(yǔ)句為:ini_set(“session.Cookie_domain”, “.yytc.net”);

      經(jīng)過(guò)設(shè)置后,兩個(gè)服務(wù)器可以同時(shí)訪問(wèn)cookie,這樣即可以達(dá)到多個(gè)服務(wù)器共享同一個(gè)客戶端的Session ID的目的。

      在這里還需要解決另一個(gè)問(wèn)題,是Session的位置和存儲(chǔ)方式必須確保每個(gè)服務(wù)器可以訪問(wèn),即多服務(wù)器共享客戶端的Session ID,并且也必須共享服務(wù)器的Session數(shù)據(jù)。相關(guān)關(guān)鍵程序代碼如下:

      先使用SQL語(yǔ)句創(chuàng)建一個(gè)數(shù)據(jù)表,Mysql的語(yǔ)句如下:

      CREATE TABLE ‘sessions (

      ‘p_time bigint(20) NOT NULL default “0”;// p_time變量為Session 過(guò)期時(shí)間

      ‘s_data longtext NOT NULL,// s_data變量為用來(lái)保存Session 的數(shù)據(jù)

      ‘s_id varchar(32) NOT NULL default “ ” ;// s_id變量為 Session ID

      PRIMARY KEY (`s_id`);

      KEY ‘p_time(‘p_time ‘);

      其中初始化函數(shù) function init( )程序關(guān)鍵代碼實(shí)現(xiàn)如下:

      Function init(){ // 初始化init()函數(shù)關(guān)鍵php代碼

      …………

      $domain=”.yytc.net”;//session的作用域

      Ini_set (“session.gc_maxlifetime”, file_time);//設(shè)置session最大生存時(shí)間

      Ini_set(“session.use_Cookies”,1); //用Cookie保存 SESSION ID 的方式

      Ini_set(“session.Cookie_path”,/);// 設(shè)置默認(rèn)的cookie有效路徑

      Ini_set(“session.Cookie_domain”,”.yytc.net”); //設(shè)置多服務(wù)器共享保存 SESSION ID 的 Cookie

      Session_module_name(“user”); //將session.save_handler 設(shè)置為 user

      Ini_set (“session.use_trans_sid”, 0); //不傳遞session_id

      …………

      } //初始化init()函數(shù)結(jié)束

      4 結(jié)束語(yǔ)

      本文主要分析了用戶在登錄同一個(gè)網(wǎng)站不同服務(wù)器中session共享的解決辦法,在實(shí)際操作中極大的方便了用戶的訪問(wèn)。并且通過(guò)PHP程序代碼實(shí)現(xiàn)了多服務(wù)器共享session的實(shí)際案例。

      參考文獻(xiàn):

      [1] 馬軍.asp網(wǎng)絡(luò)編程從入門(mén)到精通[M].北京:清華大學(xué)出版社,2006:200-217.

      [2] 田佳淳.php5 mysql5基礎(chǔ)與實(shí)例教程[M].北京:中國(guó)電力出版社,2007:100-150.

      猜你喜歡
      共享
      正確認(rèn)識(shí)五大發(fā)展理念的內(nèi)涵和要求
      中文信息(2016年10期)2016-12-12 14:37:42
      關(guān)于農(nóng)業(yè)科研儀器設(shè)備共享的幾點(diǎn)建議
      對(duì)應(yīng)用大數(shù)據(jù)完善檢驗(yàn)監(jiān)管的思考
      從“共享”新聞到“共繪”圖景:如何解答新課題
      招商引資檔案管理與信息資源共享探析
      “互聯(lián)網(wǎng)+教育”視閾下的教育共享初探
      談云計(jì)算與信息資源共享管理
      褪色的“共享”
      掛羊頭賣(mài)狗肉的“共享”營(yíng)銷(xiāo)
      圖書(shū)館與出版企業(yè)數(shù)字資源共享的環(huán)境因素分析
      出版廣角(2016年4期)2016-04-20 01:10:00
      郁南县| 八宿县| 红原县| 南川市| 卢氏县| 岫岩| 临潭县| 孝昌县| 屯门区| 资兴市| 贡觉县| 彭州市| 海门市| 历史| 平陆县| 二连浩特市| 驻马店市| 岑巩县| 台湾省| 策勒县| 商都县| 额尔古纳市| 阜城县| 沧州市| 盐津县| 紫金县| 巴林左旗| 施秉县| 泸溪县| 靖西县| 兰溪市| 壶关县| 徐水县| 老河口市| 仲巴县| 滁州市| 大化| 泸水县| 宁德市| 徐闻县| 于都县|