專利名稱:遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器的方法及Web代理服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器的方 法及一種Web代理服務(wù)器。
背景技術(shù):
Web代理服務(wù)器用于提供內(nèi)網(wǎng)和外網(wǎng)之間Web服務(wù)的代理訪問(wèn)。 一般 情況下,如果是內(nèi)網(wǎng)的主機(jī)訪問(wèn)外網(wǎng)的Web服務(wù)器時(shí),Web代理服務(wù)器無(wú) 需進(jìn)行改寫(xiě)操作;而如果是外網(wǎng)的主機(jī)訪問(wèn)內(nèi)網(wǎng)的Web服務(wù)器時(shí),由于外網(wǎng) 的主機(jī)無(wú)法直接獲得內(nèi)網(wǎng)Web服務(wù)器的地址,因此Web代理服務(wù)器,比如 SSLVPN (基于安全套接層協(xié)議的虛擬專用網(wǎng)絡(luò))網(wǎng)關(guān),需要執(zhí)行雙向的改 寫(xiě)操作。本發(fā)明實(shí)施例就是針對(duì)Web代理服務(wù)器的以上需要執(zhí)行改寫(xiě)操作的 情況提出了新的改進(jìn)方案。以SSL VPN為例,對(duì)現(xiàn)有技術(shù)的工作原理及存在的不足說(shuō)明如下SSL VPN是一種采用SSL (Secure Sockets Layer,安全套接層)進(jìn)行報(bào) 文的加密交換,從而實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)(如企業(yè)局域網(wǎng))服務(wù)器的VPN(Virtual Private Network,虛擬專用網(wǎng)絡(luò))技術(shù),其工作原理如圖1所示 SSL VPN網(wǎng)關(guān)與Internet的遠(yuǎn)程主機(jī)之間建立SSL連接,與企業(yè)局域網(wǎng)的服 務(wù)器建立TCP (Transmission Control Protocol,傳輸控制協(xié)議)連接;遠(yuǎn)程 主機(jī)向服務(wù)器發(fā)送的請(qǐng)求報(bào)文基于HTTPs (HTTP over SSL),即以加密的 HTTP格式傳送給SSL VPN網(wǎng)關(guān),由SSLVPN網(wǎng)關(guān)終結(jié)該SSL連接,并基 于HTTP (Hypertext Transfer Protocol,超文本傳輸協(xié)議)通過(guò)該TCP連接以 明文方式傳送給服務(wù)器;反之,服務(wù)器發(fā)送的應(yīng)答報(bào)文基于HTTP通過(guò)該TCP 連接以明文方式傳送給SSL VPN網(wǎng)關(guān),由SSL VPN網(wǎng)關(guān)基于HTTPs通過(guò)該 SSL連接以加密方式傳送給遠(yuǎn)程主機(jī)。當(dāng)上述內(nèi)網(wǎng)服務(wù)器是Web服務(wù)器時(shí),SSLVPN網(wǎng)關(guān)進(jìn)行Web代理,包 括(1) SSLVPN網(wǎng)關(guān)將每個(gè)可以訪問(wèn)的內(nèi)網(wǎng)Web服務(wù)器的資源地址(一般稱為域名)映射為一條虛擬路徑,并在虛實(shí)路徑映射表中加以維護(hù);以及, (2) SSL VPN網(wǎng)關(guān)通過(guò)URL (Uniform Resource Location,統(tǒng)一資源定位符) 改寫(xiě)實(shí)現(xiàn)遠(yuǎn)程主機(jī)對(duì)該Web服務(wù)器的訪問(wèn)。其中,該URL改寫(xiě)涉及如下兩 個(gè)方面 一方面,當(dāng)SSLVPN網(wǎng)關(guān)收到遠(yuǎn)程主機(jī)對(duì)虛擬路徑的URL鏈接請(qǐng) 求時(shí),査找到與該虛擬路徑對(duì)應(yīng)的真實(shí)URL鏈接并對(duì)HTTPs報(bào)文中的相應(yīng) 字段進(jìn)行修改;另一方面,當(dāng)SSL VPN網(wǎng)關(guān)收到內(nèi)網(wǎng)Web服務(wù)器返回給遠(yuǎn) 程主機(jī)的頁(yè)面時(shí),需要對(duì)頁(yè)面中的URL鏈接進(jìn)行改寫(xiě),以將頁(yè)面中指向內(nèi) 網(wǎng)真實(shí)地址的URL替換為指向虛擬路徑的URL。在實(shí)際使用中,同一個(gè)Web服務(wù)器常常提供有多個(gè)不同的域名,這些域 名通過(guò)相同的尾綴來(lái)表明同源性。例如www.abc.com, map.abc.com, image.abc.com等等,都?xì)w屬于同一個(gè)Web服務(wù)器。這樣一組形似的域名可 以用正則表達(dá)式"*.abc.COm"來(lái)表示,"*"代表了任意字符串,因此 "*.abc.Com"可以被稱為模糊站點(diǎn),而指向模糊站點(diǎn)的URL可以被相應(yīng)稱 為模糊站點(diǎn)的URL??梢钥闯?,具有相同尾綴的模糊站點(diǎn)是屬于同一個(gè)Web 服務(wù)器的,其在管理和配置方面存在諸多相同之處,例如,刪除Web服務(wù)器 資源、對(duì)用戶授予訪問(wèn)Web服務(wù)器的權(quán)限、設(shè)置對(duì)Web服務(wù)器的訪問(wèn)策略 等等。在這種情況下,如果采用普通的SSL VPN網(wǎng)關(guān)代理方案,分別為每 一個(gè)域名映射一條虛擬路徑,顯然不便于Web服務(wù)器的擴(kuò)展,例如,當(dāng)Web 服務(wù)器新增加了一個(gè)域名,就需要在SSL VPN網(wǎng)關(guān)上增加一條對(duì)應(yīng)的配置, 否則無(wú)法進(jìn)行新域名的識(shí)別;同時(shí),這種分別的虛擬路徑映射,將在一Web 服務(wù)器的管理和配置發(fā)生變化時(shí),必須進(jìn)行相同的重復(fù)性操作,十分不便。 因此,如何做到既能正確地實(shí)現(xiàn)虛擬路徑映射,又能夠方便快捷的進(jìn)行多域 名Web服務(wù)器的資源管理,是一個(gè)具有挑戰(zhàn)性的問(wèn)題?,F(xiàn)有技術(shù)中,解決多域名Web服務(wù)器遠(yuǎn)程訪問(wèn)問(wèn)題的實(shí)現(xiàn)方案包括(1) SSL VPN網(wǎng)關(guān)以如下形式進(jìn)行Web服務(wù)器虛擬路徑的映射在網(wǎng) 關(guān)路徑后面加上",DanaInfo=old—url";例如,域名http:〃www.abc.com將 豐皮日決射為https:〃www.gateway.com/, DanaInfo=http:〃www.abc.com, 其中, www.gateway.com為SSL VPN網(wǎng)關(guān)的路徑,Danalnfo參數(shù)攜帶的是域名的 原URL路徑參數(shù);(2) 設(shè)置模糊模式的訪問(wèn)策略,如,只要能夠匹配氣abc.com,即可認(rèn)為允許進(jìn)行訪問(wèn);(3 )當(dāng)接收到HTTPs報(bào)文時(shí),SSL VPN網(wǎng)關(guān)從請(qǐng)求中的Danalnfo字段 提取URL并按照訪問(wèn)策略進(jìn)行匹配,如果匹配成功,就表明用戶請(qǐng)求的地 址是被許可的,此時(shí)向相應(yīng)的Web服務(wù)器轉(zhuǎn)發(fā)改寫(xiě)后的、攜帶域名的原URL 路徑參數(shù)的HTTP請(qǐng)求。上述遠(yuǎn)程訪問(wèn)Web服務(wù)器的技術(shù)方案,能夠隨著Web服務(wù)器管理和配 置策略的變化而變化,從而避免分別針對(duì)不同的域名進(jìn)行虛擬路徑映射所導(dǎo) 致的諸多缺陷;但是,其本身仍然存在不足,包括其虛擬路徑映射方式增加了鏈接的長(zhǎng)度,降低了傳輸效率;其要求對(duì)用戶的每一次HTTPs報(bào)文都進(jìn)行Danalnfo參數(shù)解析,以確定 是否可以進(jìn)行轉(zhuǎn)發(fā),降低了SSLVPN網(wǎng)關(guān)的處理效率;特別是,其進(jìn)行虛擬路徑映射后的鏈接都是指向www.gateway.com站點(diǎn) 根目錄的,這種情況下,如果該SSL VPN網(wǎng)關(guān)代理多個(gè)Web服務(wù)器,則從 改寫(xiě)后的路徑上是無(wú)法加以區(qū)分的。如果SSL VPN網(wǎng)關(guān)沒(méi)有采取特殊的處 理,將導(dǎo)致用戶主機(jī)將各Web服務(wù)器的Cookie (—種在用戶端保存的HTTP 狀態(tài)信息)混在一起,有可能產(chǎn)生錯(cuò)誤;如果SSL VPN網(wǎng)關(guān)側(cè)增加緩存以 記錄用戶的Cookie,雖然能夠保證功能上的正確性,但必然增加實(shí)現(xiàn)的復(fù)雜 性。發(fā)明內(nèi)容本發(fā)明的實(shí)施例旨在提供能夠方便、快捷、準(zhǔn)確的實(shí)現(xiàn)對(duì)內(nèi)網(wǎng)多域名 Web服務(wù)器進(jìn)行遠(yuǎn)程訪問(wèn)的技術(shù)方案。為實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例提供了一種遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器 的方法,適用于通過(guò)雙向URL改寫(xiě)為處在外網(wǎng)的用戶端提供遠(yuǎn)程訪問(wèn)處在 內(nèi)網(wǎng)的Web服務(wù)器功能的Web代理服務(wù)器;該Web代理服務(wù)器執(zhí)行以下步驟51、 對(duì)于該Web服務(wù)器發(fā)送給該用戶端的第一報(bào)文,對(duì)其所包含的完 全路徑進(jìn)行初始定向獲得鏈接;52、 對(duì)于該用戶端發(fā)送給該Web服務(wù)器的第二報(bào)文,對(duì)其所請(qǐng)求的鏈 接加以識(shí)別;如果該鏈接指向包括指定格式域名虛擬URL的虛擬路徑,則按照該虛 實(shí)路徑映射表改寫(xiě)該虛擬路徑為包括域名真實(shí)URL的完全路徑;其中,該 虛實(shí)路徑映射表在初始化時(shí)添加每一該Web服務(wù)器主域名的映射表項(xiàng),該映 射表項(xiàng)可以包括域名真實(shí)URL和映射為指定格式的域名虛擬URL,且該域 名虛擬URL和域名真實(shí)URL——對(duì)應(yīng);如果該鏈接為初始定向的完全路徑,則從中提取相應(yīng)的域名并識(shí)別其是 否存在于該虛實(shí)路徑映射表中;是則,提取虛實(shí)路徑映射表中匹配的域名虛擬URL改寫(xiě)該完全路徑為 虛擬路徑,并進(jìn)行該用戶端到該虛擬路徑的重定向;否則,該域名為子域名,則根據(jù)預(yù)先設(shè)置的模糊匹配策略將該子域名與 主域名進(jìn)行匹配,在匹配的情況下將該子域名映射為指定格式的域名虛擬 URL并用其改寫(xiě)該完全路徑為虛擬路徑,進(jìn)行該用戶端到該虛擬路徑的重定 向,以及,添加相應(yīng)的表項(xiàng)到虛實(shí)路徑映射表中。本發(fā)明的實(shí)施例還提供了一種Web代理服務(wù)器,用于通過(guò)雙向URL改 寫(xiě)為處在外網(wǎng)的用戶端提供遠(yuǎn)程訪問(wèn)處在內(nèi)網(wǎng)的Web服務(wù)器的功能;包括主域名保存單元,用于保存所指定的每一該Web服務(wù)器的主域名;策略保存單元,用于保存預(yù)先設(shè)置的該Web服務(wù)器子域名的模糊匹配策略;映射單元,用于將域名映射為指定格式的域名虛擬URL;其中,該映射 單元與該主域名保存單元連接,用于在初始化階段將該指定的主域名映 射為指定格式的域名虛擬URL;虛實(shí)路徑映射表單元,與該映射單元連接,用于保存映射后的表項(xiàng);其 中,該表項(xiàng)可以包括一一對(duì)應(yīng)的域名虛擬URL和域名真實(shí)URL;URL改寫(xiě)單元,與該虛實(shí)路徑映射表單元連接,用于識(shí)別接收到的報(bào)文;對(duì)于該Web服務(wù)器發(fā)送給該用戶端的第一報(bào)文,對(duì)其所包含的完全路徑 觸發(fā)初始定向單元;對(duì)于該用戶端發(fā)送給該Web服務(wù)器的第二報(bào)文,對(duì)其所請(qǐng)求的鏈接加以 識(shí)別;如果該鏈接指向包括指定格式域名虛擬URL的虛擬路徑,則按照該 虛實(shí)路徑映射表單元改寫(xiě)該虛擬路徑為包括域名真實(shí)URL的完全路徑;如 果該鏈接為初始定向的完全路徑,則從中提取相應(yīng)的域名并識(shí)別其是否存在于該虛實(shí)路徑映射表單元中;是則,觸發(fā)重定向單元,否則,該域名為子域 名,觸發(fā)模糊匹配單元;初始定向單元,與該URL改寫(xiě)單元連接,用于對(duì)該完全路徑進(jìn)行初始 定向;重定向單元,接受該URL改寫(xiě)單元的觸發(fā)和該映射單元將子域名映射 為指定格式的域名虛擬URL時(shí)的觸發(fā),用于提取虛實(shí)路徑映射表中匹配的 域名虛擬URL改寫(xiě)該完全路徑為虛擬路徑,并進(jìn)行該用戶端到該虛擬路徑 的重定向;模糊匹配單元,與該URL改寫(xiě)單元和策略保存單元連接,用于接受該 URL改寫(xiě)單元的觸發(fā),根據(jù)該模糊匹配策略將該子域名與主域名進(jìn)行匹配, 匹配成功則觸發(fā)該映射單元將該子域名映射為指定格式的域名虛擬URL。由上述技術(shù)方案可知,本發(fā)明的實(shí)施例通過(guò)靜態(tài)映射主域名和動(dòng)態(tài)映射 子域名,采用不直接進(jìn)行第一報(bào)文改寫(xiě)的方案,具有以下有益效果1、 能夠?qū)崿F(xiàn)模糊站點(diǎn)不同域名的區(qū)分改寫(xiě),避免了用戶端的Cookie混淆;2、 對(duì)第一報(bào)文中包含的完全鏈接僅進(jìn)行初始定向而非頁(yè)面改寫(xiě),提高 Web代理服務(wù)器的處理效率;3、 無(wú)需對(duì)未加以請(qǐng)求的子域名進(jìn)行虛擬URL的映射,降低了 Web代理 服務(wù)器的系統(tǒng)處理開(kāi)銷。通過(guò)以下參照附圖對(duì)優(yōu)選實(shí)施例的說(shuō)明,本發(fā)明的上述以及其它目的、 特征和優(yōu)點(diǎn)將更加明顯。
圖1為SSL VPN技術(shù)的原理示意圖;圖2為本發(fā)明所提供的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法一實(shí)施例的流程圖; 圖3A、 3B為本發(fā)明所提供方法中,虛實(shí)路徑映射表建立過(guò)程的流程圖;圖4為一虛實(shí)路徑映射表的圖示;圖5為本發(fā)明所提供方法中,按照虛實(shí)路徑映射表將域名虛擬URL改 寫(xiě)為域名真實(shí)URL的實(shí)施例的流程圖;圖6為本發(fā)明所提供的Web代理服務(wù)器一實(shí)施例的框圖;圖7為圖6所示映射單元一實(shí)施例的框圖;圖8A、 8B、 8C為URL改寫(xiě)單元一實(shí)施例的框圖。
具體實(shí)施方式
下面將詳細(xì)描述本發(fā)明的具體實(shí)施例。應(yīng)當(dāng)注意,這里描述的實(shí)施例只 用于舉例說(shuō)明,并不用于限制本發(fā)明。首先,必須說(shuō)明的是,本發(fā)明的實(shí)施例所提供的技術(shù)方案適用于內(nèi)網(wǎng)多 域名Web服務(wù)器,由Web代理服務(wù)器進(jìn)行URL改寫(xiě),包括對(duì)于外網(wǎng)用戶端 發(fā)送給內(nèi)網(wǎng)Web服務(wù)器的第二報(bào)文的處理,以及對(duì)于內(nèi)網(wǎng)Web服務(wù)器發(fā)送 給外網(wǎng)用戶端的第一報(bào)文的處理。以下描述以SSL VPN網(wǎng)關(guān)為例,當(dāng)SSL VPN網(wǎng)關(guān)作為Web代理服務(wù)器時(shí),第一報(bào)文為HTTP報(bào)文,第二報(bào)文為 HTTPs報(bào)文。其中,本發(fā)明實(shí)施例所提供的技術(shù)方案的改進(jìn)之處主要體現(xiàn)在第一報(bào)文 (以HTTP報(bào)文為例)完全路徑改寫(xiě)方面。所謂"完全路徑",是指包含協(xié)議、主機(jī)名和路徑的鏈接的形式;在現(xiàn) 有技術(shù)中,對(duì)于HTTP報(bào)文所包含的全部完全路徑都要進(jìn)行虛擬路徑的改寫(xiě), 這不但要求對(duì)每一個(gè)域名都預(yù)先進(jìn)行映射,而且由于査找內(nèi)網(wǎng)地址對(duì)應(yīng)的虛 擬路徑是比較耗時(shí)的操作,因此在分析HTTP報(bào)文時(shí)直接進(jìn)行虛擬路徑的改 寫(xiě)會(huì)造成大量時(shí)間的浪費(fèi)。本發(fā)明實(shí)施例所提供的技術(shù)方案主要針對(duì)克服這 一點(diǎn)問(wèn)題而提出。與"完全路徑"相對(duì)應(yīng)的,還有"不完全的絕對(duì)路徑"和"不完全的相 對(duì)路徑"。所謂"不完全的絕對(duì)路徑",是指HTTP報(bào)文中不包含傳輸協(xié)議和主機(jī) 地址,只包含相對(duì)于本服務(wù)器根目錄絕對(duì)路徑的鏈接;具體的,路徑開(kāi)頭的 "/"表示根目錄,后面的內(nèi)容說(shuō)明了所要訪問(wèn)的目錄和頁(yè)面;由于不包含 傳輸協(xié)議和主機(jī)地址,則默認(rèn)使用當(dāng)前頁(yè)面的傳輸協(xié)議和源主機(jī);例如, "/abc/789,htm", 7abc/efg/lmn.htm"等;由于不完全的絕對(duì)路徑指向的是Web 服務(wù)器上的一個(gè)固定目錄,而非Web代理服務(wù)器上的虛擬目錄,因此如果用 戶直接向網(wǎng)關(guān)請(qǐng)求這樣的路徑,Web代理服務(wù)器無(wú)法找到對(duì)應(yīng)的服務(wù)器資 源,因此在現(xiàn)有技術(shù)中,對(duì)不完全的絕對(duì)路徑需要進(jìn)行改寫(xiě),具體為在該不完全的絕對(duì)路徑之前添加相應(yīng)的虛擬路徑目錄,本發(fā)明實(shí)施例沿用這一思 想。所謂"不完全的相對(duì)路徑",即與不完全的絕對(duì)路徑相比,HTTP報(bào)文 中所包含的路徑不是網(wǎng)站的根目錄,而是相對(duì)于當(dāng)前網(wǎng)頁(yè)的路徑;具體的, 路徑開(kāi)頭的表示當(dāng)前頁(yè)面的父目錄,例如,若當(dāng)前頁(yè)面的路徑為 "/portal/Home/index,htm ",貝U " ../Login "表示的路徑就是 "/portal/Home/Login"。顯然,其指向的仍是Web代理服務(wù)器的虛擬路徑, 因此無(wú)需改寫(xiě),本發(fā)明實(shí)施例沿用這一思想。另外需要說(shuō)明的是,本發(fā)明實(shí)施例所涉及的域名真實(shí)URL和域名虛擬 URL屬于完全路徑中主域名/子域名部分,而非完全路徑和虛擬路徑的全部。 舉伊J來(lái)說(shuō),url=http:〃www.domain.com/dir/path/page. htm params是一個(gè)完全 路徑,其域名真實(shí)URL為www.domain.com ; 相應(yīng)的,<a href= "/svpn/webl/123/a.htm"〉是一個(gè)虛擬路徑,其域名虛擬URL為"/svpn/webl "。本發(fā)明實(shí)施例的主要改進(jìn)之處在于,對(duì)于在實(shí)際的報(bào)文處理過(guò)程中對(duì)所 請(qǐng)求子域名進(jìn)行動(dòng)態(tài)映射,以及HTTP報(bào)文中涉及的完全路徑不直接進(jìn)行虛 擬路徑改寫(xiě),從而即保證用戶端Cookie的區(qū)分,也提高Web代理服務(wù)器的 處理效率。針對(duì)上述改進(jìn),本發(fā)明相應(yīng)提供了一種遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器的方法 和一種Web代理服務(wù)器,該遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器的方法適用于通過(guò)雙 向URL改寫(xiě)為處在外網(wǎng)的用戶端提供遠(yuǎn)程訪問(wèn)處在內(nèi)網(wǎng)的Web服務(wù)器的 Web代理服務(wù)器。請(qǐng)結(jié)合圖2,顯示了本發(fā)明所提供的遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器的方法一 實(shí)施例的流程圖,由Web代理服務(wù)器執(zhí)行以下步驟Sl、對(duì)于Web服務(wù)器發(fā)送給用戶端的第一報(bào)文(HTTP報(bào)文),執(zhí)行以下操作511、 解析該HTTP報(bào)文,該報(bào)文中可能包括完全路徑和不完全路徑;512、 對(duì)HTTP報(bào)文中包含的完全路徑進(jìn)行初始定向獲得鏈接; 由于只有Web代理服務(wù)器有公網(wǎng)地址,而內(nèi)網(wǎng)的Web服務(wù)器沒(méi)有公網(wǎng)地址,因此遠(yuǎn)程用戶端無(wú)法直接訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器,只能發(fā)送請(qǐng)求給Web 代理服務(wù)器,即Web服務(wù)器包含子域名真實(shí)URL的完全路徑并不能直接提供給用戶端?;谏鲜鰡?wèn)題,本步驟采取了初始定向的操作,即在HTTP報(bào)文分析時(shí) 不對(duì)完全路徑做任何改寫(xiě)和處理。較佳的,對(duì)頁(yè)面中包含的該完全路徑進(jìn)行初始定向的步驟可以包括將 該完全路徑改寫(xiě)為專有函數(shù)的參數(shù),該專有函數(shù)用于根據(jù)預(yù)先設(shè)置的模糊匹配策略進(jìn)行子域名與Web服務(wù)器主域名的匹配。舉侈!j來(lái)說(shuō),對(duì)于http:〃map.domain.com/dir/path/page.htm params, 可以 將其作為一個(gè)專有函數(shù)redirect.cgi的參數(shù),改寫(xiě)為/svpn/redirect.cgi, url-http:〃map.domain.com/dir/path/page.htm params。其中,redirect.cgi是Web 代理服務(wù)器上專門(mén)處理"完全路徑"改寫(xiě)的CGI ( Common Gateway Interface , 通用網(wǎng)關(guān)接口)函數(shù),如果用戶點(diǎn)擊了改寫(xiě)后的初始定向完全路徑,則會(huì)向 Web代理服務(wù)器發(fā)出redirectcgi請(qǐng)求,交給CGI進(jìn)行后續(xù)處理。可以看出,Web服務(wù)器往往包括大量的子域名,如果Web代理服務(wù)器 在初始化過(guò)程中時(shí)就直接對(duì)全部的子域名進(jìn)行虛擬URL的映射,會(huì)造成網(wǎng) 關(guān)計(jì)算資源的浪費(fèi),因此本發(fā)明實(shí)施例所提供的方法能夠降低系統(tǒng)處理開(kāi) 銷,這是本發(fā)明的一個(gè)優(yōu)勢(shì)。本發(fā)明的另一個(gè)優(yōu)勢(shì)在于,由于在一個(gè)HTTP頁(yè)面中,往往包含指向多 個(gè)域名(可能是主域名,也可能是子域名)的鏈接,且這些域名未必會(huì)被用 到,因此僅對(duì)頁(yè)面中的完全路徑進(jìn)行初始定向,而不進(jìn)行進(jìn)一步的分析和處 理,能夠有效地提高Web代理服務(wù)器的處理效率。此外,本步驟S12還可以包括對(duì)HTTP報(bào)文中所包含的不完全路徑進(jìn) 行URL改寫(xiě),使改寫(xiě)后的鏈接指向包括指定格式域名虛擬URL的虛擬路徑; 具體的當(dāng)Web代理服務(wù)器網(wǎng)關(guān)建立了與Web服務(wù)器和外網(wǎng)用戶端的連接(SSL VPN網(wǎng)關(guān)作為Web代理服務(wù)器的情況下為T(mén)CP連接和SSL連接)后,其網(wǎng) 關(guān)內(nèi)部就記錄和管理著各連接的對(duì)應(yīng)關(guān)系;對(duì)于 不完全的絕對(duì)路徑來(lái)說(shuō),其提供的是相對(duì)于該Web服務(wù)器域名根 目錄的路徑,因此需要在不完全的絕對(duì)路徑之前根據(jù)各連接的對(duì)應(yīng)關(guān)系,自 動(dòng)添加相應(yīng)的域名虛擬URL,使其成為一個(gè)完整的虛擬路徑,即改寫(xiě)后該不 完全的絕對(duì)路徑指向包括指定域名虛擬URL的虛擬路徑;對(duì)于不完全的相對(duì)路徑來(lái)說(shuō),其提供的是相對(duì)于當(dāng)前頁(yè)面的路徑,由于當(dāng)前頁(yè)面在Web代理服務(wù)器內(nèi)已經(jīng)指向確定的虛擬路徑,因此無(wú)需改寫(xiě),只要保持該不完全的相對(duì)路徑不變即可指向正確地虛擬路徑。由于上述對(duì)于不完全路徑的改寫(xiě)可沿用現(xiàn)有技術(shù),因此不再贅述。 S13、將處理后的HTTP報(bào)文發(fā)送給用戶端,該處理包括初始定向處理,同時(shí),還可以包括URL改寫(xiě)。S2、對(duì)于用戶端發(fā)送給Web服務(wù)器的第二報(bào)文(HTTPs報(bào)文),執(zhí)行以下步驟521、 對(duì)其所請(qǐng)求的鏈接加以識(shí)別,基于識(shí)別結(jié)果分別執(zhí)行步驟S22和 步驟S23;用戶端所請(qǐng)求的鏈接則可能是初始定向的完全路徑或者虛擬路徑。上述 兩種情況將被區(qū)分處理。522、 如果該鏈接指向包括指定格式域名虛擬URL的虛擬路徑,則按照 虛實(shí)路徑映射表進(jìn)行改寫(xiě),具體為將其中的域名虛擬URL改寫(xiě)為域名真實(shí) URL,并提供給Web服務(wù)器;具體來(lái)說(shuō),包括指定格式域名虛擬URL的虛擬路徑可能分為兩種一 種,是用戶端點(diǎn)擊HTTP頁(yè)面所請(qǐng)求的虛擬路徑;另一種,是用戶端請(qǐng)求 Web代理服務(wù)器初始化后提供的包括每一 Web服務(wù)器主域名的虛擬路徑。對(duì)于第二種情況說(shuō)明如下該Web服務(wù)器主域名預(yù)先被指定。舉例來(lái)說(shuō),如果一個(gè)Web服務(wù)器同 時(shí)提供有www.abc.com, map.abc.com, image.abc.com等等域名,夷卩么在初始 化階段并不需要對(duì)每一個(gè)域名都進(jìn)行虛擬URL的映射,而是選擇一個(gè)主域 名, 一般來(lái)說(shuō),主域名就是Web服務(wù)器首頁(yè)所對(duì)應(yīng)的域名。在初始化時(shí),該Web服務(wù)器主域名的映射表項(xiàng)被添加到虛實(shí)路徑映射表 中,可以包括域名真實(shí)URL和映射為指定格式的域名虛擬URL,且該域名 虛擬URL和域名真實(shí)URL—一對(duì)應(yīng);以上述提到的主域名為例,就是對(duì)域 名www.abc.com進(jìn)行映射,并將該映射添加到虛實(shí)路徑映射表中,從而能夠 實(shí)現(xiàn)用戶端的訪問(wèn)。這也就意味著,Web代理服務(wù)器提供給用戶端的域名資 源中,凡是完全路徑中www.abc.com的部分,都被映射為域名虛擬URL, 當(dāng)然,完全路徑中的其他部分不變;以所有的鏈接都映射到Web代理服務(wù)器17的"/svpn/"目錄下為例,假設(shè)Web服務(wù)器1的主域名為http:〃www.abc.com, 其映射的域名虛擬URL為webl,假設(shè)Web服務(wù)器2的主域名為 http://www.efg.com,其映射的域名虛擬URL為web2,假設(shè)Web服務(wù)器3 的主域名為http:〃www.hij.com,其映射的域名虛擬URL為web3;則Web代理服務(wù)器中所維持的虛實(shí)路徑映射表可如下例所示/svpn/webl <----> http://www.abc.com/svpn/web2 <----〉 http://www.efg.com/svpn/web3 <----> http://www hij com這樣,當(dāng)用戶通過(guò)外網(wǎng)用戶端的Web瀏覽器,使用HTTPs協(xié)議登錄 Web代理服務(wù)器時(shí),就能夠獲得一張初始化的、允許訪問(wèn)的Web站點(diǎn)列表, 該列表中的全部鏈接都指向所請(qǐng)求的內(nèi)網(wǎng)Web服務(wù)器主域名。因此,作為用戶端的主機(jī)能夠了解所允許訪問(wèn)的Web服務(wù)器主域名的相 關(guān)鏈接。如果用戶點(diǎn)擊這些URL鏈接,遠(yuǎn)程用戶端就會(huì)與Web代理服務(wù)器 建立SSL鏈接,并發(fā)出一個(gè)指向該虛擬鏈接的HTTPs報(bào)文。例如,GET /svpn/webl/xyz HTTP/1.1 Host: X丄X.X其中,"X.X.X.X"是Web代理服務(wù)器的地址或域名,GET后面跟的是 Web頁(yè)面所在的虛擬鏈接完全路徑。"HTTP/1.1 "是協(xié)議的版本。關(guān)于HTTPs 報(bào)文的詳細(xì)說(shuō)明請(qǐng)見(jiàn)RFC2616。無(wú)論是用戶端點(diǎn)擊初始化列表的鏈接,還是點(diǎn)擊HTTP報(bào)文中提供的鏈 接,都會(huì)向Web代理服務(wù)器發(fā)送關(guān)于虛擬路徑的請(qǐng)求,由其按照虛實(shí)路徑映 射表進(jìn)行改寫(xiě);例如,上述提供的域名虛擬URL為/svpn/webl的HTTPs報(bào)文可以修改為GET /xyz/ HTTP/1.1 Host: www.abc.com 艮P,轉(zhuǎn)換過(guò)的請(qǐng)求將發(fā)往Web服務(wù)器"www.abc.com",請(qǐng)求"/xyz/"目錄下的頁(yè)面。進(jìn)一步的,本步驟S22中按照虛實(shí)路徑映射表進(jìn)行改寫(xiě)的較佳實(shí)施例將 結(jié)合本發(fā)明實(shí)施例提供的虛實(shí)路徑映射表的建立和査找過(guò)程,在后續(xù)的實(shí)施例中加以詳細(xì)描述。523、 如果該鏈接徑為初始定向的完全路徑,則從中提取相應(yīng)的域名并識(shí)別其是否存在于虛實(shí)路徑映射表中;以及,基于識(shí)別結(jié)果分別執(zhí)行步驟S24 和步驟S25;需要指出,由于Web服務(wù)器發(fā)送給用戶端的HTTP報(bào)文包括的完全路 徑可能是主域名的完全路徑,也可能是子域名的完全路徑,Web代理服務(wù)器 并不做分析和處理,因此本步驟提取出的域名可能是主域名,也可能是子域 名。524、 是則,說(shuō)明該主域名或子域名已經(jīng)進(jìn)行過(guò)虛擬URL的映射,因此 需要提取虛實(shí)路徑映射表中匹配的域名虛擬URL改寫(xiě)該完全路徑為虛擬路 徑,并進(jìn)行從用戶端到該虛擬路徑的重定向;重定向的用戶端將重新按照定向后的域名虛擬URL發(fā)出請(qǐng)求,并調(diào)用 該域名虛擬URL相關(guān)的Cookie,從而保證了不同域名對(duì)應(yīng)不同的Cookie記 錄。525、 否則,說(shuō)明該域名未進(jìn)行過(guò)虛擬URL的映射,因此該域名必然為 子域名,則根據(jù)預(yù)先設(shè)置的模糊匹配策略將子域名與主域名進(jìn)行匹配;以及, 基于匹配的結(jié)果分別執(zhí)行步驟S26和步驟S27;其中,該預(yù)先設(shè)置的模糊匹配策略是用以說(shuō)明什么樣的域名也屬于該 Web服務(wù)器。例如,配置一條訪問(wèn)abc網(wǎng)站的Web資源,其主地址為 www.abc.com,立占點(diǎn)匹酉己夫見(jiàn)貝ll為*.abc.com。則步驟S25以上述提供的redirect.cgi為例,執(zhí)行如下CGI從URL參 數(shù)中提取原來(lái)的"頁(yè)面請(qǐng)求",即真實(shí)的完全路徑;從該完全路徑中提取子 域名真實(shí)URL;將該真實(shí)URL與系統(tǒng)中各Web資源的主域名基于模糊匹配 策略進(jìn)行匹配,確定該請(qǐng)求是否有效。526、 在匹配的情況下,說(shuō)明該HTTPs請(qǐng)求有效,則將該子域名映射為 指定格式的域名虛擬URL;用該域名虛擬URL改寫(xiě)該完全路徑為虛擬路徑,并進(jìn)行用戶端到子域 名的指定格式的域名虛擬URL的重定向,重定向的用戶端不再以網(wǎng)關(guān)地址 作為根目錄,而是具有唯一的虛擬路徑,即按照重定向后的包括域名虛擬 URL的虛擬路徑發(fā)出請(qǐng)求,并相應(yīng)生成該域名虛擬URL的Cookie;顯然,再次發(fā)出的HTTPs請(qǐng)求中就包含有指定格式的域名虛擬URL,直接按照步 驟S22進(jìn)行處理即可;以及,添加相應(yīng)的子域名映射表項(xiàng)到虛實(shí)路徑映射表中,該表項(xiàng)可以包 括一一對(duì)應(yīng)的域名虛擬URL和域名真實(shí)URL,以供后續(xù)的比對(duì)。S27、在不匹配的情況下,說(shuō)明該HTTPs請(qǐng)求無(wú)效,則拒絕訪問(wèn)??梢钥闯?,本發(fā)明實(shí)施例所提供的遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)服務(wù)器的方法的再一優(yōu) 勢(shì)在于,能夠根據(jù)用戶端的實(shí)際請(qǐng)求,動(dòng)態(tài)進(jìn)行域名虛擬URL的映射,使 被請(qǐng)求的子域名具有唯一的虛擬鏈接,從而用戶端主機(jī)上能夠在后續(xù)的處理 中實(shí)現(xiàn)Cookie的區(qū)分。較佳的,上述步驟S2中進(jìn)行用戶端到虛擬路徑重定向的步驟可以包括: 向用戶端發(fā)送重定向報(bào)文,該報(bào)文攜帶包括所映射的指定格式域名虛擬URL 的虛擬路徑。通過(guò)上述步驟S1 S2,本發(fā)明實(shí)施例所提供的遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器 的方法配置建立主域名的域名虛擬URL,動(dòng)態(tài)建立子域名的域名虛擬URL, 能夠?qū)崿F(xiàn)模糊站點(diǎn)不同域名的區(qū)分改寫(xiě),避免了用戶端的Cookie混淆;以及, 提高了 Web代理服務(wù)器的處理效率和降低了 Web代理服務(wù)器處理開(kāi)銷。需要指出的是,在實(shí)際處理中,步驟S1和S2并無(wú)嚴(yán)格的時(shí)序關(guān)系,可 能并發(fā)處理多個(gè)請(qǐng)求。本發(fā)明實(shí)施例所要解決的另外一個(gè)問(wèn)題在于,虛實(shí)路徑映射表的查找往 往是比較耗時(shí)的操作;如果按照傳統(tǒng)的技術(shù)方案,對(duì)每一個(gè)子域名都在初始 化階段建立虛擬映射,那么還可以預(yù)設(shè)映射規(guī)律以便于査找,但對(duì)本發(fā)明所 提供的技術(shù)方案而言,由于子域名的URL映射是動(dòng)態(tài)建立的,因此無(wú)法預(yù) 留相應(yīng)的URL資源,這樣,如何有效的進(jìn)行虛實(shí)路徑映射表的査找也就成 為愈加值得注意的問(wèn)題。為了解決上述問(wèn)題,本發(fā)明提供了一種新的域名虛擬URL格式,并相 應(yīng)提供了將主域名或子域名映射為指定格式的域名虛擬URL的具體方案如 下首先,為所述主域名或子域名分配資源ID,所述資源ID與所述主域名 或子域名唯一對(duì)應(yīng),從而避免虛擬URL鏈接過(guò)長(zhǎng)所導(dǎo)致的傳輸效率降低; 將所述分配的資源ID映射到Web代理服務(wù)器指定目錄下。假設(shè)在Web代理服務(wù)器上將所有的虛擬URL都映射到"/svpn/"目錄 下,則所映射的域名虛擬URL格式為"/svpn/resID/" , resID為資源ID; 則在實(shí)際改寫(xiě)過(guò)程中,就使用該域名虛擬URL替換完全路徑中相應(yīng)的域名 真實(shí)URL部分,如采用相應(yīng)的域名虛擬URL替換完全路徑中的 http:〃www.abc.com或者h(yuǎn)ttp:〃map.abc.com部分。較佳的,該資源ID可以為數(shù)字ID,有利于査找和匹配。具體的,為主域名或子域名分配資源ID的步驟可以包括至少為所述主域名或子域名分配主索引字段和子索引字段;其中,為不 同Web服務(wù)器的主域名資源ID分配不同的主索引字段,為同一 Web服務(wù)器 的子域名資源ID分配與其主域名相同的主索引字段和不同的子索引字段;因此,子域名ID的分配規(guī)則可以為子域名資源10=主域名的資源10 + 子索引字段值,例如,當(dāng)主域名資源ID為A0100,子索引字段之為Ol,則 子域名資源ID就可以生成為A0101 。更佳的,還包括為主域名或子域名分配失效標(biāo)識(shí)字段;其中,隨機(jī)賦值 主域名資源ID的失效標(biāo)識(shí)字段,按照其主域名資源ID的失效標(biāo)識(shí)字段賦值 子域名資源ID的失效標(biāo)識(shí)字段。下面通過(guò)一個(gè)具體實(shí)施例加以說(shuō)明給每個(gè)Web服務(wù)器需要進(jìn)行虛擬 URL映射的域名分配一個(gè)32位的資源ID,資源ID的編碼格式如下resID = Random(12bit)+Index(12bit)+Sublndex(8bit);其中,resID為資源ID,其對(duì)應(yīng)唯一的一個(gè)域名,可能是Web服務(wù)器的 主域名,也可能是Web服務(wù)器符合模糊匹配策略的子域名,用以唯一標(biāo)識(shí)該 域名;Index為主索引字段,對(duì)于符合同一模糊匹配策略的一組域名,其虛擬 URL將具有相同的主索引字段。這樣,通過(guò)主索引表項(xiàng)査找,可以基于某種 算法(如HASH算法)快速找到相應(yīng)的虛擬URL;Sublndex為子索引字段,代表符合同一模糊匹配策略的分項(xiàng);舉例來(lái)說(shuō), 子索引字段為O時(shí)對(duì)應(yīng)的是主域名,不為0時(shí),代表子域名;Random為隨機(jī)數(shù),用來(lái)避免對(duì)已經(jīng)失效的資源ID再進(jìn)行引用;舉例來(lái) 說(shuō),如果在用戶端訪問(wèn)過(guò)程中管理員刪除了相關(guān)的映射表項(xiàng),并立刻重建, 則有可能該映射表項(xiàng)釋放出來(lái)的主索引字段和子索引字段將被新的資源表項(xiàng)重用。但即使如此,由于失效標(biāo)識(shí)字段是隨機(jī)分配的,能夠?qū)崿F(xiàn)新舊資源 表項(xiàng)的區(qū)分,使用戶端能夠根據(jù)新的訪問(wèn)資源列表重新登錄。這種新的URL格式同時(shí)帶來(lái)了虛實(shí)路徑映射表建立和査找過(guò)程的變化, 如下所述。首先是虛實(shí)路徑映射表建立過(guò)程的變化,請(qǐng)參考圖3A和圖3B:步驟S2中添加相應(yīng)的主域名映射表項(xiàng)到虛實(shí)路徑映射表中的步驟如圖 3A所示,可以包括以二維表的形式建立上級(jí)虛實(shí)路徑映射表,每一二維表項(xiàng)作為一主域名 表項(xiàng),用于記錄一主域名的URL映射,其中,每一主域名表項(xiàng)可以包括主 索引項(xiàng)、資源ID項(xiàng)、域名虛擬URL項(xiàng)、域名真實(shí)URL項(xiàng)和關(guān)聯(lián)指針項(xiàng);將該主域名對(duì)應(yīng)的主索引字段、資源ID、域名虛擬URL和域名真實(shí)URL 相應(yīng)添加到主索引項(xiàng)、資源ID項(xiàng)、域名虛擬URL項(xiàng)、域名真實(shí)URL項(xiàng)中;如圖4所示,對(duì)于域名真實(shí)URL為http:〃www.abc.com的主域名來(lái)說(shuō), 其資源ID為0xA8500100,主索引為OOl,子索引為保留字段OO, A85為失 效標(biāo)識(shí)字段;對(duì)于域名真實(shí)URL為http://www.efg.com的主域名來(lái)說(shuō),其資源ID為 0xBCD00200,主索引為002,子索引為保留字段OO, BCD為失效標(biāo)識(shí)字段;對(duì)于域名真實(shí)URL為http://www.hij.com的主域名來(lái)說(shuō),其資源ID為 0xEF900300,主索引為003,子索引為保留字段OO, EF9為失效標(biāo)識(shí)字段。步驟S2中添加相應(yīng)的子域名映射表項(xiàng)到虛實(shí)路徑映射表中的步驟如圖 3B所示,包括識(shí)別相應(yīng)主域名表項(xiàng)是否關(guān)聯(lián)有下級(jí)虛實(shí)路徑映射表;如果未關(guān)聯(lián),則以二維表的形式建立下級(jí)虛實(shí)路徑映射表,每一二維表 項(xiàng)作為一子域名表項(xiàng),用于記錄一子域名的URL映射,其中,每一子域名 表項(xiàng)可以包括子索引項(xiàng)、域名虛擬URL項(xiàng)和域名真實(shí)URL項(xiàng);將子域名對(duì)應(yīng)的子索引字段、域名虛擬URL和域名真實(shí)URL相應(yīng)添加 到子索引項(xiàng)、虛擬URL項(xiàng)和真實(shí)URL項(xiàng);以及,將該下級(jí)虛實(shí)路徑映射表通過(guò)指針關(guān)聯(lián)到上級(jí)虛實(shí)路徑映射表中 相應(yīng)的關(guān)聯(lián)指針項(xiàng);如果已關(guān)聯(lián),則直接在所關(guān)聯(lián)的下級(jí)虛實(shí)路徑映射表中添加子域名表項(xiàng),即將子域名對(duì)映的子索引字段、域名虛擬URL和域名真實(shí)URL相應(yīng)添 加到子索引項(xiàng)、域名虛擬URL項(xiàng)和域名真實(shí)URL項(xiàng)。如圖4所示,對(duì)于域名真實(shí)URL為http:〃img.abc.com、http:〃map,abc.com、 http://song.abc.com的子域名來(lái)說(shuō),其子索引分別為Ol、 02和03,主索引字 段和失效標(biāo)識(shí)字段保持與主域名一致。這樣,無(wú)論所擴(kuò)展進(jìn)行URL映射的子域名的數(shù)目如何,其都能夠獲得 規(guī)律性的虛擬URL,并通過(guò)二級(jí)虛實(shí)路徑映射表加以記錄。其優(yōu)勢(shì)不僅如此,上述新的URL格式和虛實(shí)路徑映射表建立過(guò)程的特 點(diǎn)也帶來(lái)了 URL改寫(xiě)過(guò)程中虛實(shí)路徑映射表查找過(guò)程的變化。如圖5所示,步驟S22中按照所述虛實(shí)路徑映射表進(jìn)行改寫(xiě)的步驟可以 包括5221、 從虛擬路徑所包含的域名虛擬URL中提取資源ID,如 0xA8500100或0x8500101;5222、 根據(jù)該資源ID的主索引字段,如OOl,在上級(jí)虛實(shí)路徑映射表 的主索引項(xiàng)中執(zhí)行匹配;匹配成功,則執(zhí)行步驟S223,否則拒絕訪問(wèn);5223、 識(shí)別虛擬URL的子索引字段是否為保留字段,是則,例如OO, 執(zhí)行步驟S224,否則,例如Ol,執(zhí)行步驟S225;5224、 調(diào)用主索引項(xiàng)相應(yīng)的域名真實(shí)URL項(xiàng),如www.abc.com,用該 域名真實(shí)URL進(jìn)行虛擬路徑中指定格式的域名虛擬URL, S卩,將虛擬路徑 中的"/svpn/A8500100"改寫(xiě)為"www.abc.com";5225、 根據(jù)虛擬URL的子索引字段在所關(guān)聯(lián)的下級(jí)虛實(shí)路徑映射表的 子索引項(xiàng)中執(zhí)行匹配,匹配成功,則執(zhí)行步驟S226,否則拒絕訪問(wèn);S226 、調(diào)用所述子索引項(xiàng)相應(yīng)的域名真實(shí)URL項(xiàng),,如 http://img.abc.com,用該域名真實(shí)URL進(jìn)行虛擬路徑中指定格式的域名虛擬 URL,艮卩,將虛擬路徑中的"/svpn/A8500101"改寫(xiě)為"http:〃img.abc.com"??梢钥闯?,上述虛實(shí)路徑映射表能夠?qū)崿F(xiàn)快速的査找。較佳的,在存在失效標(biāo)識(shí)字段時(shí),步驟S223之前還可以包括比較域 名虛擬URL的資源ID與資源ID項(xiàng)中保存的資源ID,如果失效標(biāo)識(shí)字段一 致則繼續(xù)執(zhí)行步驟S223,否則拒絕訪問(wèn)。通過(guò)上述步驟,可以避免已失效資源ID被引用。因此,通過(guò)失效標(biāo)識(shí)字段系統(tǒng)識(shí)別出資源ID是否有效,無(wú)需管理員實(shí)時(shí)監(jiān)控自員有效性,因此 可以盡可能的減少虛實(shí)路徑映射表所需的維護(hù)工作。綜上所述,本發(fā)明所提供的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,不但能夠?qū)崿F(xiàn) 模糊站點(diǎn)在用戶端的Cookie區(qū)分,提高了系統(tǒng)處理效率;而且,結(jié)合所提供 的指定格式的虛擬URL和二級(jí)虛實(shí)路徑映射表,能夠帶來(lái)處理效率的進(jìn)一步提咼o本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟 可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀 取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括如下步驟51、 對(duì)于所述Web服務(wù)器發(fā)送給所述用戶端的第一報(bào)文,對(duì)其所包含 的完全路徑進(jìn)行初始定向獲得鏈接;52、 對(duì)于所述用戶端發(fā)送給所述Web服務(wù)器的第二報(bào)文,對(duì)其所請(qǐng)求 的鏈接加以識(shí)別;如果所述鏈接指向包括指定格式域名虛擬URL的虛擬路徑,則按照虛 實(shí)路徑映射表改寫(xiě)所述虛擬路徑為包括域名真實(shí)URL的完全路徑;其中, 所述虛實(shí)路徑映射表在初始化時(shí)添加每一所述Web服務(wù)器主域名的映射表 項(xiàng),所述映射表項(xiàng)包括域名真實(shí)URL和映射為指定格式的域名虛擬URL, 且所述域名虛擬URL和域名真實(shí)URL —一對(duì)應(yīng);如果所述鏈接為初始定向的完全路徑,則從中提取相應(yīng)的域名并識(shí)別其 是否存在于所述虛實(shí)路徑映射表中;是則,提取虛實(shí)路徑映射表中匹配的域名虛擬URL改寫(xiě)所述完全路徑 為虛擬路徑,并進(jìn)行所述用戶端到所述虛擬路徑的重定向;否則,所述域名為子域名,則根據(jù)預(yù)先設(shè)置的模糊匹配策略將所述子域 名與主域名進(jìn)行匹配,在匹配的情況下將所述子域名映射為指定格式的域名 虛擬URL并用其改寫(xiě)所述完全路徑為虛擬路徑,進(jìn)行所述用戶端到所述虛 擬路徑的重定向,以及,添加相應(yīng)的子域名映射表項(xiàng)到虛實(shí)路徑映射表中。所述的存儲(chǔ)介質(zhì)包括ROM/RAM (Read Only Memory/Random-Access Memory,只讀存儲(chǔ)器/隨機(jī)訪問(wèn)內(nèi)存)、磁碟或者光盤(pán)等。以下僅就實(shí)現(xiàn)重定向的方法舉一例,說(shuō)明實(shí)現(xiàn)的可行性HTTP/1.1 307 Temporary RedirectServer: SSL VPN PROXYLocation: https:〃192.168.111. 88/svpn/A8500101/images/ed一word.gif Pragma: no-cache Cache—Control: no—cache Content-Type: text/html Content-!Length: 278<HTML><HEAD><METAHTTP-EQUIV="REFRESH" C〇NTENT="0; URL=httpS://192.168.111.88/svpn/A8500101/images/ed—word.gif"XT工TLE〉SSL VPN PROXY </TITLE></HEAD><B〇DY><A href=" https:〃192.168.111.88/svpn/A8500101/ images/ed—word.gif ">url moveci</A〉</B〇DY></HTML>在以上的處理中,采用HTTP協(xié)議的307號(hào)應(yīng)答報(bào)文進(jìn)行重定向,具體 說(shuō)明見(jiàn)參考RFC2616;同時(shí),附加了一個(gè)html重定向頁(yè)面,其中使用META 元素的HTTP-EQUIV屬性的refresh方法,要求用戶端按照指定的地址刷新 頁(yè)面,從而保證了在用戶端瀏覽器不支持307號(hào)報(bào)文時(shí),也能進(jìn)行重定向。相應(yīng)的,本發(fā)明的實(shí)施例還提供了一種Web代理服務(wù)器lO,該Web代 理服務(wù)器10用于通過(guò)雙向URL改寫(xiě)為處在外網(wǎng)的用戶端20提供遠(yuǎn)程訪問(wèn) 處在內(nèi)網(wǎng)的Web服務(wù)器30的功能。請(qǐng)參見(jiàn)圖6,該Web代理服務(wù)器10包括主域名保存單元101,用于保存所指定的每一 Web服務(wù)器30的主域名; 該主域名指定的操作發(fā)生于Web代理服務(wù)器10初始化配置Web資源時(shí),對(duì) 于作為模糊站點(diǎn)的Web服務(wù)器30, 一般指定其首頁(yè)地址為其主域名;策略保存單元102,用于保存預(yù)先設(shè)置的Web服務(wù)器30子域名的模糊 匹配策略,用以說(shuō)明什么樣的域名也屬于該Web服務(wù)器30;映射單元103,用于將域名映射為指定格式的虛名虛擬URL;舉例來(lái)說(shuō), 本發(fā)明實(shí)施例中映射單元103可以通過(guò)給每個(gè)Web服務(wù)器30的域名分配一 個(gè)32位的資源ID來(lái)進(jìn)行虛擬URL映射,該資源ID的編碼格式如下resID = Random(12bit)+Index(12bit)+Sublndex(8bit);假設(shè)在Web代理服務(wù)器10上將所有的虛擬URL都映射到"/svpn/"目 錄下,則所映射的虛擬URL格式為"/svpn/resID"。當(dāng)然,本領(lǐng)域普通技術(shù) 人員也可以通過(guò)指定其他格式的資源ID來(lái)進(jìn)行虛擬URL的映射。特別是,映射單元103與主域名保存單元101連接,用于在初始化階段將所述指定的主域名映射為指定格式的域名虛擬URL??梢钥闯?,初 始化時(shí)Web代理服務(wù)器10并不會(huì)對(duì)所有的Web服務(wù)器域名進(jìn)行URL映射, 而是對(duì)所指定的主域名加以映射,此時(shí)用戶端20所了解的網(wǎng)絡(luò)資源也僅限 于URL映射后的主域名。虛實(shí)路徑映射表單元104,與映射單元103連接,用于保存映射后的表 項(xiàng);其中,所述表項(xiàng)可以包括一一對(duì)應(yīng)的域名虛擬URL和域名真實(shí)URL; 顯然,在初始化階段,該虛實(shí)路徑映射表單元104中僅保存有主域名的表項(xiàng);URL改寫(xiě)單元105,與虛實(shí)路徑映射表單元104連接,用于識(shí)別接收到 的報(bào)文;對(duì)于Web服務(wù)器30發(fā)送給用戶端20的第一報(bào)文,對(duì)其所包含的完全路 徑觸發(fā)初始定向單元106;顯然,URL改寫(xiě)單元105并不對(duì)第一報(bào)文頁(yè)面中 的完全路徑進(jìn)行分析和改寫(xiě),從而提高處理效率。此外,URL改寫(xiě)單元105還可以對(duì)其所包含的不完全路徑進(jìn)行URL改 寫(xiě),使改寫(xiě)后的鏈接指向包括指定格式域名虛擬URL的虛擬路徑;對(duì)于用戶端20發(fā)送給Web服務(wù)器30的第二報(bào)文,對(duì)其所請(qǐng)求的鏈接加 以識(shí)別,有可能包括域名虛擬URL,也有可能是初始定向的完全路徑;如果該鏈接指向包括指定格式域名虛擬URL的虛擬路徑,則按照虛實(shí) 路徑映射表單元104改寫(xiě)該虛擬路徑為包括域名真實(shí)URL的完全路徑,并 發(fā)送給Web服務(wù)器30;如果該鏈接為初始定向的完全路徑,則從中提取相應(yīng)的域名并識(shí)別其是 否存在于虛實(shí)路徑映射表單元104中;是則,觸發(fā)重定向單元107,否則, 觸發(fā)模糊匹配單元108;綜上所述,URL改寫(xiě)單元105所處理的報(bào)文基本上可以分為三類用戶 端20發(fā)送的、指向包括指定格式域名虛擬URL在內(nèi)的虛擬路徑的第二報(bào)文, 用戶端20發(fā)送的、請(qǐng)求初始定向完全路徑的第二報(bào)文,以及,Web服務(wù)器 30發(fā)送的第一報(bào)文,URL改寫(xiě)單元105必須對(duì)其加以區(qū)分處理,相應(yīng)內(nèi)容 將在后續(xù)加以描述。初始定向單元106,與URL改寫(xiě)單元105連接,用于對(duì)完全路徑進(jìn)行初 始定向;本領(lǐng)域普通技術(shù)人員可以了解,這種初始定向并不是虛擬URL的映射,只不過(guò)是在Web服務(wù)器子域名的真實(shí)URL不能提供給用戶端的情況下,一 種虛擬URL的替代方案。同時(shí),本領(lǐng)域普通技術(shù)人員還可以了解,該初始定向的完全路徑可能包 含主域名,也可能包含子域名,初始定向單元106并不對(duì)其進(jìn)行分析和處理。較佳的,可以將真實(shí)URL改寫(xiě)為專有函數(shù)的參數(shù)。重定向單元107,接受URL改寫(xiě)單元105的觸發(fā)和映射單元103將子域 名映射為指定格式的域名虛擬URL時(shí)的觸發(fā),用于提取虛實(shí)路徑映射表中 匹配的域名虛擬URL改寫(xiě)所述完全路徑為虛擬路徑,并進(jìn)行用戶端到虛擬 路徑的重定向;這就保證了每個(gè)被請(qǐng)求的鏈接都能夠通過(guò)重定向,調(diào)用所包 含域名的Cookie 。模糊匹配單元108,與URL改寫(xiě)單元105和策略保存單元102連接,用 于接受URL改寫(xiě)單元105的觸發(fā),根據(jù)預(yù)先配置的模糊匹配策略將子域名 與主域名進(jìn)行匹配,匹配成功則說(shuō)明相應(yīng)的子域名是有效的,觸發(fā)映射單元 103將子域名映射為指定格式的域名虛擬URL。較佳的,該模糊匹配單元108可以為通用網(wǎng)關(guān)接口CGI,用于根據(jù)模糊 匹配策略進(jìn)行子域名與Web服務(wù)器主域名的匹配;與之配合的,初始定向單 元106執(zhí)行將完全路徑改寫(xiě)為CGI參數(shù)的操作。具體來(lái)說(shuō),URL改寫(xiě)單元105不進(jìn)行完全路徑的改寫(xiě),而由初始定向單 元106對(duì)于Web服務(wù)器30反饋?lái)?yè)面中涉及的完全路徑進(jìn)行初始定向,將該 完全路徑作為CGI的參數(shù);這樣,當(dāng)用戶端20請(qǐng)求該完全路徑時(shí),就發(fā)出 了相應(yīng)的CGI請(qǐng)求,由URL改寫(xiě)單元105識(shí)別,對(duì)于已經(jīng)映射的主域名或 者子域名,直接進(jìn)行重定向,調(diào)用相應(yīng)域名的Cookie,而對(duì)于未曾映射的子 域名,則需要交給模糊匹配單元108處理;模糊匹配單元108根據(jù)模糊匹配 策略,對(duì)真實(shí)URL進(jìn)行匹配,并在匹配成功的情況下觸發(fā)映射單元103為 子域名進(jìn)行指定格式的URL映射。由此可以看出,本發(fā)明實(shí)施例所提供的URL改寫(xiě)單元105是根據(jù)配置 建立主域名的域名虛擬URL,根據(jù)實(shí)際需求動(dòng)態(tài)映射子域名的域名虛擬 URL,映射單元103映射后的主域名和子域名虛擬URL都保存在虛實(shí)路徑 映射表單元104中,其中,該子域名的域名虛擬URL映射是Web代理服務(wù) 器10根據(jù)對(duì)第二報(bào)文的解析以及對(duì)子域名的模式匹配進(jìn)行的。因此,通過(guò)本發(fā)明實(shí)施例所提供的Web代理服務(wù)器lO,對(duì)于用戶端20 所請(qǐng)求的每一個(gè)主域名和子域名都賦予了單獨(dú)的域名虛擬URL,能夠?qū)崿F(xiàn)模 糊站點(diǎn)不同域名的區(qū)分改寫(xiě),避免了用戶端的Cookie混淆;以及,無(wú)需對(duì)未 加以請(qǐng)求的子域名進(jìn)行虛擬URL的映射,無(wú)需先行對(duì)HTTP頁(yè)面進(jìn)行完全 路徑的改寫(xiě),提高了 Web代理服務(wù)器的處理效率并降低了網(wǎng)關(guān)處理開(kāi)銷。較佳的,該Web代理服務(wù)器10可以為網(wǎng)關(guān),尤其是SSLVPN網(wǎng)關(guān)。這 種情形下,該SSLVPN網(wǎng)關(guān)與處在外網(wǎng)的用戶端建立SSL連接,與處在 內(nèi)網(wǎng)的Web服務(wù)器建立TCP連接,且第一報(bào)文為HTTP報(bào)文,第二報(bào)文 為HTTPs f艮文。較佳的,為了實(shí)現(xiàn)快速的虛實(shí)路徑映射表建立和査找,本發(fā)明實(shí)施例還 提供了域名虛擬URL映射方案。如圖7所示,顯示了映射單元103的一個(gè) 實(shí)施例,包括資源ID分配模塊1031,用于為主域名或子域名分配資源ID,所述資源 ID與所述主域名或子域名唯一對(duì)應(yīng);資源ID映射模塊1032,用于將所述分配的資源ID映射到Web代理服 務(wù)器10的指定目錄下。其中,資源ID分配模塊1031至少包括主索引字段分配子模塊,用于為主域名或子域名分配主索引字段,其中, 為不同Web服務(wù)器的主域名資源ID分配不同的主索引字段,為同一 Web 服務(wù)器的子域名資源ID分配與其主域名相同的主索引字段;子索引字段分配子模塊,用于為主域名或子域名分配子索引字段;其中, 為同一 Web服務(wù)器的子域名資源ID分配不同的子索引字段;較佳的,還包括失效標(biāo)識(shí)字段分配子模塊,用于為所述主域名或子域名分配失效標(biāo)識(shí)字 段;其中,隨機(jī)賦值所述主域名資源ID的失效標(biāo)識(shí)字段,按照其主域名資 源ID的失效標(biāo)識(shí)字段賦值所述子域名資源ID的失效標(biāo)識(shí)字段。該失效標(biāo)識(shí) 字段用于避免對(duì)失效域名ID的再引用?;谏鲜鲇成鋯卧?03提供的域名虛擬URL,本發(fā)明實(shí)施例提供了 Web 代理服務(wù)器10的虛實(shí)路徑映射表建立方案;具體的,虛實(shí)路徑映射表單元 104包括二維表形式的上級(jí)虛實(shí)路徑映射表,每一二維表項(xiàng)作為一主域名表項(xiàng),用于記錄一主域名的URL映射;其中,每一主域名表項(xiàng)可以包括主索引項(xiàng)、 資源ID項(xiàng)、域名虛擬URL項(xiàng)、域名真實(shí)URL項(xiàng)和關(guān)聯(lián)指針項(xiàng),用于相應(yīng) 添加主索引字段、資源ID、域名虛擬URL和域名真實(shí)URL和所關(guān)聯(lián)的到下 級(jí)虛實(shí)路徑映射表的指針;二維表形式的下級(jí)虛實(shí)路徑映射表,通過(guò)指針關(guān)聯(lián)到上級(jí)虛實(shí)路徑映射 表中相應(yīng)的關(guān)聯(lián)指針項(xiàng),且每一二維表項(xiàng)作為一子域名表項(xiàng),用于記錄一子 域名的URL映射;其中,每一子域名表項(xiàng)可以包括子索引項(xiàng)、域名虛擬URL 項(xiàng)和域名真實(shí)URL項(xiàng),用于相應(yīng)添加子索引字段、域名虛擬URL和域名真 實(shí)URL;虛實(shí)路徑映射表單元104的一個(gè)具體的實(shí)施例請(qǐng)參見(jiàn)圖4??梢钥闯觯瑹o(wú)論所需進(jìn)行URL映射的子域名的數(shù)目如何,其都能夠獲 得規(guī)律性的虛擬URL,并通過(guò)二級(jí)虛實(shí)路徑映射表加以記錄。相應(yīng)的,本發(fā)明實(shí)施例提供了 Web代理服務(wù)器10的虛實(shí)路徑映射表査 找方案,其具體體現(xiàn)在URL改寫(xiě)單元105上。首先,URL改寫(xiě)單元105需要識(shí)別不同的報(bào)文并加以區(qū)分處理,如圖 8A所示,該URL改寫(xiě)單元105包括報(bào)文識(shí)別模塊1051,用于識(shí)別接收到的報(bào)文,為用戶端20發(fā)送的第二 報(bào)文,則觸發(fā)第二報(bào)文改寫(xiě)模塊1052,為Web服務(wù)器30發(fā)送的第一報(bào)文, 則觸發(fā)第一報(bào)文改寫(xiě)模塊1053。第二報(bào)文改寫(xiě)模塊1052和第一報(bào)文改寫(xiě)模塊1053分別如圖8B和8C所不o具體的,第二報(bào)文改寫(xiě)模塊1052與上、下級(jí)虛實(shí)路徑映射表連接,包括鏈接識(shí)別子模塊,用于識(shí)別所述第二報(bào)文請(qǐng)求的鏈接,如果指向包括指 定格式域名虛擬URL的虛擬路徑,則觸發(fā)主索引字段匹配子模塊;如果為 初始定向的完全路徑,則觸發(fā)子域名識(shí)別單元;主索引字段匹配子模塊,用于根據(jù)指定格式的域名虛擬URL的主索引 字段在上級(jí)虛實(shí)路徑映射表的主索引項(xiàng)中執(zhí)行匹配;子索引字段識(shí)別子模塊,用于根據(jù)所述主索引字段匹配子模塊匹配成功的觸發(fā),進(jìn)行虛擬URL的子索引字段的識(shí)別;子索引字段匹配子模塊,用于根據(jù)子索引字段為非保留字段的情況下所述子索引字段識(shí)別子模塊的觸發(fā),根據(jù)域名虛擬URL的子索引字段在下級(jí) 虛實(shí)路徑映射表的子索引項(xiàng)中執(zhí)行匹配;虛擬URL改寫(xiě)子模塊,用于根據(jù)子索引字段為保留字段的情況下所述 子索引字段識(shí)別子模塊的觸發(fā),以及根據(jù)所述子索引字段匹配子模塊匹配成 功的觸發(fā),調(diào)用匹配成功的相應(yīng)域名真實(shí)URL項(xiàng),將虛擬路徑中指定格式 的域名虛擬URL部分改寫(xiě)為所述域名真實(shí)URL;子域名識(shí)別子模塊,用于從初始定向完全路徑中提取相應(yīng)的子域名并識(shí) 別其是否存在于所述上、下級(jí)虛實(shí)路徑映射表中,是則觸發(fā)重定向單元107, 否則觸發(fā)模糊匹配單元108。第一報(bào)文改寫(xiě)模塊1053包括報(bào)文解析子模塊,用于解析接收到的第一報(bào)文,對(duì)于其中的不完全路徑 觸發(fā)不完全URL改寫(xiě)子模塊,對(duì)于其中的完全路徑觸發(fā)初始定向單元106;不完全URL改寫(xiě)子模塊,用于識(shí)別所述不完全路徑,對(duì)于不完全的絕 對(duì)路徑,添加相應(yīng)的虛擬URL改寫(xiě)為虛擬路徑;對(duì)于不完全的相對(duì)路徑保 持不變,仍指向相應(yīng)虛擬路徑??梢钥闯?,本發(fā)明實(shí)施例所提供的Web代理服務(wù)器10能夠有效、快捷、 方便的建立和查找虛實(shí)路徑映射表。特別是,為了避免對(duì)己經(jīng)失效的資源ID再進(jìn)行引用,第二報(bào)文改寫(xiě)模 塊1052還包括資源ID比較子模塊,設(shè)置在主索引字段匹配子模塊和子索引字段識(shí)別 子模塊之間,用于根據(jù)主索引字段匹配子模塊匹配成功的觸發(fā),進(jìn)行指定格 式域名虛擬URL的資源ID與資源ID項(xiàng)中保存的資源ID的比較,并在失效 標(biāo)識(shí)字段一致的情況下觸發(fā)所述子索引字段識(shí)別子模塊。雖然已參照幾個(gè)典型實(shí)施例描述了本發(fā)明,但應(yīng)當(dāng)理解,所用的術(shù)語(yǔ)是 說(shuō)明和示例性、而非限制性的術(shù)語(yǔ)。由于本發(fā)明能夠以多種形式具體實(shí)施而 不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應(yīng)當(dāng)理解,上述實(shí)施例不限于任何前述的細(xì) 節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權(quán)利 要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán)利要求所涵蓋。
權(quán)利要求
1.一種遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器的方法,適用于通過(guò)雙向URL改寫(xiě)為處在外網(wǎng)的用戶端提供遠(yuǎn)程訪問(wèn)處在內(nèi)網(wǎng)的Web服務(wù)器功能的Web代理服務(wù)器;其特征在于,該Web代理服務(wù)器執(zhí)行以下步驟S1、對(duì)于所述Web服務(wù)器發(fā)送給所述用戶端的第一報(bào)文,對(duì)其所包含的完全路徑進(jìn)行初始定向獲得鏈接;S2、對(duì)于所述用戶端發(fā)送給所述Web服務(wù)器的第二報(bào)文,對(duì)其所請(qǐng)求的鏈接加以識(shí)別;如果所述鏈接指向包括指定格式域名虛擬URL的虛擬路徑,則按照虛實(shí)路徑映射表改寫(xiě)所述虛擬路徑為包括域名真實(shí)URL的完全路徑;其中,所述虛實(shí)路徑映射表在初始化時(shí)添加每一所述Web服務(wù)器主域名的映射表項(xiàng),所述映射表項(xiàng)包括域名真實(shí)URL和映射為指定格式的域名虛擬URL,且所述域名虛擬URL和域名真實(shí)URL一一對(duì)應(yīng);如果所述鏈接為初始定向的完全路徑,則從中提取相應(yīng)的域名并識(shí)別其是否存在于所述虛實(shí)路徑映射表中;是則,提取虛實(shí)路徑映射表中匹配的域名虛擬URL改寫(xiě)所述完全路徑為虛擬路徑,并進(jìn)行所述用戶端到所述虛擬路徑的重定向;否則,所述域名為子域名,則根據(jù)預(yù)先設(shè)置的模糊匹配策略將所述子域名與主域名進(jìn)行匹配,在匹配的情況下將所述子域名映射為指定格式的域名虛擬URL并用其改寫(xiě)所述完全路徑為虛擬路徑,進(jìn)行所述用戶端到所述虛擬路徑的重定向,以及,添加相應(yīng)的子域名映射表項(xiàng)到虛實(shí)路徑映射表中。
2. 根據(jù)權(quán)利要求1所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特征在于, 所述將主域名或子域名映射為指定格式的域名虛擬URL的步驟包括為所述主域名或子域名分配資源ID,所述資源ID與所述主域名或子 域名唯一對(duì)應(yīng);將所述分配的資源ID映射到Web代理服務(wù)器指定目錄下。
3. 根據(jù)權(quán)利要求2所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特征在于, 所述資源ID為數(shù)字ID。
4. 根據(jù)權(quán)利要求2所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特征在于, 所述為主域名或子域名分配資源ID的步驟包括-至少為所述主域名或子域名分配主索引字段和子索引字段;其中, 為不同Web服務(wù)器的主域名資源ID分配不同的主索引字段,為同一Web 服務(wù)器的子域名資源ID分配與其主域名相同的主索引字段和不同的子索 引字段;禾口/或還包括為所述主域名或子域名分配失效標(biāo)識(shí)字段;其中,隨機(jī)賦值 所述主域名資源ID的失效標(biāo)識(shí)字段,按照其主域名資源ID的失效標(biāo)識(shí) 字段賦值所述子域名資源ID的失效標(biāo)識(shí)字段。
5. 根據(jù)權(quán)利要求4所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特征在于, 所述步驟S2中添加主域名映射表項(xiàng)到虛實(shí)路徑映射表中的步驟包括以二維表的形式建立上級(jí)虛實(shí)路徑映射表,每一二維表項(xiàng)作為一主 域名表項(xiàng),用于記錄一主域名的URL映射,其中,每一主域名表項(xiàng)包括 主索引項(xiàng)、資源ID項(xiàng)、域名虛擬URL項(xiàng)、域名真實(shí)URL項(xiàng)和關(guān)聯(lián)指針 項(xiàng);將所述主域名對(duì)應(yīng)的主索引字段、資源ID、域名虛擬URL和域名真 實(shí)URL相應(yīng)添加到主索引項(xiàng)、資源ID項(xiàng)、域名虛擬URL項(xiàng)、域名真實(shí) URL項(xiàng)中;所述步驟S2中添加相應(yīng)的子域名映射表項(xiàng)到虛實(shí)路徑映射表中的步 驟包括識(shí)別相應(yīng)主域名表項(xiàng)是否關(guān)聯(lián)有下級(jí)虛實(shí)路徑映射表;如果未關(guān)聯(lián),則以二維表的形式建立下級(jí)虛實(shí)路徑映射表,每一二維表項(xiàng)作為一子域名表項(xiàng),用于記錄一子域名的URL映射,其中,每一 子域名表項(xiàng)包括子索引項(xiàng)、域名虛擬URL項(xiàng)和域名真實(shí)URL項(xiàng);將所述子域名對(duì)映的子索引字段、域名虛擬URL和域名真實(shí)URL 相應(yīng)添加到子索引項(xiàng)、域名虛擬URL項(xiàng)和域名真實(shí)URL項(xiàng);以及,將所述下級(jí)虛實(shí)路徑映射表通過(guò)指針關(guān)聯(lián)到上級(jí)虛實(shí)路徑映 射表中相應(yīng)的關(guān)聯(lián)指針項(xiàng);如果已關(guān)聯(lián),則直接在所關(guān)聯(lián)的下級(jí)虛實(shí)路徑映射表中添加所述子域名表項(xiàng)。
6. 根據(jù)權(quán)利要求5所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特征在于, 所述步驟S2中按照所述虛實(shí)路徑映射表改寫(xiě)虛擬路徑為包括域名真實(shí) URL的完全路徑的步驟包括5221、 從所述虛擬路徑所包含的域名虛擬URL中提取資源ID;5222、 根據(jù)該資源ID的主索引字段在所述上級(jí)虛實(shí)路徑映射表的主 索引項(xiàng)中執(zhí)行匹配;匹配成功,則執(zhí)行步驟S223,否則拒絕訪問(wèn);5223、 識(shí)別所述虛擬URL的子索引字段是否為保留字段,是則執(zhí)行 步驟S224,否則執(zhí)行步驟S225;5224、 調(diào)用所述主索引項(xiàng)相應(yīng)的域名真實(shí)URL項(xiàng),用所述域名真實(shí) URL進(jìn)行所述虛擬路徑中指定格式的域名虛擬URL的改寫(xiě);5225、 根據(jù)所述虛擬URL的子索引字段在所關(guān)聯(lián)的下級(jí)虛實(shí)路徑映 射表的子索引項(xiàng)中執(zhí)行匹配,匹配成功,則執(zhí)行步驟S226,否則拒絕訪 問(wèn);5226、 調(diào)用所述子索引項(xiàng)相應(yīng)的域名真實(shí)URL項(xiàng),用所述域名真實(shí) URL進(jìn)行虛擬路徑中指定格式的域名虛擬URL的改寫(xiě)。
7. 根據(jù)權(quán)利要求6所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特征在于, 所述步驟S223之前還包括比較域名虛擬URL的資源ID與資源ID項(xiàng)中保存的資源ID,如果失 效標(biāo)識(shí)字段一致則繼續(xù)執(zhí)行步驟S223,否則拒絕訪問(wèn)。
8. 根據(jù)權(quán)利要求1-4任一所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特 征在于,所述步驟S1包括解析所述第一報(bào)文;將所包含的完全路徑改寫(xiě)為專有函數(shù)的參數(shù),所述專有函數(shù)用于根 據(jù)所述預(yù)先設(shè)置的模糊匹配策略進(jìn)行子域名與Web服務(wù)器主域名的匹 配;識(shí)別所包含的不完全路徑,在不完全的絕對(duì)路徑之前添加相應(yīng)的域 名虛擬URL,保持不完全的相對(duì)路徑不變。
9. 根據(jù)權(quán)利要求1-4任一所述的遠(yuǎn)程訪問(wèn)Web服務(wù)器的方法,其特 征在于,所述步驟S2中進(jìn)行用戶端到虛擬路徑重定向的步驟包括向用戶端發(fā)送重定向報(bào)文,該報(bào)文攜帶包括所映射的指定格式域名虛擬URL 的虛擬路徑。
10.—種Web代理服務(wù)器,用于通過(guò)雙向URL改寫(xiě)為處在外網(wǎng)的用 戶端提供遠(yuǎn)程訪問(wèn)處在內(nèi)網(wǎng)的Web服務(wù)器的功能;其特征在于,包括: 主域名保存單元,用于保存所指定的每一所述Web服務(wù)器的主域名; 策略保存單元,用于保存預(yù)先設(shè)置的所述Web服務(wù)器子域名的模糊 匹配策略;映射單元,用于將域名映射為指定格式的域名虛擬URL;其中,所 述映射單元與所述主域名保存單元連接,用于在初始化階段將所述指定 的主域名映射為指定格式的域名虛擬URL;虛實(shí)路徑映射表單元,與所述映射單元連接,用于保存映射后的表 項(xiàng);其中,所述表項(xiàng)包括一一對(duì)應(yīng)的域名虛擬URL和域名真實(shí)URL;URL改寫(xiě)單元,與所述虛實(shí)路徑映射表單元連接,用于識(shí)別接收到 的報(bào)文;對(duì)于所述Web服務(wù)器發(fā)送給所述用戶端的第一報(bào)文,對(duì)其所包含的 完全路徑觸發(fā)初始定向單元;對(duì)于所述用戶端發(fā)送給所述Web服務(wù)器的第二報(bào)文,對(duì)其所請(qǐng)求的 鏈接加以識(shí)別;如果所述鏈接指向包括指定格式域名虛擬URL的虛擬路 徑,則按照所述虛實(shí)路徑映射表單元改寫(xiě)所述虛擬路徑為包括域名真實(shí) URL的完全路徑;如果所述鏈接為初始定向的完全路徑,則從中提取相 應(yīng)的域名并識(shí)別其是否存在于所述虛實(shí)路徑映射表單元中;是則,觸發(fā) 重定向單元,否則,所述域名為子域名,觸發(fā)模糊匹配單元;初始定向單元,與所述URL改寫(xiě)單元連接,用于對(duì)所述完全路徑進(jìn) 行初始定向;重定向單元,接受所述URL改寫(xiě)單元的觸發(fā)和所述映射單元將子域 名映射為指定格式的域名虛擬URL時(shí)的觸發(fā),用于提取虛實(shí)路徑映射表 中匹配的域名虛擬URL改寫(xiě)所述完全路徑為虛擬路徑,并進(jìn)行所述用戶 端到所述虛擬路徑的重定向;模糊匹配單元,與所述URL改寫(xiě)單元和策略保存單元連接,用于接 受所述URL改寫(xiě)單元的觸發(fā),根據(jù)所述預(yù)先設(shè)置的模糊匹配策略將所述子域名與主域名進(jìn)行匹配,匹配成功則觸發(fā)所述映射單元將所述子域名映射為指定格式的域名虛擬URL。
11. 根據(jù)權(quán)利要求IO所述的Web代理服務(wù)器,其特征在于,所述映 射單元包括資源ID分配模塊,用于為所述主域名或子域名分配資源ID,所述資 源ID與所述主域名或子域名唯一對(duì)應(yīng);資源ID映射模塊,用于將所述分配的資源ID映射到所述Web代理 服務(wù)器的指定目錄下。
12. 根據(jù)權(quán)利要求ll所述的Web代理服務(wù)器,其特征在于,所述資 源ID分配模塊至少包括主索引字段分配子模塊,用于為所述主域名或子域名分配主索引字 段,其中,為不同Web服務(wù)器的主域名資源ID分配不同的主索引字段, 為同一 Web服務(wù)器的子域名資源ID分配與其主域名相同的主索引字段;子索引字段分配子模塊,用于為所述主域名或子域名分配子索引字 段;其中,為同一 Web服務(wù)器的子域名資源ID分配不同的子索引字段;還包括失效標(biāo)識(shí)字段分配子模塊,用于為所述主域名或子域名分配失效標(biāo) 識(shí)字段;其中,隨機(jī)賦值所述主域名資源ID的失效標(biāo)識(shí)字段,按照其主 域名資源ID的失效標(biāo)識(shí)字段賦值所述子域名資源ID的失效標(biāo)識(shí)字段。
13. 根據(jù)權(quán)利要求10-12任一所述的Web代理服務(wù)器,其特征在于, 所述虛實(shí)路徑映射表單元包括二維表形式的上級(jí)虛實(shí)路徑映射表,每一二維表項(xiàng)作為一主域名表 項(xiàng),用于記錄一主域名的URL映射;其中,每一主域名表項(xiàng)包括主索引 項(xiàng)、資源ID項(xiàng)、域名虛擬URL項(xiàng)、域名真實(shí)URL項(xiàng)和關(guān)聯(lián)指針項(xiàng),用 于相應(yīng)添加主索引字段、資源ID、域名虛擬URL和域名真實(shí)URL和所 關(guān)聯(lián)的到下級(jí)虛實(shí)路徑映射表的指針;二維表形式的下級(jí)虛實(shí)路徑映射表,通過(guò)指針關(guān)聯(lián)到上級(jí)虛實(shí)路徑 映射表中相應(yīng)的關(guān)聯(lián)指針項(xiàng),且每一二維表項(xiàng)作為一子域名表項(xiàng),用于 記錄一子域名的URL映射;其中,每一子域名表項(xiàng)包括子索引項(xiàng)、域名 虛擬URL項(xiàng)和域名真實(shí)URL項(xiàng),用于相應(yīng)添加子索引字段、域名虛擬URL和域名真實(shí)URL。
14.根據(jù)權(quán)利要求13所述的Web代理服務(wù)器,其特征在于,所述URL 改寫(xiě)單元包括報(bào)文識(shí)別模塊,用于識(shí)別接收到的報(bào)文,為用戶端發(fā)送的第二報(bào)文 則觸發(fā)第二報(bào)文改寫(xiě)模塊,為Web服務(wù)器發(fā)送的第一報(bào)文則觸發(fā)第一報(bào) 文改寫(xiě)模塊;第一報(bào)文改寫(xiě)模塊,包括-報(bào)文解析子模塊,用于解析接收到的第一報(bào)文,對(duì)于其中的不完全 路徑觸發(fā)不完全URL改寫(xiě)子模塊,對(duì)于其中的完全路徑觸發(fā)初始定向單 元;不完全URL改寫(xiě)子模塊,用于識(shí)別所述不完全路徑,對(duì)于不完全的 絕對(duì)路徑,添加相應(yīng)的虛擬URL改寫(xiě)為虛擬路徑;對(duì)于不完全的相對(duì)路 徑保持不變,仍指向相應(yīng)虛擬路徑;第二報(bào)文改寫(xiě)模塊,與所述上、下級(jí)虛實(shí)路徑映射表連接,包括鏈接識(shí)別子模塊,用于識(shí)別所述第二報(bào)文請(qǐng)求的鏈接,如果指向包 括指定格式域名虛擬URL的虛擬路徑,則觸發(fā)主索引字段匹配子模塊; 如果為初始定向的完全路徑,則觸發(fā)子域名識(shí)別單元;主索引字段匹配子模塊,用于根據(jù)指定格式的域名虛擬URL的主索 引字段在上級(jí)虛實(shí)路徑映射表的主索引項(xiàng)中執(zhí)行匹配;子索引字段識(shí)別子模塊,用于根據(jù)所述主索引字段匹配子模塊匹配 成功的觸發(fā),進(jìn)行指定格式的域名虛擬URL的子索引字段的識(shí)別;子索引字段匹配子模塊,用于根據(jù)子索引字段為非保留字段的情況 下所述子索引字段識(shí)別子模塊的觸發(fā),根據(jù)域名虛擬URL的子索引字段 在下級(jí)虛實(shí)路徑映射表的子索引項(xiàng)中執(zhí)行匹配;虛擬URL改寫(xiě)子模塊,用于根據(jù)子索引字段為保留字段的情況下所 述子索引字段識(shí)別子模塊的觸發(fā),以及根據(jù)所述子索引字段匹配子模塊 匹配成功的觸發(fā),調(diào)用匹配成功的相應(yīng)域名真實(shí)URL項(xiàng),將所述虛擬路 徑中指定格式的域名虛擬URL部分改寫(xiě)為所述域名真實(shí)URL;子域名識(shí)別子模塊,用于從所述初始定向完全路徑中提取相應(yīng)的子 域名并識(shí)別其是否存在于所述上、下級(jí)虛實(shí)路徑映射表中,是則觸發(fā)重定向單元,否則觸發(fā)模糊匹配單元。
15. 根據(jù)權(quán)利要求14所述的Web代理服務(wù)器,其特征在于,所述第二報(bào)文改寫(xiě)模塊還包括資源ID比較子模塊,設(shè)置在所述主索引字段匹配子模塊和子索引字 段識(shí)別子模塊之間,用于根據(jù)所述主索引字段匹配子模塊匹配成功的觸 發(fā),進(jìn)行指定格式域名虛擬URL的資源ID與資源ID項(xiàng)中保存的資源ID 的比較,并在失效標(biāo)識(shí)字段一致的情況下觸發(fā)所述子索引字段識(shí)別子模 塊。
16. 根據(jù)權(quán)利要求10-12任一所述的Web代理服務(wù)器,其特征在于, 所述模糊匹配單元為通用網(wǎng)關(guān)接口 CGI,用于根據(jù)所述模糊匹配策略進(jìn) 行子域名與Web服務(wù)器主域名的匹配;所述初始定向單元用于將所述完 全路徑改寫(xiě)為CGI的參數(shù)。
17. 根據(jù)權(quán)利要求10-12任一所述的Web代理服務(wù)器,其特征在于, 所述Web代理服務(wù)器為SSL VPN網(wǎng)關(guān),所述SSL VPN網(wǎng)關(guān)與處在外網(wǎng) 的用戶端建立SSL連接,與處在內(nèi)網(wǎng)的Web服務(wù)器建立TCP連接,且 所述第一報(bào)文為HTTP報(bào)文,所述第二報(bào)文為HTTPs報(bào)文。
全文摘要
本發(fā)明公開(kāi)了一種遠(yuǎn)程訪問(wèn)內(nèi)網(wǎng)Web服務(wù)器的方法,由Web代理服務(wù)器網(wǎng)關(guān)執(zhí)行以下步驟對(duì)于Web服務(wù)器發(fā)送給用戶端的第一報(bào)文,對(duì)其所包含的完全路徑進(jìn)行初始定向獲得鏈接;對(duì)于用戶端發(fā)送給Web服務(wù)器的第二報(bào)文,進(jìn)行域名虛擬URL到域名真實(shí)URL的改寫(xiě),或者,從初始定向完全路徑中提取域名,直接進(jìn)行重定向或者在預(yù)先設(shè)置的模糊策略匹配成功時(shí)為該子域名進(jìn)行指定格式的虛擬URL映射及重定向。本發(fā)明還公開(kāi)了一種Web代理服務(wù)器。本發(fā)明能夠避免用戶端的Cookie混淆,提高Web代理服務(wù)器的處理效率,以及降低系統(tǒng)處理開(kāi)銷。
文檔編號(hào)H04L12/46GK101242336SQ20081008501
公開(kāi)日2008年8月13日 申請(qǐng)日期2008年3月13日 優(yōu)先權(quán)日2008年3月13日
發(fā)明者振 王, 明 薛 申請(qǐng)人:杭州華三通信技術(shù)有限公司