在客戶端處管理服務(wù)器推送的資源的制作方法
【專利摘要】在一個(gè)實(shí)施例中,客戶端設(shè)備可以在客戶端堆棧處處置從服務(wù)器接收推送資源??蛻舳硕褩?梢韵蚍?wù)器發(fā)送初始導(dǎo)航請求以發(fā)起服務(wù)器的導(dǎo)航??蛻舳硕褩?梢詮奶幚沓跏紝?dǎo)航請求的服務(wù)器接收推送資源??蛻舳硕褩?梢詫⑼扑唾Y源匹配到初始導(dǎo)航請求。
【專利說明】
在客戶端處管理服務(wù)器推送的資源
【背景技術(shù)】
[0001]客戶端設(shè)備可以通過諸如互聯(lián)網(wǎng)之類的網(wǎng)絡(luò)數(shù)據(jù)連接而連接到服務(wù)器。駐留在客戶端設(shè)備上的用戶代理可以訪問由駐留在服務(wù)器上的服務(wù)器應(yīng)用管理的數(shù)據(jù)資源,諸如網(wǎng)頁。用戶代理可以請求服務(wù)器應(yīng)用向用戶代理發(fā)送數(shù)據(jù)資源。數(shù)據(jù)資源可以鏈接到一個(gè)或多個(gè)子資源的集合,諸如腳本文件、圖像文件、視頻文件、音頻文件、小應(yīng)用程序或其它子資源。用戶代理可以在解析主資源時(shí)發(fā)現(xiàn)這些所鏈接的資源。用戶代理然后可以從服務(wù)器應(yīng)用發(fā)送針對每一個(gè)所鏈接的資源的所鏈接的資源請求。服務(wù)器應(yīng)用然后可以在接收到所鏈接的資源請求時(shí)發(fā)送每一個(gè)所鏈接的資源。
【發(fā)明內(nèi)容】
[0002]提供本
【發(fā)明內(nèi)容】
來以簡化形式引入以下在【具體實(shí)施方式】中進(jìn)一步描述的概念的選擇。本
【發(fā)明內(nèi)容】
不意圖標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或本質(zhì)特征,也不意圖用于限制所要求保護(hù)的整體的范圍。
[0003]以下討論的實(shí)施例涉及在客戶端堆棧處處置從服務(wù)器接收的推送資源的客戶端設(shè)備。客戶端堆??梢韵蚍?wù)器發(fā)送初始導(dǎo)航請求以發(fā)起服務(wù)器的導(dǎo)航??蛻舳硕褩?梢詮奶幚沓跏紝?dǎo)航請求的服務(wù)器接收推送資源??蛻舳硕褩?梢詫⑼扑唾Y源匹配到初始導(dǎo)航請求。
【附圖說明】
[0004]為了描述可以以其獲得以上敘述的和其它的優(yōu)點(diǎn)和特征的方式,闡述更特別的描述并且其將參照附圖中圖示的其具體實(shí)施例來再現(xiàn)。在理解到這些圖僅描繪典型實(shí)施例并且不因而被視為限制其范圍的情況下,將以附加獨(dú)特性和細(xì)節(jié)通過使用附圖來描述和解釋實(shí)現(xiàn)方式。
[0005]圖1在框圖中圖示了數(shù)據(jù)網(wǎng)絡(luò)的一個(gè)實(shí)施例。
[0006]圖2在框圖中圖示了計(jì)算設(shè)備的一個(gè)實(shí)施例。
[0007]圖3在框圖中圖示了鏈接資源結(jié)構(gòu)的一個(gè)實(shí)施例。
[0008]圖4a_4b在流程圖中圖示了鏈接資源傳輸?shù)膶?shí)施例。
[0009]圖5在框圖中圖示了服務(wù)器推送網(wǎng)絡(luò)架構(gòu)的一個(gè)實(shí)施例。
[0010]圖6在流程圖中圖示了通過用戶代理下載具有鏈接資源的數(shù)據(jù)資源的方法的一個(gè)實(shí)施例。
[0011]圖7在流程圖中圖示了通過客戶端堆棧下載主資源的方法的一個(gè)實(shí)施例。
[0012]圖8在流程圖中圖示了通過客戶端堆棧處理鏈接資源的方法的一個(gè)實(shí)施例。
[0013]圖9在流程圖中圖示了通過服務(wù)器發(fā)送具有鏈接資源的數(shù)據(jù)資源的方法的一個(gè)實(shí)施例。
【具體實(shí)施方式】
[0014]以下詳細(xì)討論實(shí)施例。雖然討論具體實(shí)現(xiàn)方式,但是應(yīng)當(dāng)理解的是,這僅僅為了說明目的而做出。相關(guān)領(lǐng)域技術(shù)人員將認(rèn)識到可以使用其它組件和配置而不脫離本公開的主題的精神和范圍。實(shí)現(xiàn)方式可以是機(jī)器實(shí)現(xiàn)的方法、具有詳述存儲在其上的方法的用于至少一個(gè)處理器、客戶端設(shè)備或服務(wù)器的指令集的有形機(jī)器可讀介質(zhì)。
[0015]作為對通過使用請求-響應(yīng)方案來拉取存儲在服務(wù)器上的數(shù)據(jù)資源的客戶端設(shè)備的替換方案,服務(wù)器可以使用“推送”協(xié)議(諸如超文本傳輸協(xié)議(HTTP)2.0)向已經(jīng)開始該服務(wù)器的導(dǎo)航的客戶端設(shè)備主動(dòng)發(fā)送鏈接資源而不等待請求。推送協(xié)議是允許服務(wù)器向客戶端設(shè)備發(fā)送鏈接資源而沒有來自客戶端設(shè)備的針對該鏈接資源的請求的協(xié)議。為了防止任意或惡意數(shù)據(jù)取代于這些“推送”資源而被插入,允許客戶端設(shè)備連接到網(wǎng)絡(luò)的客戶端堆??梢灾贫ㄌ幹萌魏螑阂鈹?shù)據(jù)的協(xié)議??蛻舳嗽O(shè)備或服務(wù)器可以配置在堆棧層級處使得操作在客戶端設(shè)備上的用戶代理或操作在服務(wù)器上的服務(wù)器應(yīng)用關(guān)于客戶端設(shè)備或服務(wù)器是正在執(zhí)行請求-響應(yīng)協(xié)議或還是推送協(xié)議可能是不可知的。可替換地,堆棧層級處的配置用于推送協(xié)議的服務(wù)器可以與在用戶代理處操作推送協(xié)議的客戶端設(shè)備交互。類似地,堆棧層級處的配置用于推送協(xié)議的客戶端設(shè)備可以與在服務(wù)器應(yīng)用處操作推送協(xié)議的服務(wù)器交互。
[0016]通過使用現(xiàn)有依賴性基礎(chǔ)設(shè)施,客戶端堆棧可以將推送資源與初始請求開始導(dǎo)航相關(guān)聯(lián)。以此方式,推送資源可以被服務(wù)于作為初始頁面下載的結(jié)果而源起的請求。該動(dòng)作可以創(chuàng)建安全邊界以防止有害或不相關(guān)的響應(yīng)作為推送資源而繞開安全協(xié)議。此外,該關(guān)聯(lián)可以基于初始導(dǎo)航請求而向流添加壽命。
[0017]為了保護(hù)系統(tǒng)以防存儲在持久性存儲介質(zhì)(諸如盤)上的惡意內(nèi)容,客戶端堆??梢栽谝资詳?shù)據(jù)儲存中存儲與推送資源相關(guān)聯(lián)的設(shè)定量的數(shù)據(jù),充當(dāng)虛擬氣閘以保護(hù)用戶代理或客戶端設(shè)備。虛擬氣閘是存儲推送資源的緩存的部分,而同時(shí)客戶端堆棧檢查推送資源以發(fā)現(xiàn)推送資源的進(jìn)一步處理是否可能損害客戶端設(shè)備。如果緩存報(bào)頭允許,一旦用戶代理請求了資源,客戶端堆??梢詫?shù)據(jù)寫入到持久性存儲介質(zhì)。用戶代理可以在數(shù)據(jù)被寫入到持久性存儲介質(zhì)之前對照資源全局資源定位符運(yùn)行任何檢查、安全協(xié)議或惡意軟件掃描。
[0018]為了保持用戶代理可以從超文本傳輸協(xié)議實(shí)現(xiàn)方式預(yù)期的請求-響應(yīng)模型,客戶端堆??梢栽谳斎?輸出接口背后的存儲器中存儲推送資源作為抽象連接對象。抽象連接對象模仿經(jīng)由網(wǎng)絡(luò)數(shù)據(jù)連接接收的對象,諸如抽象套接字對象。當(dāng)客戶端堆棧準(zhǔn)備發(fā)送用戶代理的請求時(shí),客戶端堆??梢詸z查已經(jīng)可用的任何推送資源。如果推送資源存在,客戶端堆棧可以舍棄請求數(shù)據(jù)并且使用抽象連接對象。在該點(diǎn)處客戶端堆棧可以通知用戶代理指示請求通過網(wǎng)絡(luò)被發(fā)送的任何狀態(tài)信息,諸如互聯(lián)網(wǎng)協(xié)議地址、連接狀態(tài)、或其它網(wǎng)絡(luò)數(shù)據(jù)。在該點(diǎn)處用戶代理可以開始讀取響應(yīng)數(shù)據(jù)??蛻舳硕褩?梢苑?wù)已經(jīng)直接從抽象連接對象中的現(xiàn)有數(shù)據(jù)到達(dá)的任何數(shù)據(jù)。
[0019]該方案可以允許客戶端應(yīng)用聚焦于決定在給定時(shí)刻請求哪個(gè)資源的智能,而同時(shí)客戶端堆棧處置應(yīng)對推送資源的機(jī)制??蛻舳硕褩?梢詿o縫地滿足與推送資源一起來自用戶代理的常規(guī)請求。進(jìn)而,客戶端應(yīng)用以及任何第三方客戶端應(yīng)用可以受益于服務(wù)器推送而沒有應(yīng)用代碼的重寫,假定客戶端應(yīng)用支持依賴性基礎(chǔ)設(shè)施。
[0020]因此,在一個(gè)實(shí)施例中,客戶端設(shè)備可以在客戶端堆棧處處置從服務(wù)器接收推送資源。客戶端堆??梢韵蚍?wù)器發(fā)送初始導(dǎo)航請求以發(fā)起服務(wù)器的導(dǎo)航??蛻舳硕褩?梢詮奶幚沓跏紝?dǎo)航請求的服務(wù)器接收推送資源作為服務(wù)器的導(dǎo)航的部分??蛻舳硕褩?梢詫⑼扑唾Y源匹配到初始導(dǎo)航請求??蛻舳硕褩?梢詫⑼扑唾Y源放置在虛擬氣閘中。客戶端堆??梢源鎯ν扑唾Y源作為抽象連接對象。當(dāng)觸發(fā)事件時(shí),客戶端堆棧可以從虛擬氣閘推動(dòng)推送資源。
[0021]圖1在框圖中圖示了數(shù)據(jù)網(wǎng)絡(luò)100的一個(gè)實(shí)施例??蛻舳嗽O(shè)備110可以經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)連接150連接到服務(wù)器120。服務(wù)器120可以是指單個(gè)服務(wù)器或管理一個(gè)或多個(gè)數(shù)據(jù)資源的分布式服務(wù)器集合??商鎿Q地,對等網(wǎng)絡(luò)中的對等設(shè)備可以作為服務(wù)器120與計(jì)算設(shè)備110—起執(zhí)行。數(shù)據(jù)網(wǎng)絡(luò)連接150可以是互聯(lián)網(wǎng)連接、廣域網(wǎng)連接、局域網(wǎng)連接或其它類型的數(shù)據(jù)網(wǎng)絡(luò)連接。
[0022]客戶端設(shè)備110可以使用客戶端堆棧114執(zhí)行用戶代理112。用戶代理112是允許用戶通過數(shù)據(jù)網(wǎng)絡(luò)100訪問和管理不同設(shè)備上的數(shù)據(jù)資源的軟件應(yīng)用。客戶端堆棧114是通過用戶代理112管理硬件資源的使用以通過數(shù)據(jù)網(wǎng)絡(luò)與其它設(shè)備連接的軟件應(yīng)用集合??蛻舳硕褩?14可以在內(nèi)核模式140中操作,具有操作系統(tǒng)層級特權(quán),或者在用戶模式142中操作,具有應(yīng)用層級特權(quán)。
[0023]服務(wù)器120可以使用服務(wù)器堆棧124執(zhí)行服務(wù)器應(yīng)用122。服務(wù)器應(yīng)用122是控制和管理由不同設(shè)備通過數(shù)據(jù)網(wǎng)絡(luò)100可訪問的數(shù)據(jù)資源的軟件應(yīng)用。服務(wù)器堆棧124是通過服務(wù)器應(yīng)用122管理硬件資源的使用以通過數(shù)據(jù)網(wǎng)絡(luò)與其它設(shè)備連接的軟件應(yīng)用集合。服務(wù)器堆棧可以在內(nèi)核模式140中操作,其中內(nèi)核模式驅(qū)動(dòng)器充當(dāng)服務(wù)器堆棧124,或者在用戶模式142中操作。內(nèi)核模式驅(qū)動(dòng)器是操作在內(nèi)核模式中或在服務(wù)器120上的操作系統(tǒng)層級特權(quán)處的驅(qū)動(dòng)器。
[0024]圖2圖示了可以充當(dāng)客戶端設(shè)備110和服務(wù)器120的示例性計(jì)算設(shè)備200的框圖。計(jì)算設(shè)備200可以組合硬件、軟件、固件和片上系統(tǒng)技術(shù)中的一個(gè)或多個(gè)以實(shí)現(xiàn)客戶端設(shè)備110和服務(wù)器120。計(jì)算設(shè)備200可以包括總線210、處理器220、存儲器230、數(shù)據(jù)儲存240、輸入/輸出設(shè)備250和通信接口 260。總線210或其它組件互連可以準(zhǔn)許計(jì)算設(shè)備200的組件之中的通信。
[0025]處理器220可以包括解釋和執(zhí)行指令集的至少一個(gè)常規(guī)處理器或微處理器。存儲器230可以是隨機(jī)存取存儲器(RAM)或另一類型的動(dòng)態(tài)或易失性數(shù)據(jù)儲存,其存儲用于由處理器220執(zhí)行的指令和信息。存儲器230還可以存儲在通過處理器220執(zhí)行指令期間使用的臨時(shí)變量或其它中間信息。數(shù)據(jù)儲存240可以包括常規(guī)ROM設(shè)備或另一類型的靜態(tài)或持久性數(shù)據(jù)儲存,其存儲用于處理器220的靜態(tài)信息和指令。數(shù)據(jù)儲存240可以包括任何類型的有形機(jī)器可讀介質(zhì),諸如例如磁性或光學(xué)記錄介質(zhì),諸如數(shù)字視頻盤及其對應(yīng)的驅(qū)動(dòng)器。有形機(jī)器可讀介質(zhì)是存儲機(jī)器可讀代碼或指令的物理介質(zhì),如與信號相對。如本文所描述的使指令存儲在計(jì)算機(jī)可讀介質(zhì)上與使指令被傳播或傳送是可區(qū)分的,因?yàn)閭鞑鬏斨噶睿鎯χ噶钪T如可以與具有存儲在其上的指令的計(jì)算機(jī)可讀介質(zhì)一起發(fā)生。因此,除非另行指出,否則以這種形式或類似形式對具有存儲在其上的指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的引用參考其上可以存儲或保留數(shù)據(jù)的有形介質(zhì)。數(shù)據(jù)儲存240可以存儲詳述方法的指令集,其在由一個(gè)或多個(gè)處理器執(zhí)行時(shí)使一個(gè)或多個(gè)處理器執(zhí)行方法。數(shù)據(jù)儲存240還可以是數(shù)據(jù)庫或用于存儲數(shù)據(jù)資源和鏈接資源的數(shù)據(jù)庫接口。
[0026]輸入/輸出設(shè)備250可以包括準(zhǔn)許用戶向計(jì)算設(shè)備200輸入信息的一個(gè)或多個(gè)常規(guī)機(jī)構(gòu),諸如鍵盤、鼠標(biāo)、語音識別設(shè)備、麥克風(fēng)、耳機(jī)、手勢識別設(shè)備、觸摸屏等。輸入/輸出設(shè)備250可以包括向用戶輸出信息的一個(gè)或多個(gè)常規(guī)機(jī)構(gòu),包括顯不器、打印機(jī)、一個(gè)或多個(gè)揚(yáng)聲器、耳機(jī)或介質(zhì),諸如存儲器,或磁盤或光盤和對應(yīng)盤驅(qū)動(dòng)器。通信接口 260可以包括任何收發(fā)器式機(jī)構(gòu),其使得計(jì)算設(shè)備200能夠與其它設(shè)備或網(wǎng)絡(luò)通信。通信接口 260可以包括網(wǎng)絡(luò)接口或收發(fā)器接口。通信接口 260可以是無線、有線或光學(xué)接口。
[0027]計(jì)算設(shè)備200可以響應(yīng)于處理器220執(zhí)行包含在計(jì)算機(jī)可讀介質(zhì)(諸如例如存儲器230、磁盤或光盤)中的指令序列而施行這樣的功能。這樣的指令可以從另一計(jì)算機(jī)可讀介質(zhì)(諸如數(shù)據(jù)儲存240)或從分離設(shè)備經(jīng)由通信接口 260被讀取到存儲器230中。
[0028]圖3在框圖中圖示了鏈接資源結(jié)構(gòu)300的一個(gè)實(shí)施例。服務(wù)器應(yīng)用122可以控制客戶端設(shè)備110可能試圖訪問的主資源310。主資源310可以是網(wǎng)頁或其它數(shù)據(jù)支持結(jié)構(gòu)。主資源310可以是在接收訪問請求與發(fā)送主資源310之間不改變的靜態(tài)資源??商鎿Q地,主資源310可以是構(gòu)建在接收訪問請求與發(fā)送主資源310之間的動(dòng)態(tài)資源。服務(wù)器120可以在構(gòu)建動(dòng)態(tài)資源時(shí)部分地發(fā)送動(dòng)態(tài)資源。
[0029]主資源310可以引用可以由控制主資源310或其它服務(wù)器應(yīng)用122的服務(wù)器應(yīng)用122控制的其它資源,將其稱為鏈接資源320。鏈接資源320可以存在于與主資源310相同的服務(wù)器120上或者在可替換服務(wù)器120上。鏈接資源320可以是腳本文件、圖像文件、視頻文件、音頻文件、小應(yīng)用程序、不同網(wǎng)頁或其它子資源。
[0030]之前,試圖獲取具有鏈接資源320的主資源310的客戶端設(shè)備110可以使用請求-響應(yīng)協(xié)議獲取那些資源。圖4a在流程圖中圖示了請求-響應(yīng)協(xié)議訪問400的一個(gè)實(shí)施例??蛻舳嗽O(shè)備110可以向服務(wù)器120發(fā)送初始導(dǎo)航請求402。服務(wù)器120可以在主資源響應(yīng)404中向客戶端設(shè)備110發(fā)送主資源310。主資源響應(yīng)404可以具有一個(gè)或多個(gè)報(bào)頭和包含主資源的實(shí)體主體。主資源響應(yīng)404可以具有主資源310具有一個(gè)或多個(gè)鏈接資源320的指示。客戶端設(shè)備110可以向服務(wù)器120發(fā)送針對每一個(gè)鏈接資源320的鏈接資源請求406。服務(wù)器120可以通過在鏈接資源響應(yīng)408中向客戶端設(shè)備110發(fā)送鏈接資源320來回復(fù)每一個(gè)鏈接資源請求406。
[0031]可替換地,客戶端設(shè)備110可以使用推送協(xié)議獲取主資源310的鏈接資源320。圖4b在流程圖中圖示了推送協(xié)議訪問450的一個(gè)實(shí)施例??蛻舳嗽O(shè)備110可以向服務(wù)器120發(fā)送初始導(dǎo)航請求402。服務(wù)器120可以在主資源響應(yīng)404中向客戶端設(shè)備110發(fā)送主資源310。服務(wù)器120可以確定主資源310具有一個(gè)或多個(gè)鏈接資源320。服務(wù)器120可以向客戶端設(shè)備110發(fā)送作為推送資源452的每一個(gè)鏈接資源320。
[0032]在客戶端側(cè)上,圖5在框圖中圖示了配置成在客戶端堆棧114處處理客戶端設(shè)備110上的推送資源的服務(wù)器推送網(wǎng)絡(luò)架構(gòu)500的一個(gè)實(shí)施例。在下載階段502期間,用戶代理112可以創(chuàng)建用于頂部層級導(dǎo)航的資源請求對象504。請求可以是針對超文本傳輸協(xié)議資源,諸如網(wǎng)頁,或某種其它數(shù)據(jù)資源。用戶代理112可以創(chuàng)建與請求對象相關(guān)聯(lián)的依賴性處置??蛻舳硕褩?14可以在依賴性處置504上尋找推送資源452,很可能在該點(diǎn)處沒有找到??蛻舳硕褩?14可以使用復(fù)用器508創(chuàng)建到服務(wù)器120的連接。復(fù)用器508可以創(chuàng)建推送協(xié)議連接,諸如HTTP 2.0連接,允許客戶端堆棧114接收推送資源452。資源請求對象504可以使用復(fù)用器508聯(lián)系服務(wù)器120中的過程請求對象510。過程請求對象510可以收集用于用戶代理112的所請求的資源。過程請求對象510可以創(chuàng)建發(fā)送響應(yīng)對象512以經(jīng)由復(fù)用器508向客戶端代理發(fā)送回所請求的資源。用戶代理112可以接收在接收資源對象514中的所請求的資源。具有所請求的資源的響應(yīng)可以以超文本標(biāo)記語言(HTML)。
[0033]在推送階段516期間,服務(wù)器120可以向客戶端設(shè)備110推送作為推送資源452的鏈接資源。在解析階段518期間,用戶代理112可以創(chuàng)建解析資源對象520以解析響應(yīng)并且找到要下載的鏈接資源,諸如用于網(wǎng)頁的圖像。在請求資源階段522期間,用戶代理112可以創(chuàng)建請求資源對象524以請求鏈接資源。用戶代理112可以將依賴性處置506與請求資源對象524相關(guān)聯(lián)。用戶代理112然后可以使用請求資源對象524來發(fā)送鏈接資源請求。
[0034]當(dāng)客戶端堆棧114創(chuàng)建與服務(wù)器120的連接時(shí),客戶端堆棧114可以將來自資源請求對象504的依賴性處置506關(guān)聯(lián)到連接。當(dāng)服務(wù)器120標(biāo)識到作為推送資源452的要發(fā)送到客戶端設(shè)備110的鏈接資源時(shí),服務(wù)器120可以向客戶端設(shè)備110發(fā)送推送資源452??蛻舳硕褩?14可以創(chuàng)建抽象連接對象526,將抽象連接對象526與依賴性處置506相關(guān)聯(lián)。通過將抽象連接對象526與依賴性處置506相關(guān)聯(lián),客戶端堆棧114可以將推送資源452與初始導(dǎo)航請求相關(guān)聯(lián)??蛻舳硕褩?14可以在存儲器中將推送資源452緩沖在抽象連接對象526內(nèi),從而將推送資源452保持在虛擬氣閘中。當(dāng)在虛擬氣閘中時(shí),客戶端堆棧114可以針對惡意軟件掃描推送資源。
[0035]客戶端堆棧114可以在依賴性處置506上尋找鏈接資源404,找到推送資源452。客戶端堆棧114可以將包含推送資源452的抽象連接對象526與請求資源對象524相關(guān)聯(lián)。客戶端堆棧114可以為用戶代理112提供指示請求被發(fā)送的狀態(tài)更新??蛻舳硕褩?14可以從抽象連接對象526讀取推送資源452。用戶代理112可以接收鏈接資源對象。用戶代理112的資源再現(xiàn)對象528然后可以再現(xiàn)數(shù)據(jù)資源,諸如網(wǎng)頁。
[0036]圖6在流程圖中圖示了通過用戶代理112下載具有鏈接資源320的數(shù)據(jù)資源的方法600的一個(gè)實(shí)施例。用戶代理112可以向客戶端堆棧114發(fā)送主資源310請求(塊602)。用戶代理112可以從客戶端堆棧114接收主資源310(塊604)。用戶代理112可以解析主資源310(塊606)。如果用戶代理在解析主資源310時(shí)標(biāo)識到一個(gè)或多個(gè)鏈接資源320(塊608),則用戶代理112可以發(fā)送針對每一個(gè)鏈接資源320的鏈接資源請求(塊610)。用戶代理112可以從客戶端堆棧114接收鏈接資源320(塊612)。用戶代理112然后可以再現(xiàn)完整資源,諸如通過呈現(xiàn)網(wǎng)站(塊614)。
[0037]圖7在流程圖中圖示了通過客戶端堆棧114下載主資源310的方法700的一個(gè)實(shí)施例??蛻舳硕褩?14可以從用戶代理112接收主資源請求(塊702)??蛻舳硕褩?14可以向服務(wù)器120發(fā)送初始導(dǎo)航請求402以發(fā)起服務(wù)器的導(dǎo)航(塊704)??蛻舳硕褩?14可以響應(yīng)于主資源請求而接收主資源310(塊706)??蛻舳硕褩?14可以向用戶代理112推送主資源310(塊708)。客戶端堆棧114可以處理作為服務(wù)器的導(dǎo)航的部分到達(dá)的任何推送資源404(塊710)。
[0038]圖8在流程圖中圖示了通過客戶端堆棧114處理鏈接資源320的方法800的一個(gè)實(shí)施例??蛻舳硕褩?14可以接收作為服務(wù)器的導(dǎo)航的部分的推送資源(塊802)??蛻舳硕褩?14可以將推送資源452放置在虛擬氣閥中(塊804)。虛擬氣閥是存儲推送資源452而同時(shí)確定是否要向用戶代理112推動(dòng)推送資源的存儲器的區(qū)段??蛻舳硕褩?14可以存儲作為抽象連接對象526的推送資源452(塊806)??蛻舳硕褩?14可以通過將用于初始導(dǎo)航請求的依賴性處置404附連到抽象連接對象526來將推送資源452匹配到初始導(dǎo)航請求以發(fā)起服務(wù)器120的導(dǎo)航(塊808)。客戶端堆棧114可以向用戶代理112提供針對推送資源452的狀態(tài)描述(塊810)。狀態(tài)描述描述允許用戶代理112標(biāo)識鏈接資源320的推送資源452??蛻舳硕褩?14可以防止推送資源452的惡意軟件掃描的繞開以標(biāo)識推送到客戶端設(shè)備110的任何惡意軟件(塊812)。惡意軟件掃描可以導(dǎo)致潔凈的惡意軟件掃描或臟污的惡意軟件掃描。臟污的惡意軟件掃描是發(fā)現(xiàn)推送資源452是惡意軟件的惡意軟件掃描,而潔凈的惡意軟件掃描指示推送資源452未被標(biāo)識為惡意軟件。
[0039]客戶端堆棧114可以從用戶代理112接收針對推送資源452的鏈接資源請求(塊814)??蛻舳硕褩?14可以在接收到鏈接資源請求時(shí)檢查推送資源452(塊816)。如果推送資源452不匹配鏈接資源請求(塊818),客戶端堆棧114可以向服務(wù)器120發(fā)送鏈接資源請求(塊820)。如果客戶端堆棧114檢測到匹配鏈接資源請求和潔凈的惡意軟件掃描中的至少一個(gè)作為觸發(fā)事件(塊818),客戶端堆棧114可以在觸發(fā)事件時(shí)從虛擬氣閘推動(dòng)推送資源452(塊822)??蛻舳硕褩?14可以在檢測到推送資源時(shí)舍棄鏈接資源請求(塊824)。
[0040]如果客戶端堆棧114檢測到保持周期屆滿、導(dǎo)航終止和臟污的惡意軟件掃描中的至少一個(gè)作為釋放事件(塊826),客戶端堆棧114可以在釋放事件時(shí)刪除推送資源(塊828)。保持周期屆滿是分配用于使虛擬氣閘可以存儲推送資源452的時(shí)間段。導(dǎo)航終止是用戶代理112停止導(dǎo)航的指示。
[0041]圖9在流程圖中圖示了通過服務(wù)器應(yīng)用122發(fā)送具有鏈接資源320的數(shù)據(jù)資源的方法900的一個(gè)實(shí)施例。服務(wù)器120可以從客戶端設(shè)備110接收初始導(dǎo)航請求402(塊902)。服務(wù)器120可以解析初始導(dǎo)航請求402(塊904)。服務(wù)器120可以向客戶端設(shè)備110發(fā)送主資源310(塊906)。如果所請求的主資源310具有一個(gè)或多個(gè)鏈接資源320(塊908),服務(wù)器120可以匯編鏈接資源320(塊910)。服務(wù)器120可以向客戶端設(shè)備110發(fā)送所請求的鏈接資源320作為推送資源452(塊912)。
[0042]盡管已經(jīng)以特定于結(jié)構(gòu)特征和/或方法學(xué)動(dòng)作的語言描述了主題,但是要理解的是,隨附權(quán)利要求中的主題不一定限于以上描述的具體特征或動(dòng)作。而是,以上描述的具體特征和動(dòng)作作為用于實(shí)現(xiàn)權(quán)利要求的示例形式而被公開。
[0043]本發(fā)明的范圍內(nèi)的實(shí)施例還可以包括用于承載或具有存儲在其上的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀存儲介質(zhì)。這樣的計(jì)算機(jī)可讀存儲介質(zhì)可以是可以由通用或?qū)S糜?jì)算機(jī)訪問的任何可用介質(zhì)。作為示例而非限制,這樣的計(jì)算機(jī)可讀存儲介質(zhì)可以包括RAM、R0M、EEPR0M、⑶-ROM或其它光盤儲存、磁盤儲存或其它磁性數(shù)據(jù)儲存,或可以用于以計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的形式承載或存儲所期望的程序代碼構(gòu)件的任何其它介質(zhì)。以上的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀存儲介質(zhì)的范圍內(nèi)。
[0044]實(shí)施例還可以在分布式計(jì)算環(huán)境中實(shí)踐,其中任務(wù)由通過通信網(wǎng)絡(luò)(通過硬連線鏈路、無線鏈路或通過其組合)鏈接的本地或遠(yuǎn)程處理設(shè)備執(zhí)行。
[0045]計(jì)算機(jī)可執(zhí)行指令包括例如使通用計(jì)算機(jī)、專用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備執(zhí)行某個(gè)功能或功能組的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令還包括由獨(dú)立或網(wǎng)絡(luò)環(huán)境中的計(jì)算機(jī)執(zhí)行的程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件和數(shù)據(jù)結(jié)構(gòu)等。與數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的計(jì)算機(jī)可執(zhí)行指令和程序模塊表示用于執(zhí)行本文所公開的方法步驟的程序代碼構(gòu)件的示例。這樣的可執(zhí)行指令或相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)的特定序列表示用于實(shí)現(xiàn)在這樣的步驟中描述的功能的對應(yīng)動(dòng)作的示例。
[0046]盡管以上描述可能包含具體細(xì)節(jié),但是它們不應(yīng)當(dāng)被解釋為以任何方式限制權(quán)利要求。所描述的實(shí)施例的其它配置是本公開的范圍的部分。例如,本公開的原理可以應(yīng)用于每一個(gè)單獨(dú)用戶,其中每一個(gè)用戶可以單獨(dú)部署這樣的系統(tǒng)。這使得每一個(gè)用戶能夠利用本公開的益處,即使大量可能應(yīng)用中的任何不使用本文所描述的功能性。電子設(shè)備的多個(gè)實(shí)例每一個(gè)可以以各種可能的方式處理內(nèi)容。實(shí)現(xiàn)方式不一定在由所有最終用戶使用的一個(gè)系統(tǒng)中。因此,隨附權(quán)利要求及其合法等同物僅應(yīng)當(dāng)限定本發(fā)明,而不是所給出的任何具體示例。
【主權(quán)項(xiàng)】
1.一種客戶端設(shè)備,包括: 向服務(wù)器發(fā)送初始導(dǎo)航請求以發(fā)起服務(wù)器的導(dǎo)航并且接收推送資源的通信接口;執(zhí)行客戶端堆棧以將推送資源匹配到初始導(dǎo)航請求和用戶代理以再現(xiàn)針對初始導(dǎo)航請求的完整資源的處理器;以及 存儲客戶端堆棧中的推送資源作為抽象連接對象的存儲器。2.權(quán)利要求1的客戶端設(shè)備,其中客戶端堆棧將推送資源放置在虛擬氣閘中。3.權(quán)利要求1的客戶端設(shè)備,其中客戶端堆棧在觸發(fā)事件時(shí)從虛擬氣閘推動(dòng)推送資源。4.權(quán)利要求1的客戶端設(shè)備,其中客戶端堆棧在從用戶代理接收到鏈接資源請求時(shí)檢查推送資源。5.權(quán)利要求1的客戶端設(shè)備,其中客戶端堆棧向用戶代理提供針對推送資源的狀態(tài)描述。6.權(quán)利要求1的客戶端設(shè)備,其中客戶端堆棧在檢測到推送資源時(shí)舍棄鏈接資源請求。7.權(quán)利要求1的客戶端設(shè)備,其中客戶端堆棧在檢測到保持周期屆滿、導(dǎo)航終止和臟污的惡意軟件掃描中的至少一個(gè)時(shí)刪除推送資源。8.—種計(jì)算設(shè)備,具有存儲作為服務(wù)器的導(dǎo)航的部分而被接收的推送資源的存儲器,計(jì)算設(shè)備配置成將推送資源放置在虛擬氣閘中,計(jì)算設(shè)備還配置成當(dāng)觸發(fā)事件時(shí)從虛擬氣閘推動(dòng)推送資源,并且計(jì)算設(shè)備還配置成再現(xiàn)推送資源作為鏈接資源。9.權(quán)利要求8的計(jì)算設(shè)備,其中計(jì)算設(shè)備配置成檢測潔凈的惡意軟件掃描和針對推送資源的資源請求中的至少一個(gè)作為觸發(fā)事件。10.權(quán)利要求8的計(jì)算設(shè)備,其中計(jì)算設(shè)備配置成當(dāng)釋放事件時(shí)刪除推送資源。11.權(quán)利要求8的計(jì)算設(shè)備,其中計(jì)算設(shè)備配置成檢測保持周期屆滿、導(dǎo)航終止和臟污的惡意軟件掃描中的至少一個(gè)作為釋放事件。12.權(quán)利要求8的計(jì)算設(shè)備,其中計(jì)算設(shè)備配置成將推送資源匹配到初始導(dǎo)航請求以發(fā)起服務(wù)器的導(dǎo)航。13.權(quán)利要求8的計(jì)算設(shè)備,其中計(jì)算設(shè)備配置成存儲推送資源作為抽象連接對象。14.一種機(jī)器實(shí)現(xiàn)的方法,包括: 向服務(wù)器發(fā)送初始導(dǎo)航請求以發(fā)起服務(wù)器的導(dǎo)航; 在客戶端堆棧處接收推送資源作為服務(wù)器的導(dǎo)航的部分; 將推送資源匹配到初始導(dǎo)航請求;以及 再現(xiàn)針對初始導(dǎo)航請求的完整資源。15.權(quán)利要求14的方法,還包括: 將推送資源放置在虛擬氣閘中。
【文檔編號】H04L29/08GK106031125SQ201580008532
【公開日】2016年10月12日
【申請日】2015年2月13日
【發(fā)明人】E.勒溫薩爾, M.科克斯, I.帕肖夫
【申請人】微軟技術(shù)許可有限責(zé)任公司