數(shù)據(jù)交換中傳輸http協(xié)議的方法、服務(wù)器及存儲設(shè)備的制造方法
【專利摘要】本發(fā)明提供一種數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法,該方法包括所述服務(wù)器端接收連接請求;通過HTTP建立所述連接;通過所述連接接收數(shù)據(jù)請求;對所述數(shù)據(jù)請求做出響應(yīng),發(fā)送回執(zhí)響應(yīng);處理所述數(shù)據(jù)請求以對所請求的數(shù)據(jù)進行檢索;在檢索到所述所請求的數(shù)據(jù)后,向所述客戶端發(fā)送最終響應(yīng)。另外,本發(fā)明還提供了用于和客戶端進行數(shù)據(jù)交換的服務(wù)器以及一種用于儲存提供HTTP協(xié)議上的信息,以通過網(wǎng)絡(luò)在客戶端和服務(wù)器端之間進行數(shù)據(jù)交換存儲設(shè)備的計算機可讀存儲設(shè)備。本發(fā)明提供的數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法、服務(wù)器及存儲設(shè)備,能夠不需要復(fù)雜編碼和配置,且不會丟失建立起來的連接。
【專利說明】
數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法、服務(wù)器及存儲設(shè)備
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法、月艮 務(wù)器及存儲設(shè)備。
【背景技術(shù)】
[0002] 在通信環(huán)境中,用戶可在其本地的客戶端設(shè)備上執(zhí)行應(yīng)用程序,客戶端設(shè)備可從 遠程服務(wù)器端獲取與該應(yīng)用程序相關(guān)的信息,其中,遠程服務(wù)器端通過網(wǎng)絡(luò)同客戶端設(shè)備 進行連接。連接建立起來之后,客戶端設(shè)備的應(yīng)用程序向服務(wù)器端發(fā)送一條請求,然后服務(wù) 器端將該請求發(fā)送至數(shù)據(jù)庫,以對所請求的數(shù)據(jù)和信息進行檢索。服務(wù)器端可將檢索到的 數(shù)據(jù)返回至客戶端設(shè)備,客戶端設(shè)備可將信息顯示給用戶,使得用戶能夠同顯示的信息進 行交互。
[0003] 現(xiàn)有技術(shù)中,使用遠程過程調(diào)用協(xié)議(RPC,Remote Procedure Call)來從本地客 戶端向遠程服務(wù)器端發(fā)送請求,以獲取所請求的數(shù)據(jù)。但是,RPC協(xié)議可能涉及一些復(fù)雜的 編碼,且可能需要在服務(wù)器端進行專門的配置,以生成成功的RPC協(xié)議用于獲取數(shù)據(jù)。另 外,當有大量用戶應(yīng)用RPC協(xié)議用以獲取數(shù)據(jù)時,一些服務(wù)器可能會超載;當服務(wù)器超載 時,用戶可能丟失所建立的連接并可能無法重新連接,這會降低用戶體驗,并可能妨礙用戶 通過客戶端的應(yīng)用程序獲取數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明主要解決的技術(shù)問題是提供一種數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法、服務(wù) 器及存儲設(shè)備,能夠不需要復(fù)雜編碼和配置,且不會丟失建立起來的連接。
[0005] 為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種在數(shù)據(jù)交換中傳 輸HTTP協(xié)議的方法,所述方法在計算設(shè)備的至少一部分上執(zhí)行,其中,所述計算設(shè)備提供 超文本傳輸協(xié)議HTTP協(xié)議上的信息,以用于通過網(wǎng)絡(luò)在客戶端和服務(wù)器端之間進行數(shù)據(jù) 交換,所述方法包括:所述服務(wù)器端接收連接請求;通過HTTP建立所述連接;通過所述連接 接收數(shù)據(jù)請求;對所述數(shù)據(jù)請求做出響應(yīng),發(fā)送回執(zhí)響應(yīng);處理所述數(shù)據(jù)請求以對所請求 的數(shù)據(jù)進行檢索;在檢索到所述所請求的數(shù)據(jù)后,向所述客戶端發(fā)送最終響應(yīng)。
[0006] 其中,所述接收數(shù)據(jù)請求的步驟,進一步包括:接收HTTP請求。
[0007] 其中,所述方法進一步包括:接收帶有一個或多個報頭的所述HTTP請求,所述報 頭包含用于處理所述數(shù)據(jù)請求的指令。
[0008] 其中,所述報頭包含一個或多個的:類型報頭、請求標識報頭、郵箱標識報頭和內(nèi) 容類型報頭。
[0009] 其中,所述類型報頭用于指明所述用戶正在試圖執(zhí)行的操作。
[0010] 其中,所述請求標識用于標識所述請求是從所述客戶端至所述服務(wù)器端。
[0011] 其中,所述郵箱標識為一個參數(shù),所述參數(shù)對與所述客戶端相關(guān)的電子郵件賬戶 進行標識,其中,所述客戶端通過所述電子郵件賬戶向所述服務(wù)器端發(fā)送數(shù)據(jù)檢索請求。
[0012] 其中,所述內(nèi)容類型報頭被設(shè)置為應(yīng)用程序/八位字節(jié)流類型。
[0013] 其中,所述方法進一步包括:在對所述請求進行處理時,發(fā)送一系列中間分塊響 應(yīng)。
[0014] 其中,所述發(fā)送所述中間分塊響應(yīng)的步驟,進一步包括:將報頭包含于所述分塊響 應(yīng)的至少一個部分中,其中,傳輸編碼值為"分塊"。
[0015] 其中,所述方法進一步包括:在對所述數(shù)據(jù)請求進行處理時,以周期性時間間隔發(fā) 送所述中間分塊響應(yīng),其中,所述周期性時間間隔為預(yù)先設(shè)定的和可配置的。
[0016] 為解決上述技術(shù)問題,本發(fā)明采用的另一個技術(shù)方案是:提供一種服務(wù)器,所述服 務(wù)器用于和客戶端進行數(shù)據(jù)交換,所述服務(wù)器包括:存儲器,用于存儲指令;處理器,耦合 至所述存儲器,用于執(zhí)行數(shù)據(jù)檢索應(yīng)用程序,其中,所述數(shù)據(jù)檢索應(yīng)用程序用以:接收連接 請求;通過HTTP建立所述連接;通過所述連接接收數(shù)據(jù)請求;對所述數(shù)據(jù)請求做出響應(yīng),發(fā) 送回執(zhí)響應(yīng);處理所述請求以對所要求的數(shù)據(jù)進行檢索;在處理所述請求時發(fā)送一系列中 間分塊響應(yīng);在為所述客戶端檢索到所述數(shù)據(jù)之后,發(fā)送最終響應(yīng)。
[0017] 其中,所述服務(wù)器涉及功能服務(wù),所述功能服務(wù)提供一個或多個:電子郵件應(yīng)用程 序、社交網(wǎng)絡(luò)應(yīng)用程序、協(xié)作應(yīng)用程序、企業(yè)管理應(yīng)用程序、短消息應(yīng)用程序、文字處理應(yīng)用 程序、電子表格應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序、演示應(yīng)用程序,以及電子郵件、聯(lián)系人和日歷管 理應(yīng)用程序。
[0018] 其中,所述數(shù)據(jù)請求為包含一個或多個報頭的HTTP請求,所述報頭帶有處理所述 數(shù)據(jù)請求的指令。
[0019] 其中,所述報頭包含一個或多個:類型報頭、請求標識報頭、郵箱標識報頭和內(nèi)容 類型報頭。
[0020] 其中,所述類型報頭用于指明所述客戶端正在試圖執(zhí)行的操作,所述請求標識報 頭用于標識所述請求是從所述客戶端至所述服務(wù)器端,所述郵箱標識為一個參數(shù),所述參 數(shù)對與所述客戶端相關(guān)的電子郵件賬戶進行標識,其中,所述客戶端通過所述電子郵件賬 戶向所述服務(wù)器端發(fā)送數(shù)據(jù)檢索請求,而所述內(nèi)容類型報頭被設(shè)置為應(yīng)用程序/八位字節(jié) 流。
[0021] 其中,所述一系列中間分塊響應(yīng)的所述分塊響應(yīng)中包含報頭,并以"分塊"作為傳 輸編碼值。
[0022] 其中,所述數(shù)據(jù)檢索應(yīng)用程序進一步用于:在所述最終響應(yīng)中包含DONE元標簽, 以便于指明已向所述客戶端發(fā)送最終響應(yīng),其中,所述DONE元標簽之后緊隨來自所述服務(wù) 器端的帶有所請求的數(shù)據(jù)的值。
[0023] 為解決上述技術(shù)問題,本發(fā)明采用的又一個技術(shù)方案是:提供一種計算機可讀存 儲設(shè)備,所述計算機可讀存儲設(shè)備用于儲存指令,所述指令用于提供HTTP協(xié)議上的信息, 以通過網(wǎng)絡(luò)在客戶端和服務(wù)器端之間進行數(shù)據(jù)交換,所述指令包括:所述服務(wù)器端接收連 接請求;通過HTTP建立所述連接;通過所述連接接收HTTP POST數(shù)據(jù)請求;對所述數(shù)據(jù)請 求作出響應(yīng),發(fā)送回執(zhí)響應(yīng);處理所述請求以對所請求的數(shù)據(jù)進行檢索;在處理所述請求 時,以固定的時間間隔發(fā)送一系列中間分塊響應(yīng);在為所述客戶端檢索到所要求的數(shù)據(jù)后, 發(fā)送最終響應(yīng)。
[0024] 其中,所述指令進一步包括:所述最終響應(yīng)中包含DONE元標簽,以便于指明已向 所述客戶端發(fā)送最終響應(yīng)及所請求的數(shù)據(jù),其中,所述元標簽之后緊隨來自所述服務(wù)器的 帶有所請求的數(shù)據(jù)的值;使所述服務(wù)器端能夠在所述最終響應(yīng)中返回額外的報頭,其中,所 述最終響應(yīng)中的所述額外報頭將一個或多個中間分塊響應(yīng)中的標頭值進行覆蓋。
[0025] 本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明涉及在本地客戶端從遠程 服務(wù)器請求并獲取數(shù)據(jù)的協(xié)議,具體來說,包括:所述服務(wù)器端接收連接請求;通過HTTP建 立所述連接;通過所述連接接收數(shù)據(jù)請求;對所述數(shù)據(jù)請求做出響應(yīng),發(fā)送回執(zhí)響應(yīng);處理 所述數(shù)據(jù)請求以對所請求的數(shù)據(jù)進行檢索;在檢索到所述所請求的數(shù)據(jù)后,向所述客戶端 發(fā)送最終響應(yīng)。由于當服務(wù)器接收到請求時,服務(wù)器可向客戶端發(fā)送回執(zhí)響應(yīng),這樣,服務(wù) 器對請求進行處理以指明連接仍然處于建立狀態(tài),在檢索到所請求的數(shù)據(jù)之后,服務(wù)器可 向客戶端返回一條包含有所請求的數(shù)據(jù)的最終響應(yīng),通過這種方式,能夠不需要復(fù)雜編碼 和配置,且不會丟失建立起來的連接。
【附圖說明】
[0026] 圖1為本發(fā)明在數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法一實施方式的應(yīng)用場景示意圖。
[0027] 圖2為本發(fā)明在數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法一實施方式的示意圖。
[0028] 圖3為本發(fā)明應(yīng)用HTTP協(xié)議上的信息在客戶端和服務(wù)器之間進行交換的數(shù)據(jù)請 求和響應(yīng)的一實施方式。
[0029] 圖4為聯(lián)網(wǎng)環(huán)境的一實施方式。
[0030] 圖5為本發(fā)明計算機可讀存儲設(shè)備一實施方式的結(jié)構(gòu)示意圖。
[0031] 圖6為一實施方式的邏輯流程圖,該邏輯程序提供HTTP協(xié)議上信息通過網(wǎng)絡(luò)在客 戶端和服務(wù)器之間進行數(shù)據(jù)交換。
【具體實施方式】
[0032] 下面結(jié)合附圖和實施方式對本發(fā)明進行詳細說明。
[0033] 參閱圖1,圖1是本發(fā)明在數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法一實施方式的應(yīng)用場 景示意圖。
[0034] 如圖1所示,用戶可應(yīng)用多種不同的客戶端設(shè)備來執(zhí)行應(yīng)用程序,以交換數(shù)據(jù)并 同數(shù)據(jù)進行交互。在用戶的客戶端設(shè)備上執(zhí)行的用于同數(shù)據(jù)進行交互的應(yīng)用程序可為功能 服務(wù)(Productivity Service) 11和通信服務(wù)12。通信服務(wù)12可為用以提供電子郵件、聯(lián) 系人管理和日歷服務(wù)的服務(wù)。通信服務(wù)12同樣可提供實時通信平臺,如即時短訊、音/視 頻會議和存在位檢測。例如,用戶可接收、閱讀并回復(fù)執(zhí)行于用戶的客戶端設(shè)備上的通信服 務(wù)12中的電子郵件或其他數(shù)據(jù)。一些用于閱讀郵件和獲取其他數(shù)據(jù)的客戶端設(shè)備可包括 桌面計算設(shè)備、個人計算機、平板計算機、智能電話和其他類似的客戶端設(shè)備。
[0035] 功能服務(wù)11可配置為可對建立在功能平臺周圍的服務(wù)提供訪問。一些功能服務(wù) 可包括電子郵件應(yīng)用程序、社交網(wǎng)絡(luò)應(yīng)用程序、協(xié)作應(yīng)用程序、企業(yè)管理應(yīng)用程序、短訊應(yīng) 用程序、文字處理應(yīng)用程序、電子表格應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序和演示應(yīng)用程序。功能服 務(wù)11可包括通信應(yīng)用程序,其用以同通信服務(wù)協(xié)同工作以獲取和交換數(shù)據(jù)。
[0036] 通信服務(wù)12和功能服務(wù)11所提供的服務(wù)可托管在與通信服務(wù)12和功能服務(wù)11 相關(guān)的外部服務(wù)器上。用戶可通過網(wǎng)絡(luò)13在用戶的本地客戶端設(shè)備上從服務(wù)器14獲取所 提供的服務(wù),其中,網(wǎng)絡(luò)13可為有線或無線網(wǎng)絡(luò),或云網(wǎng)絡(luò)。本地客戶端設(shè)備和服務(wù)器之間 的數(shù)據(jù)可通過網(wǎng)絡(luò)13進行交換,這樣本地客戶端設(shè)備需要通過網(wǎng)絡(luò)同服務(wù)器14建立有效 連接,以獲取由通信服務(wù)12和功能服務(wù)11所提供的數(shù)據(jù)并同數(shù)據(jù)進行交互。
[0037] 參閱圖2,圖2是本發(fā)明在數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法一實施方式的示意圖。
[0038] 如圖2所示,客戶端21可在本地設(shè)備上執(zhí)行功能應(yīng)用程序或通信應(yīng)用程序22,例 如電子郵件應(yīng)用程序。客戶端21可通過網(wǎng)絡(luò)同服務(wù)器23通信,以獲取與通信應(yīng)用程序22 相關(guān)的數(shù)據(jù),例如電子郵件數(shù)據(jù)。
[0039] 在本實施方式的系統(tǒng)中,可在客戶端21和服務(wù)器23之間建立連接,以同通信應(yīng)用 程序22進行數(shù)據(jù)交換??蛻舳?1可向服務(wù)器23發(fā)起連接,并可從服務(wù)器23獲取數(shù)據(jù)。服 務(wù)器23可接受該請求,對請求進行處理,并向客戶端21返回所請求的信息。HTTP協(xié)議為應(yīng) 用程序協(xié)議,可應(yīng)用于客戶端21和服務(wù)器23之間輔助通信和數(shù)據(jù)交換。HTTP可定義方法 或動作,其中,動作可指明通過服務(wù)器執(zhí)行的以獲取所請求的信息的所期望的動作。例如, 動作可包括GET動作,其可為獲取數(shù)據(jù)的請求。應(yīng)用于HTTP的動作的另一實例可為POST 動作,其可使服務(wù)器接受具化所述請求的數(shù)據(jù)。
[0040] 在一個實施方式中,客戶端21可包含已建立的HTTP請求上的信息協(xié)議,以利于從 服務(wù)器23獲取與客戶端21上執(zhí)行的通信應(yīng)用程序22相關(guān)的數(shù)據(jù)。HTTP協(xié)議24上的信 息可使客戶端21通過HTTP連接向服務(wù)器23發(fā)送請求并通過相同的HTTP連接接收服務(wù)器 23響應(yīng)??蛻舳?1可同服務(wù)器23開啟額外的HTTP連接,以向服務(wù)器23發(fā)送并行的獨立 請求。
[0041] 在一個實施方式中,客戶端21請求可將數(shù)據(jù)請求語言同傳統(tǒng)的HTTP POST請求語 言進行合并,以生成HTTP協(xié)議上的信息。HTTP協(xié)議上的信息可包含專門的報頭結(jié)構(gòu),用于 指示服務(wù)器23對何種數(shù)據(jù)進行檢索并如何向客戶端21做出響應(yīng)。所述的專門的報頭結(jié)構(gòu) 可包括請求類型報頭、請求標識報頭、郵箱標識報頭和內(nèi)容類型報頭。請求類型報頭可為 X-RequestType報頭,應(yīng)用該報頭用以告訴服務(wù)器23,即客戶端21正在試圖執(zhí)行何種操作。 請求標識報頭可為X-RequestID報頭,其可將客戶端21識別至服務(wù)器23。服務(wù)器23可不 接受未經(jīng)識別的或匿名的請求。此外,郵箱標識報頭可為MailboxID參數(shù),其專門對電子郵 件賬戶或與客戶端相關(guān)的郵箱進行標識,其中,客戶端21向服務(wù)器23發(fā)送請求以獲取電子 郵件或其他數(shù)據(jù)。而且,POST請求可包含內(nèi)容類型報頭,其可為設(shè)置為"應(yīng)用程序/八位字 節(jié)流"類型的Content-Type報頭。
[0042] HTTP協(xié)議請求上的信息的例子可如下所示:
[0043]
[0044] 本發(fā)明涉及在本地客戶端從遠程服務(wù)器請求并獲取數(shù)據(jù)的協(xié)議,具體來說,包括: 所述服務(wù)器端接收連接請求;通過HTTP建立所述連接;通過所述連接接收數(shù)據(jù)請求;對所 述數(shù)據(jù)請求做出響應(yīng),發(fā)送回執(zhí)響應(yīng);處理所述數(shù)據(jù)請求以對所請求的數(shù)據(jù)進行檢索;在 檢索到所述所請求的數(shù)據(jù)后,向所述客戶端發(fā)送最終響應(yīng)。由于當服務(wù)器接收到請求時,月艮 務(wù)器可向客戶端發(fā)送回執(zhí)響應(yīng),這樣,服務(wù)器對請求進行處理以指明連接仍然處于建立狀 態(tài),在檢索到所請求的數(shù)據(jù)之后,服務(wù)器可向客戶端返回一條包含有所請求的數(shù)據(jù)的最終 響應(yīng),通過這種方式,能夠不需要復(fù)雜編碼和配置,且不會丟失建立起來的連接。
[0045] 參閱圖3,圖3是本發(fā)明應(yīng)用HTTP協(xié)議上的信息在客戶端和服務(wù)器之間進行交換 的數(shù)據(jù)請求和響應(yīng)的實施方式。
[0046] 客戶端31可使用標準化的HTTP POST請求,以從服務(wù)器32請求與客戶端31上 執(zhí)行的應(yīng)用程序相關(guān)的數(shù)據(jù)。專門的數(shù)據(jù)請求語言可同HTTP POST語言進行合并,以生成 HTTP協(xié)議上信息,用以指示服務(wù)器32對何種數(shù)據(jù)進行檢索、從哪里檢索以及如何向客戶端 31做出響應(yīng)。
[0047] 如圖3所示,在服務(wù)器32接收到初始POST請求33之后,服務(wù)器32可向客戶端31 返回一系列響應(yīng)。POST請求33可包含指令,在服務(wù)器32對POST請求33進行排隊和處理 的過程中,指令可指示服務(wù)器32對初始POST請求33做出響應(yīng),即返回回執(zhí)響應(yīng)34?;貓?zhí) 響應(yīng)34可向客戶端31提供確認,即服務(wù)器32已經(jīng)接收到所述請求,這樣可以防止客戶端 31不知道連接已經(jīng)掉線,或者不知道服務(wù)器32無法對請求進行處理。如果客戶端31未在 合理的時間期限內(nèi)接收到回執(zhí)響應(yīng)34,那么客戶端31可能會放棄和/或重試POST請求33。
[0048] 在一個實施方式中,服務(wù)器32可在對POST請求33進行處理時,返回中間分塊響 應(yīng)35。服務(wù)器32所返回的中間分塊響應(yīng)35可包含Transfer-Encoding報頭,并以"分塊" 作為傳輸編碼方式。所述分塊傳輸編碼可使服務(wù)器32在對POST請求33進行處理的過程 中,向客戶端31返回中間響應(yīng)和數(shù)據(jù)。中間分塊響應(yīng)35可向客戶端31提供請求的狀態(tài), 以指明客戶端31和服務(wù)器32之間的所有連接均未掉線,且服務(wù)器32當前正在對POST請 求33進行處理。如果客戶端31未在合理的時間期限內(nèi)接收到預(yù)期的中間響應(yīng),那么客戶 端31可能會放棄和/或重試POST請求33。傳遞中間響應(yīng)的預(yù)期時間期限可由客戶端31 或者服務(wù)器32進行定義,也可為可配置的設(shè)置。中間分塊響應(yīng)35也可用以在服務(wù)器32對 POST請求33進行處理時,保持基本的HTTP連接處于激活狀態(tài)。
[0049] 服務(wù)器32所返回的分塊HTTP響應(yīng)的例子可為:
[0052] 如上所述,當服務(wù)器32處理完請求后,服務(wù)器32會向客戶端31返回最終響應(yīng)36。 響應(yīng)中的元標識DONE可指明最終響應(yīng)36已發(fā)送至客戶端31。緊隨DONE元標識之后,可向 客戶端31返回帶有來自服務(wù)器32的響應(yīng)數(shù)據(jù)的X-ResponseCode值。在響應(yīng)中的DONE元 標識之后,服務(wù)器32能夠在最終響應(yīng)36中返回額外的報頭。最終響應(yīng)36中的額外報頭可 覆蓋掉服務(wù)器32先前在一個或多個中間分塊響應(yīng)35中所返回的報頭值。例如,額外報頭可 使服務(wù)器32舍棄后繼的POST請求,并向客戶端31返回不同的X-ResponseCode值。服務(wù) 器32的響應(yīng)數(shù)據(jù)可緊隨任意的額外報頭之后。而且,如果返回了額外的X-ResponseCode, 且響應(yīng)數(shù)據(jù)為未成功,那么在DONE元標識之后的額外報頭,將不會有響應(yīng)數(shù)據(jù)緊隨。
[0053] 參閱圖4,圖4為聯(lián)網(wǎng)環(huán)境的實施方式。一種提供HTTP協(xié)議上的信息用于通過網(wǎng) 絡(luò)在客戶端和服務(wù)器之間進行數(shù)據(jù)交換的系統(tǒng),可通過一個或多個服務(wù)器41上執(zhí)行的的 軟件如主機服務(wù)進行實施。平臺可通過網(wǎng)絡(luò)42同個人計算設(shè)備上的客戶端應(yīng)用程序進行 通信,個人計算設(shè)備可如智能電話43、便攜式計算機44或臺式計算機45 ( '客戶端設(shè)備')。
[0054] 在任一客戶端設(shè)備43-45上執(zhí)行的客戶端應(yīng)用程序可利于同服務(wù)器41或個人服 務(wù)器46上所執(zhí)行的應(yīng)用程序進行通信。任一所述服務(wù)器上所執(zhí)行的應(yīng)用程序可利于通過 HTTP進行數(shù)據(jù)交換。應(yīng)用程序可直接從數(shù)據(jù)存儲區(qū)47或通過數(shù)據(jù)庫服務(wù)器48獲取相關(guān)數(shù) 據(jù),并通過客戶端設(shè)備43-45向用戶提供所請求的服務(wù)(如文件編輯)。
[0055] 網(wǎng)絡(luò)42可包括服務(wù)器、客戶端、互聯(lián)網(wǎng)服務(wù)提供者和通信媒介間的任意拓撲結(jié) 構(gòu)。依據(jù)于實施例的系統(tǒng)可具有靜態(tài)的或動態(tài)的拓撲結(jié)構(gòu)。網(wǎng)絡(luò)42可包括安全網(wǎng)絡(luò)如企 業(yè)網(wǎng)絡(luò)、未加密網(wǎng)絡(luò)如無線開放網(wǎng)絡(luò)或互聯(lián)網(wǎng)。網(wǎng)絡(luò)42也可在其他網(wǎng)絡(luò)上協(xié)調(diào)通信,如 PSTN(Public Switched Telephone Network,公共交換電話網(wǎng)絡(luò))或移動網(wǎng)絡(luò)。此外,網(wǎng)絡(luò) 42可包括短距離無線網(wǎng)絡(luò)如藍牙或類似的網(wǎng)絡(luò)。網(wǎng)絡(luò)42在本文件所描述的節(jié)點之間提供 通信。例如(非限制),網(wǎng)絡(luò)42可包括無線媒介,如聲音、射頻、紅外線或其他的無線媒介。
[0056] 可應(yīng)用計算設(shè)備、應(yīng)用程序、數(shù)據(jù)源和數(shù)據(jù)分布系統(tǒng)的許多其他配置,對提供HTTP 協(xié)議上信息通過網(wǎng)絡(luò)在客戶端和服務(wù)器之間進行數(shù)據(jù)交換的平臺進行實施。此外,圖4中 所討論的聯(lián)網(wǎng)環(huán)境僅出于解釋的目的。實施例不限于應(yīng)用程序、模塊或進程等實例。
[0057] 參閱圖5,圖5是本發(fā)明計算機可讀存儲設(shè)備一實施方式的結(jié)構(gòu)示意圖。計算機 可讀存儲設(shè)備50可為執(zhí)行應(yīng)用程序的任意計算機可讀存儲設(shè)備,其中,應(yīng)用程序用于提供 HTTP協(xié)議上信息通過網(wǎng)絡(luò)在客戶端和服務(wù)器之間進行數(shù)據(jù)交換。并且,計算機可讀存儲設(shè) 備50包括至少一個處理單元51和系統(tǒng)存儲器52。計算機可讀存儲設(shè)備50可包括多個協(xié) 作執(zhí)行程序的處理單元。取決于計算機可讀存儲設(shè)備的確切配置和類型,系統(tǒng)存儲器52可 為易失性的(如隨機存取存儲器),非易失性的(如只讀存儲器、閃存等)或兩者的組合。 系統(tǒng)存儲器52通常包括用于控制平臺運行的操作系統(tǒng)53。系統(tǒng)存儲器52也可包括一個或 多個軟件應(yīng)用程序如功能應(yīng)用程序54和通信應(yīng)用程序模塊55。
[0058] 功能應(yīng)用程序54可為提供多種服務(wù)的應(yīng)用程序,例如電子郵件應(yīng)用程序、社交網(wǎng) 絡(luò)應(yīng)用程序、協(xié)作應(yīng)用程序、企業(yè)管理應(yīng)用程序、短訊應(yīng)用程序、文字處理應(yīng)用程序、電子表 格應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序和演示應(yīng)用程序。通信應(yīng)用程序模塊55作為功能應(yīng)用程序54 的一部分,可使用戶獲取儲存于遠程服務(wù)器上的數(shù)據(jù)并同數(shù)據(jù)進行交互,例如電子郵件、聯(lián) 系人和日歷數(shù)據(jù)。通過通信應(yīng)用程序模塊55,功能應(yīng)用程序54可應(yīng)用HTTP協(xié)議上信息從 遠程服務(wù)器請求數(shù)據(jù)。HTTP協(xié)議上信息可提供指示至遠程服務(wù)器即對何種數(shù)據(jù)進行檢索及 從哪里檢索,也可指示遠程服務(wù)器發(fā)送回執(zhí)響應(yīng)和一系列指明了處理請求的狀態(tài)的分塊響 應(yīng)。功能應(yīng)用程序54和通信應(yīng)用程序模塊55可以是主機托管服務(wù)中獨立的應(yīng)用程序或者 集成的模塊。
[0059] 計算機可讀存儲設(shè)備50可具有額外的特征或功能。例如,計算機可讀存儲設(shè)備50 可包括額外的數(shù)據(jù)存儲設(shè)備(可拆卸和/或不可拆卸)例如,磁盤、光盤或磁帶。這樣的額 外存儲器在圖5中通過可拆卸存儲器56和不可拆卸存儲器57進行揭示。計算機可讀存儲 媒介可包括用于儲存信息以任何方式運行的易失性的和不可易失性的、可移除的和不可移 除的媒介,例如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。系統(tǒng)存儲器52、可拆卸 存儲器56以及不可拆卸存儲器57為計算機可讀存儲媒介的所有實例。計算機可讀存儲媒 介包括但不限于,隨機存取存儲器、只讀存儲器、電可擦除存儲器、閃存或其他的存儲技術(shù), 只讀光盤驅(qū)動器、數(shù)字化通用光盤或其他的光存儲器,磁帶、磁盤存儲器或其他的磁存儲設(shè) 備,或其他任何能用來儲存所請求的信息且能被計算機可讀存儲設(shè)備50訪問的媒介。任何 這種計算機可讀存儲媒介可為計算機可讀存儲設(shè)備50的一部分。計算機可讀存儲設(shè)備50 還可具有輸入設(shè)備58如鍵盤、鼠標、手寫筆、語音輸入設(shè)備、觸摸輸入設(shè)備,以及其他類似 的輸入設(shè)備。輸出設(shè)備59如顯示器、揚聲器、打印機,也可包括其他類型的輸出設(shè)備。這些 設(shè)備都是本領(lǐng)域公知的設(shè)備,因而不需要在此詳細討論。
[0060] 計算機可讀存儲設(shè)備50也可包含通信連接510,通信連接510能使計算設(shè)備同其 他設(shè)備511進行通信,如通過分布式計算環(huán)境中的有線或無線網(wǎng)絡(luò)、衛(wèi)星鏈路、移動鏈路、 短距離網(wǎng)絡(luò)進行通信,以及可比的機制。其他設(shè)備511可包括執(zhí)行通信應(yīng)用程序、網(wǎng)絡(luò)服務(wù) 器和可比設(shè)備的計算機設(shè)備。通信連接510為通信媒介的一個實例。通信媒介可包括計算 機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。例如(非限制),通信媒介包括有線媒介如有 線網(wǎng)絡(luò)或直接有線連接,以及無線媒介如聲音、射頻、紅外線和其他的無線媒介。
[0061] 參閱圖6,圖6是本發(fā)明的邏輯流程圖,其中,該邏輯程序提供HTTP協(xié)議上信息通 過網(wǎng)絡(luò)在客戶端和服務(wù)器之間進行數(shù)據(jù)交換。該邏輯程序可在計算機可讀存儲設(shè)備上或在 類似的可通過處理器執(zhí)行指令的電子設(shè)備上實施。
[0062] 步驟SlOl :在客戶端和服務(wù)器之間建立連接。客戶端可為功能服務(wù)和通信服務(wù), 這些服務(wù)可通過網(wǎng)絡(luò)從遠程服務(wù)器獲取信息和數(shù)據(jù),例如云網(wǎng)絡(luò)。
[0063] 步驟S102 :服務(wù)器從客戶端接收POST請求,以在服務(wù)器上開始進行數(shù)據(jù)檢索。 POST請求可為HTTP協(xié)議上信息,其可包含帶有用于數(shù)據(jù)檢索的指令的專門的報頭,所述報 頭包括請求類型報頭、請求標識報頭、郵箱標識報頭和內(nèi)容類型報頭。
[0064] 步驟S103 :服務(wù)器在接收到POST請求后向客戶端發(fā)送回執(zhí)響應(yīng)。
[0065] 步驟S104 :服務(wù)器在對請求進行處理時,向客戶端發(fā)送中間分塊響應(yīng)。中間分塊 響應(yīng)可向客戶端指明數(shù)據(jù)請求的狀態(tài),并可維持客戶端和服務(wù)器之間的連接。分塊響應(yīng)可 定期發(fā)送,這可是預(yù)先設(shè)定的及可配置的。
[0066] 步驟S105 :服務(wù)器:向客戶端發(fā)送DONE響應(yīng),以指明已經(jīng)檢索到所請求的數(shù)據(jù), 且數(shù)據(jù)可通過連接提供至客戶端。
[0067] 本發(fā)明所述服務(wù)器端接收連接請求;通過HTTP建立所述連接;通過所述連接接收 數(shù)據(jù)請求;對所述數(shù)據(jù)請求做出響應(yīng),發(fā)送回執(zhí)響應(yīng);處理所述數(shù)據(jù)請求以對所請求的數(shù) 據(jù)進行檢索;在檢索到所述所請求的數(shù)據(jù)后,向所述客戶端發(fā)送最終響應(yīng)。由于當服務(wù)器接 收到請求時,服務(wù)器可向客戶端發(fā)送回執(zhí)響應(yīng),這樣,服務(wù)器對請求進行處理以指明連接仍 然處于建立狀態(tài),在檢索到所請求的數(shù)據(jù)之后,服務(wù)器可向客戶端返回一條包含有所請求 的數(shù)據(jù)的最終響應(yīng),通過這種方式,能夠不需要復(fù)雜編碼和配置,且不會丟失建立起來的連 接。
[0068] 以上所述僅為本發(fā)明的實施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本 發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的 技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
【主權(quán)項】
1. 一種在數(shù)據(jù)交換中傳輸HTTP協(xié)議的方法,所述方法在計算設(shè)備的至少一部分上執(zhí) 行,其中,所述計算設(shè)備提供超文本傳輸協(xié)議HTTP協(xié)議上的信息,以用于通過網(wǎng)絡(luò)在客戶 端和服務(wù)器端之間進行數(shù)據(jù)交換,其特征在于,所述方法包括: 所述服務(wù)器端接收連接請求; 通過HTTP建立所述連接; 通過所述連接接收數(shù)據(jù)請求; 對所述數(shù)據(jù)請求做出響應(yīng),發(fā)送回執(zhí)響應(yīng); 處理所述數(shù)據(jù)請求以對所請求的數(shù)據(jù)進行檢索; 在檢索到所述所請求的數(shù)據(jù)后,向所述客戶端發(fā)送最終響應(yīng)。2. 如權(quán)利要求1所述的方法,其特征在于,所述接收數(shù)據(jù)請求的步驟,進一步包括: 接收HTTP請求。3. 如權(quán)利要求2所述的方法,其特征在于,所述方法進一步包括: 接收帶有一個或多個報頭的所述HTTP請求,所述報頭包含用于處理所述數(shù)據(jù)請求的 指令。4. 如權(quán)利要求3所述的方法,其特征在于,所述報頭包含一個或多個的:類型報頭、請 求標識報頭、郵箱標識報頭和內(nèi)容類型報頭。5. 如權(quán)利要求4所述的方法,其特征在于,所述類型報頭用于指明所述用戶正在試圖 執(zhí)行的操作。6. 如權(quán)利要求4所述的方法,其特征在于,所述請求標識用于標識所述請求是從所述 客戶端至所述服務(wù)器端。7. 如權(quán)利要求4所述的方法,其特征在于,所述郵箱標識為一個參數(shù),所述參數(shù)對與所 述客戶端相關(guān)的電子郵件賬戶進行標識,其中,所述客戶端通過所述電子郵件賬戶向所述 服務(wù)器端發(fā)送數(shù)據(jù)檢索請求。8. 如權(quán)利要求4所述的方法,其特征在于,所述內(nèi)容類型報頭被設(shè)置為應(yīng)用程序/八位 字節(jié)流類型。9. 如權(quán)利要求1所述的方法,其特征在于,所述方法進一步包括: 在對所述請求進行處理時,發(fā)送一系列中間分塊響應(yīng)。10. 如權(quán)利要求9所述的方法,其特征在于,所述發(fā)送所述中間分塊響應(yīng)的步驟,進一 步包括: 將報頭包含于所述分塊響應(yīng)的至少一個部分中,其中,傳輸編碼值為"分塊"。11. 如權(quán)利要求10所述的方法,其特征在于,所述方法進一步包括: 在對所述數(shù)據(jù)請求進行處理時,以周期性時間間隔發(fā)送所述中間分塊響應(yīng),其中,所述 周期性時間間隔為預(yù)先設(shè)定的和可配置的。12. -種服務(wù)器,所述服務(wù)器用于和客戶端進行數(shù)據(jù)交換,其特征在于,所述服務(wù)器包 括: 存儲器,用于存儲指令; 處理器,耦合至所述存儲器,用于執(zhí)行數(shù)據(jù)檢索應(yīng)用程序,其中,所述數(shù)據(jù)檢索應(yīng)用程 序用以: 接收連接請求; 通過HTTP建立所述連接; 通過所述連接接收數(shù)據(jù)請求; 對所述數(shù)據(jù)請求做出響應(yīng),發(fā)送回執(zhí)響應(yīng); 處理所述請求以對所要求的數(shù)據(jù)進行檢索; 在處理所述請求時發(fā)送一系列中間分塊響應(yīng); 在為所述客戶端檢索到所述數(shù)據(jù)之后,發(fā)送最終響應(yīng)。13. 如權(quán)利要求12所述的服務(wù)器,其特征在于,所述服務(wù)器涉及功能服務(wù),所述功能服 務(wù)提供一個或多個:電子郵件應(yīng)用程序、社交網(wǎng)絡(luò)應(yīng)用程序、協(xié)作應(yīng)用程序、企業(yè)管理應(yīng)用 程序、短消息應(yīng)用程序、文字處理應(yīng)用程序、電子表格應(yīng)用程序、數(shù)據(jù)庫應(yīng)用程序、演示應(yīng)用 程序,以及電子郵件、聯(lián)系人和日歷管理應(yīng)用程序。14. 如權(quán)利要求12所述的服務(wù)器,其特征在于,所述數(shù)據(jù)請求為包含一個或多個報頭 的HTTP請求,所述報頭帶有處理所述數(shù)據(jù)請求的指令。15. 如權(quán)利要求14所述的服務(wù)器,其特征在于,所述報頭包含一個或多個:類型報頭、 請求標識報頭、郵箱標識報頭和內(nèi)容類型報頭。16. 如權(quán)利要求15所述的服務(wù)器,其特征在于,所述類型報頭用于指明所述客戶端正 在試圖執(zhí)行的操作,所述請求標識報頭用于標識所述請求是從所述客戶端至所述服務(wù)器 端,所述郵箱標識為一個參數(shù),所述參數(shù)對與所述客戶端相關(guān)的電子郵件賬戶進行標識,其 中,所述客戶端通過所述電子郵件賬戶向所述服務(wù)器端發(fā)送數(shù)據(jù)檢索請求,而所述內(nèi)容類 型報頭被設(shè)置為應(yīng)用程序/八位字節(jié)流。17. 如權(quán)利要求12所述的服務(wù)器,其特征在于,所述一系列中間分塊響應(yīng)的所述分塊 響應(yīng)中包含報頭,并以"分塊"作為傳輸編碼值。18. 如權(quán)利要求12所述的服務(wù)器,其特征在于,所述數(shù)據(jù)檢索應(yīng)用程序進一步用于: 在所述最終響應(yīng)中包含DONE元標簽,以便于指明已向所述客戶端發(fā)送最終響應(yīng),其 中,所述DONE元標簽之后緊隨來自所述服務(wù)器端的帶有所請求的數(shù)據(jù)的值。19. 一種計算機可讀存儲設(shè)備,所述計算機可讀存儲設(shè)備用于儲存指令,所述指令用 于提供HTTP協(xié)議上的信息,以通過網(wǎng)絡(luò)在客戶端和服務(wù)器端之間進行數(shù)據(jù)交換,其特征在 于,所述指令包括: 所述服務(wù)器端接收連接請求; 通過HTTP建立所述連接; 通過所述連接接收HTTP POST數(shù)據(jù)請求; 對所述數(shù)據(jù)請求作出響應(yīng),發(fā)送回執(zhí)響應(yīng); 處理所述請求以對所請求的數(shù)據(jù)進行檢索; 在處理所述請求時,以固定的時間間隔發(fā)送一系列中間分塊響應(yīng); 在為所述客戶端檢索到所要求的數(shù)據(jù)后,發(fā)送最終響應(yīng)。20. 如權(quán)利要求19所述的計算機可讀存儲設(shè)備,其特征在于,所述指令進一步包括: 所述最終響應(yīng)中包含DONE元標簽,以便于指明已向所述客戶端發(fā)送最終響應(yīng)及所請 求的數(shù)據(jù),其中,所述元標簽之后緊隨來自所述服務(wù)器的帶有所請求的數(shù)據(jù)的值; 使所述服務(wù)器端能夠在所述最終響應(yīng)中返回額外的報頭,其中,所述最終響應(yīng)中的所 述額外報頭將一個或多個中間分塊響應(yīng)中的標頭值進行覆蓋。
【文檔編號】H04L29/08GK106034157SQ201510119975
【公開日】2016年10月19日
【申請日】2015年3月18日
【發(fā)明人】劉陽, 袁慶升, 薛晨, 黃亮, 李高超, 鄒學(xué)強, 常為嶺, 徐原, 王凱峰
【申請人】國家計算機網(wǎng)絡(luò)與信息安全管理中心, 北京天元特通科技有限公司