提供的另一種會話?;罘椒ǖ氖疽鈭D;
[0093] 圖5為本發(fā)明實施例二提供的另一種會話?;罘椒ǖ氖疽鈭D;
[0094] 圖6為本發(fā)明實施例三提供的一種會話保活方法的示意圖;
[0095] 圖7為本發(fā)明實施例四提供的一種會話保活方法的示意圖;
[0096]
[0097] 圖8為本發(fā)明實施例五提供的一種代理服務(wù)器的結(jié)構(gòu)示意圖;
[0098] 圖9為本發(fā)明實施例五提供的另一種代理服務(wù)器的結(jié)構(gòu)示意圖;
[0099]
[0100] 圖10為本發(fā)明實施例五提供的另一種代理服務(wù)器的結(jié)構(gòu)示意圖;
[0101] 圖11為本發(fā)明實施例五提供的另一種代理服務(wù)器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0102] 現(xiàn)有技術(shù)中客戶端通過與代理服務(wù)器之間的會話接收數(shù)據(jù),并根據(jù)接收到的數(shù)據(jù) 重組出郵件時,?;顖笪牡妮d荷內(nèi)容,例如"X-KeepAlive\r\n"也被重組到了郵件中。從而 導(dǎo)致即便郵件為正常郵件,經(jīng)客戶端重組得到的郵件與真實服務(wù)器發(fā)送的郵件相比,郵件 內(nèi)容也會發(fā)生篡改,給用戶閱讀造成困難和不必要的干擾。
[0103] 為解決上述問題,本發(fā)明實施例提出了一種會話保護方案,接下來通過多個實施 例對該方案進行詳細(xì)的描述。
[0104] 實施例一
[0105] 本發(fā)明實施例提供了一種會話?;罘椒?,該方法的執(zhí)行主體是具備代理服務(wù)器 功能的網(wǎng)絡(luò)設(shè)備,可選地,該網(wǎng)絡(luò)設(shè)備可以是網(wǎng)絡(luò)防火墻,也可以是專用的HTTP代理服務(wù) 器、郵件代理服務(wù)器等等。其中郵件服務(wù)器又至少包括基于POP3的郵件代理服務(wù)器、基于 IMAP4的郵件代理服務(wù)器。
[0106] 附圖1中的代理服務(wù)器位于局域網(wǎng)邊界出口、與承載網(wǎng)連接的位置,此外代理服 務(wù)器也可以部署于真實服務(wù)器前端,即介于真實服務(wù)器和互聯(lián)網(wǎng)之間,或者在其他位置部 署。代理服務(wù)器分別與客戶端(如圖1中的客戶端100、客戶端101和客戶端102)建立會 話,同時與服務(wù)器建立會話。本申請中的客戶端和服務(wù)器可以是實體設(shè)備也可以是運行在 實體設(shè)備上的應(yīng)用程序。
[0107] 附圖2是本發(fā)明實施例提供的會話?;罘椒ǖ牧鞒虉D,該方法包括:
[0108] 步驟10,代理服務(wù)器接收客戶端通過所述代理服務(wù)器與所述客戶端之間的會話發(fā) 送的業(yè)務(wù)數(shù)據(jù)獲取請求,并將所述業(yè)務(wù)數(shù)據(jù)獲取請求轉(zhuǎn)發(fā)給真實服務(wù)器。
[0109] 根據(jù)業(yè)務(wù)類型以及承載協(xié)議的不同,業(yè)務(wù)數(shù)據(jù)獲取請求的具體報文格式也有所不 同。然而對于大多數(shù)基于請求的服務(wù)而言,客戶端在獲得服務(wù)器的業(yè)務(wù)數(shù)據(jù)之前,常常要 向服務(wù)器發(fā)送業(yè)務(wù)數(shù)據(jù)獲取請求。例如,對于郵件服務(wù),客戶端首先向服務(wù)器發(fā)送郵件獲取 請求,然后服務(wù)器根據(jù)郵件獲取請求向客戶端返回所需的郵件數(shù)據(jù);對于網(wǎng)頁服務(wù),客戶端 首先向服務(wù)器發(fā)送攜帶統(tǒng)一資源定位符(UniformResourceLocator,簡稱URL)、或文件名 稱等資源標(biāo)識的網(wǎng)頁請求,然后服務(wù)器根據(jù)網(wǎng)頁請求向客戶端返回所需的資源,該資源可 以是網(wǎng)頁數(shù)據(jù)或文件數(shù)據(jù)等。
[0110] 步驟20,所述代理服務(wù)器接收所述真實服務(wù)器發(fā)送的第一報文,所述第一報文用 于響應(yīng)所述業(yè)務(wù)數(shù)據(jù)獲取請求,所述第一報文攜帶用以表示所述真實服務(wù)器開始傳輸業(yè)務(wù) 數(shù)據(jù)的信息。
[0111] 與前面的業(yè)務(wù)數(shù)據(jù)獲取請求類似,根據(jù)業(yè)務(wù)類型以及承載協(xié)議的不同,第一報文 的具體報文格式也有所不同??蛻舳嗽诮邮盏缴鲜鲂畔⒅?,就做好準(zhǔn)備接收業(yè)務(wù)數(shù)據(jù)的 準(zhǔn)備,將后續(xù)接收到的報文的載荷內(nèi)容進行分片重組,從而得到所需的業(yè)務(wù)數(shù)據(jù)。
[0112] 步驟30,所述代理服務(wù)器通過依次向所述客戶端發(fā)送至少兩個第二報文,向所述 客戶端發(fā)送所述信息,所述至少兩個第二報文中的每個報文攜帶所述信息的片段,所述至 少兩個第二報文中發(fā)送次序相鄰的兩個報文的發(fā)送時間間隔小于所述會話的老化時間。
[0113] 代理服務(wù)器在接收到上述第一報文之后,不是像現(xiàn)有技術(shù)一樣直接將第一報文轉(zhuǎn) 發(fā)給客戶端,而是將第一報文攜帶的信息分布到至少兩個第二報文中,其中每個第二報文 攜帶所述信息的片段,通過在所述會話上依次向所述客戶端發(fā)送至少兩個第二報文,一方 面實現(xiàn)向所述客戶端轉(zhuǎn)發(fā)所述信息的效果,另一方面實現(xiàn)會話?;畹男Ч?br>[0114] 其中,所述至少兩個第二報文中發(fā)送次序相鄰的兩個報文分別攜帶的所述片段在 所述信息中的位置相鄰。這樣客戶端在接收到所述至少兩個第二報文,通過對所述至少兩 個第二報文攜帶的信息的片段進行重組,就可以得到完整的所述信息,從而為后續(xù)接收業(yè) 務(wù)數(shù)據(jù)做好準(zhǔn)備。
[0115] 可選地,所述至少兩個第二報文中的每個報文攜帶的所述信息的片段的大小可以 相同,也可以不同。
[0116] 可選地,所述代理服務(wù)器在向所述客戶端發(fā)送至少兩個第二報文時,可以以設(shè)定 時間間隔,定期逐個發(fā)送所述至少兩個第二報文中的每個第二報文,其中所述設(shè)定的時間 間隔小于所述客戶端的會話老化時間。
[0117] 所述代理服務(wù)器也可以以變化的時間間隔,逐個發(fā)送所述至少兩個第二報文中的 每個第二報文,例如,第一個第二報文和第二個第二報文之間的發(fā)送時間間隔,與第二個第 二報文和第三個第二報文之間的發(fā)送時間間隔不同,只要保證發(fā)送次序相鄰的兩個第二報 文的發(fā)送時間間隔小于所述客戶端的會話老化時間即可。
[0118] 步驟40,當(dāng)所述代理服務(wù)器發(fā)送完所述信息時,在所述會話的老化時間內(nèi),所述代 理服務(wù)器通過所述會話向所述客戶端發(fā)送第一業(yè)務(wù)數(shù)據(jù)。
[0119] 換句話說,最后一個發(fā)送的第二報文與最先發(fā)送的承載第一業(yè)務(wù)數(shù)據(jù)的報文之間 的發(fā)送時間間隔也需要小于所述會話的老化時間內(nèi),以防止所述代理服務(wù)器與所述客戶端 之間的會話因長時間未傳輸數(shù)據(jù)而被異常關(guān)閉。
[0120] 需要在這里說明的是:本申請說明書中上述第一報文和第二報文并不是表示順序 關(guān)系,而是為了區(qū)別不同類型的報文,如承載不同類型信息或數(shù)據(jù)的報文,第一業(yè)務(wù)數(shù)據(jù)以 及后面出現(xiàn)的第二業(yè)務(wù)數(shù)據(jù)也是為了區(qū)別不同的業(yè)務(wù)數(shù)據(jù),如第一業(yè)務(wù)數(shù)據(jù)是代理服務(wù)器 發(fā)送給客戶端的業(yè)務(wù)數(shù)據(jù),第二業(yè)務(wù)數(shù)據(jù)是真實服務(wù)器發(fā)送給代理服務(wù)器的業(yè)務(wù)數(shù)據(jù)。
[0121] 本發(fā)明實施例提供了一種對代理服務(wù)器和客戶端之間的會話進行保護的方法,代 理服務(wù)器在接收到真實服務(wù)器發(fā)送的攜帶有用以表示所述真實服務(wù)器開始傳輸業(yè)務(wù)數(shù)據(jù) 的信息的第一報文后,通過將該信息分布在多個第二報文中,將所述信息發(fā)送給客戶端,其 中所述至少兩個第二報文中發(fā)送次序相鄰的兩個報文的發(fā)送時間間隔小于所述會話的老 化時間。當(dāng)所述代理服務(wù)器發(fā)送完所述信息時,在所述會話的老化時間內(nèi),所述代理服務(wù) 器通過所述會話向所述客戶端發(fā)送處理后的第一業(yè)務(wù)數(shù)據(jù)。這樣,客戶端在接收到所述至 少兩個第二報文后,經(jīng)過重組可以得到上述信息,并在得到該信息后可以直接接收業(yè)務(wù)數(shù) 據(jù)。換句話說,代理服務(wù)器通過切分上述信息,并通過攜帶上述信息的片段的第二報文來 實現(xiàn)會話?;睿皇侵匦聵?gòu)造?;顖笪模瑥亩苊猬F(xiàn)有技術(shù)客戶端在接收到上述信息后、 接收到代理服務(wù)器發(fā)送的第一業(yè)務(wù)數(shù)據(jù)之前,還會接收到多個由代理服務(wù)器構(gòu)造的攜帶 "X-Ke印Alive\r\n"?;顖笪脑斐傻闹亟M后的業(yè)務(wù)數(shù)據(jù)被不合理地篡改的問題。
[0122] 并且本發(fā)明實施例提供的會話?;罘椒?,不僅能適應(yīng)代理服務(wù)器為郵件代理 服務(wù)器的情況,當(dāng)代理服務(wù)器為HTTP代理服務(wù)器、或是文件傳輸協(xié)議(FileTransfer Protocol,簡稱FTP)代理服務(wù)器等其他業(yè)務(wù)或協(xié)議的代理服務(wù)器時同樣適用,具有良好的 通用性。
[0123] 可選地,請參照附圖3,本實施例還提供了另一種會話?;罘椒?,其中步驟10至步 驟40與附圖2中的基本相同,在這里就不再展開描述。本實施例在附圖2所示方法的基礎(chǔ) 上,對會話?;钸^程中業(yè)務(wù)數(shù)據(jù)的處理進行了更為詳細(xì)的介紹。
[0124] 步驟10,代理服務(wù)器接收客戶端通過所述代理服務(wù)器與所述客戶端之間的會話發(fā) 送的業(yè)務(wù)數(shù)據(jù)獲取請求,并將所述業(yè)務(wù)數(shù)據(jù)獲取請求轉(zhuǎn)發(fā)給真實服務(wù)器。
[0125] 步驟20,所述代理服務(wù)器接收所述真實服務(wù)器發(fā)送的第一報文,所述第一報文用 于響應(yīng)所述業(yè)務(wù)數(shù)據(jù)獲取請求,所述第一報文攜帶用以表示所述真實服務(wù)器開始傳輸業(yè)務(wù) 數(shù)據(jù)的信息。
[0126] 步驟30,所述代理服務(wù)器通過依次向所述客戶端發(fā)送至少兩個第二報文,向所述 客戶端發(fā)送所述信息,所述至少兩個第二報文中的每個報文攜帶所述信息的片段,所述至 少兩個第二報文中發(fā)送次序相鄰的兩個報文的發(fā)送時間間隔小于所述會話的老化時間。
[0127] 步驟40,當(dāng)所述代理服務(wù)器發(fā)送完所述信息時,在所述會話的老化時間內(nèi),所述代 理服務(wù)器通過所述會話向所述客戶端發(fā)送第一業(yè)務(wù)數(shù)據(jù)。
[0128] 在上述步驟40之前,步驟20之后還包括:
[0129] 步驟50,所述代理服務(wù)器接收所述真實服務(wù)器發(fā)送的第二業(yè)務(wù)數(shù)據(jù);
[0130] 步驟60,所述代理服務(wù)器處理所述真實服務(wù)器發(fā)送的第二業(yè)務(wù)數(shù)據(jù),獲得所述第 一業(yè)務(wù)數(shù)據(jù)。
[0131] 具體處理包括但不限于:對第一業(yè)務(wù)數(shù)據(jù)進行緩存,并對緩存結(jié)果進行安全檢測 以確定所述第二業(yè)務(wù)數(shù)據(jù)未包含異常數(shù)據(jù);或者,在第一業(yè)務(wù)數(shù)據(jù)中添加數(shù)字水印、提醒 信息、廣告信息等預(yù)定數(shù)據(jù)。在這里不再一一列舉。
[0132] 在這種情況下,所述步驟30進一步包括:
[0133] 步驟301,所述代理服務(wù)器處理完所述真實服務(wù)器發(fā)送的第二業(yè)務(wù)數(shù)據(jù)時,判斷是 否已發(fā)完所述用以表示所述真實服務(wù)器開