在客户端处管理服务器推送的资源的制作方法

文档序号:10664025阅读:396来源:国知局
在客户端处管理服务器推送的资源的制作方法
【专利摘要】在一个实施例中,客户端设备可以在客户端堆栈处处置从服务器接收推送资源。客户端堆栈可以向服务器发送初始导航请求以发起服务器的导航。客户端堆栈可以从处理初始导航请求的服务器接收推送资源。客户端堆栈可以将推送资源匹配到初始导航请求。
【专利说明】
在客户端处管理服务器推送的资源
【背景技术】
[0001]客户端设备可以通过诸如互联网之类的网络数据连接而连接到服务器。驻留在客户端设备上的用户代理可以访问由驻留在服务器上的服务器应用管理的数据资源,诸如网页。用户代理可以请求服务器应用向用户代理发送数据资源。数据资源可以链接到一个或多个子资源的集合,诸如脚本文件、图像文件、视频文件、音频文件、小应用程序或其它子资源。用户代理可以在解析主资源时发现这些所链接的资源。用户代理然后可以从服务器应用发送针对每一个所链接的资源的所链接的资源请求。服务器应用然后可以在接收到所链接的资源请求时发送每一个所链接的资源。

【发明内容】

[0002]提供本
【发明内容】
来以简化形式引入以下在【具体实施方式】中进一步描述的概念的选择。本
【发明内容】
不意图标识所要求保护的主题的关键特征或本质特征,也不意图用于限制所要求保护的整体的范围。
[0003]以下讨论的实施例涉及在客户端堆栈处处置从服务器接收的推送资源的客户端设备。客户端堆栈可以向服务器发送初始导航请求以发起服务器的导航。客户端堆栈可以从处理初始导航请求的服务器接收推送资源。客户端堆栈可以将推送资源匹配到初始导航请求。
【附图说明】
[0004]为了描述可以以其获得以上叙述的和其它的优点和特征的方式,阐述更特别的描述并且其将参照附图中图示的其具体实施例来再现。在理解到这些图仅描绘典型实施例并且不因而被视为限制其范围的情况下,将以附加独特性和细节通过使用附图来描述和解释实现方式。
[0005]图1在框图中图示了数据网络的一个实施例。
[0006]图2在框图中图示了计算设备的一个实施例。
[0007]图3在框图中图示了链接资源结构的一个实施例。
[0008]图4a_4b在流程图中图示了链接资源传输的实施例。
[0009]图5在框图中图示了服务器推送网络架构的一个实施例。
[0010]图6在流程图中图示了通过用户代理下载具有链接资源的数据资源的方法的一个实施例。
[0011]图7在流程图中图示了通过客户端堆栈下载主资源的方法的一个实施例。
[0012]图8在流程图中图示了通过客户端堆栈处理链接资源的方法的一个实施例。
[0013]图9在流程图中图示了通过服务器发送具有链接资源的数据资源的方法的一个实施例。
【具体实施方式】
[0014]以下详细讨论实施例。虽然讨论具体实现方式,但是应当理解的是,这仅仅为了说明目的而做出。相关领域技术人员将认识到可以使用其它组件和配置而不脱离本公开的主题的精神和范围。实现方式可以是机器实现的方法、具有详述存储在其上的方法的用于至少一个处理器、客户端设备或服务器的指令集的有形机器可读介质。
[0015]作为对通过使用请求-响应方案来拉取存储在服务器上的数据资源的客户端设备的替换方案,服务器可以使用“推送”协议(诸如超文本传输协议(HTTP)2.0)向已经开始该服务器的导航的客户端设备主动发送链接资源而不等待请求。推送协议是允许服务器向客户端设备发送链接资源而没有来自客户端设备的针对该链接资源的请求的协议。为了防止任意或恶意数据取代于这些“推送”资源而被插入,允许客户端设备连接到网络的客户端堆栈可以制定处置任何恶意数据的协议。客户端设备或服务器可以配置在堆栈层级处使得操作在客户端设备上的用户代理或操作在服务器上的服务器应用关于客户端设备或服务器是正在执行请求-响应协议或还是推送协议可能是不可知的。可替换地,堆栈层级处的配置用于推送协议的服务器可以与在用户代理处操作推送协议的客户端设备交互。类似地,堆栈层级处的配置用于推送协议的客户端设备可以与在服务器应用处操作推送协议的服务器交互。
[0016]通过使用现有依赖性基础设施,客户端堆栈可以将推送资源与初始请求开始导航相关联。以此方式,推送资源可以被服务于作为初始页面下载的结果而源起的请求。该动作可以创建安全边界以防止有害或不相关的响应作为推送资源而绕开安全协议。此外,该关联可以基于初始导航请求而向流添加寿命。
[0017]为了保护系统以防存储在持久性存储介质(诸如盘)上的恶意内容,客户端堆栈可以在易失性数据储存中存储与推送资源相关联的设定量的数据,充当虚拟气闸以保护用户代理或客户端设备。虚拟气闸是存储推送资源的缓存的部分,而同时客户端堆栈检查推送资源以发现推送资源的进一步处理是否可能损害客户端设备。如果缓存报头允许,一旦用户代理请求了资源,客户端堆栈可以将数据写入到持久性存储介质。用户代理可以在数据被写入到持久性存储介质之前对照资源全局资源定位符运行任何检查、安全协议或恶意软件扫描。
[0018]为了保持用户代理可以从超文本传输协议实现方式预期的请求-响应模型,客户端堆栈可以在输入/输出接口背后的存储器中存储推送资源作为抽象连接对象。抽象连接对象模仿经由网络数据连接接收的对象,诸如抽象套接字对象。当客户端堆栈准备发送用户代理的请求时,客户端堆栈可以检查已经可用的任何推送资源。如果推送资源存在,客户端堆栈可以舍弃请求数据并且使用抽象连接对象。在该点处客户端堆栈可以通知用户代理指示请求通过网络被发送的任何状态信息,诸如互联网协议地址、连接状态、或其它网络数据。在该点处用户代理可以开始读取响应数据。客户端堆栈可以服务已经直接从抽象连接对象中的现有数据到达的任何数据。
[0019]该方案可以允许客户端应用聚焦于决定在给定时刻请求哪个资源的智能,而同时客户端堆栈处置应对推送资源的机制。客户端堆栈可以无缝地满足与推送资源一起来自用户代理的常规请求。进而,客户端应用以及任何第三方客户端应用可以受益于服务器推送而没有应用代码的重写,假定客户端应用支持依赖性基础设施。
[0020]因此,在一个实施例中,客户端设备可以在客户端堆栈处处置从服务器接收推送资源。客户端堆栈可以向服务器发送初始导航请求以发起服务器的导航。客户端堆栈可以从处理初始导航请求的服务器接收推送资源作为服务器的导航的部分。客户端堆栈可以将推送资源匹配到初始导航请求。客户端堆栈可以将推送资源放置在虚拟气闸中。客户端堆栈可以存储推送资源作为抽象连接对象。当触发事件时,客户端堆栈可以从虚拟气闸推动推送资源。
[0021]图1在框图中图示了数据网络100的一个实施例。客户端设备110可以经由数据网络连接150连接到服务器120。服务器120可以是指单个服务器或管理一个或多个数据资源的分布式服务器集合。可替换地,对等网络中的对等设备可以作为服务器120与计算设备110—起执行。数据网络连接150可以是互联网连接、广域网连接、局域网连接或其它类型的数据网络连接。
[0022]客户端设备110可以使用客户端堆栈114执行用户代理112。用户代理112是允许用户通过数据网络100访问和管理不同设备上的数据资源的软件应用。客户端堆栈114是通过用户代理112管理硬件资源的使用以通过数据网络与其它设备连接的软件应用集合。客户端堆栈114可以在内核模式140中操作,具有操作系统层级特权,或者在用户模式142中操作,具有应用层级特权。
[0023]服务器120可以使用服务器堆栈124执行服务器应用122。服务器应用122是控制和管理由不同设备通过数据网络100可访问的数据资源的软件应用。服务器堆栈124是通过服务器应用122管理硬件资源的使用以通过数据网络与其它设备连接的软件应用集合。服务器堆栈可以在内核模式140中操作,其中内核模式驱动器充当服务器堆栈124,或者在用户模式142中操作。内核模式驱动器是操作在内核模式中或在服务器120上的操作系统层级特权处的驱动器。
[0024]图2图示了可以充当客户端设备110和服务器120的示例性计算设备200的框图。计算设备200可以组合硬件、软件、固件和片上系统技术中的一个或多个以实现客户端设备110和服务器120。计算设备200可以包括总线210、处理器220、存储器230、数据储存240、输入/输出设备250和通信接口 260。总线210或其它组件互连可以准许计算设备200的组件之中的通信。
[0025]处理器220可以包括解释和执行指令集的至少一个常规处理器或微处理器。存储器230可以是随机存取存储器(RAM)或另一类型的动态或易失性数据储存,其存储用于由处理器220执行的指令和信息。存储器230还可以存储在通过处理器220执行指令期间使用的临时变量或其它中间信息。数据储存240可以包括常规ROM设备或另一类型的静态或持久性数据储存,其存储用于处理器220的静态信息和指令。数据储存240可以包括任何类型的有形机器可读介质,诸如例如磁性或光学记录介质,诸如数字视频盘及其对应的驱动器。有形机器可读介质是存储机器可读代码或指令的物理介质,如与信号相对。如本文所描述的使指令存储在计算机可读介质上与使指令被传播或传送是可区分的,因为传播传输指令,而存储指令诸如可以与具有存储在其上的指令的计算机可读介质一起发生。因此,除非另行指出,否则以这种形式或类似形式对具有存储在其上的指令的一个或多个计算机可读介质的引用参考其上可以存储或保留数据的有形介质。数据储存240可以存储详述方法的指令集,其在由一个或多个处理器执行时使一个或多个处理器执行方法。数据储存240还可以是数据库或用于存储数据资源和链接资源的数据库接口。
[0026]输入/输出设备250可以包括准许用户向计算设备200输入信息的一个或多个常规机构,诸如键盘、鼠标、语音识别设备、麦克风、耳机、手势识别设备、触摸屏等。输入/输出设备250可以包括向用户输出信息的一个或多个常规机构,包括显不器、打印机、一个或多个扬声器、耳机或介质,诸如存储器,或磁盘或光盘和对应盘驱动器。通信接口 260可以包括任何收发器式机构,其使得计算设备200能够与其它设备或网络通信。通信接口 260可以包括网络接口或收发器接口。通信接口 260可以是无线、有线或光学接口。
[0027]计算设备200可以响应于处理器220执行包含在计算机可读介质(诸如例如存储器230、磁盘或光盘)中的指令序列而施行这样的功能。这样的指令可以从另一计算机可读介质(诸如数据储存240)或从分离设备经由通信接口 260被读取到存储器230中。
[0028]图3在框图中图示了链接资源结构300的一个实施例。服务器应用122可以控制客户端设备110可能试图访问的主资源310。主资源310可以是网页或其它数据支持结构。主资源310可以是在接收访问请求与发送主资源310之间不改变的静态资源。可替换地,主资源310可以是构建在接收访问请求与发送主资源310之间的动态资源。服务器120可以在构建动态资源时部分地发送动态资源。
[0029]主资源310可以引用可以由控制主资源310或其它服务器应用122的服务器应用122控制的其它资源,将其称为链接资源320。链接资源320可以存在于与主资源310相同的服务器120上或者在可替换服务器120上。链接资源320可以是脚本文件、图像文件、视频文件、音频文件、小应用程序、不同网页或其它子资源。
[0030]之前,试图获取具有链接资源320的主资源310的客户端设备110可以使用请求-响应协议获取那些资源。图4a在流程图中图示了请求-响应协议访问400的一个实施例。客户端设备110可以向服务器120发送初始导航请求402。服务器120可以在主资源响应404中向客户端设备110发送主资源310。主资源响应404可以具有一个或多个报头和包含主资源的实体主体。主资源响应404可以具有主资源310具有一个或多个链接资源320的指示。客户端设备110可以向服务器120发送针对每一个链接资源320的链接资源请求406。服务器120可以通过在链接资源响应408中向客户端设备110发送链接资源320来回复每一个链接资源请求406。
[0031]可替换地,客户端设备110可以使用推送协议获取主资源310的链接资源320。图4b在流程图中图示了推送协议访问450的一个实施例。客户端设备110可以向服务器120发送初始导航请求402。服务器120可以在主资源响应404中向客户端设备110发送主资源310。服务器120可以确定主资源310具有一个或多个链接资源320。服务器120可以向客户端设备110发送作为推送资源452的每一个链接资源320。
[0032]在客户端侧上,图5在框图中图示了配置成在客户端堆栈114处处理客户端设备110上的推送资源的服务器推送网络架构500的一个实施例。在下载阶段502期间,用户代理112可以创建用于顶部层级导航的资源请求对象504。请求可以是针对超文本传输协议资源,诸如网页,或某种其它数据资源。用户代理112可以创建与请求对象相关联的依赖性处置。客户端堆栈114可以在依赖性处置504上寻找推送资源452,很可能在该点处没有找到。客户端堆栈114可以使用复用器508创建到服务器120的连接。复用器508可以创建推送协议连接,诸如HTTP 2.0连接,允许客户端堆栈114接收推送资源452。资源请求对象504可以使用复用器508联系服务器120中的过程请求对象510。过程请求对象510可以收集用于用户代理112的所请求的资源。过程请求对象510可以创建发送响应对象512以经由复用器508向客户端代理发送回所请求的资源。用户代理112可以接收在接收资源对象514中的所请求的资源。具有所请求的资源的响应可以以超文本标记语言(HTML)。
[0033]在推送阶段516期间,服务器120可以向客户端设备110推送作为推送资源452的链接资源。在解析阶段518期间,用户代理112可以创建解析资源对象520以解析响应并且找到要下载的链接资源,诸如用于网页的图像。在请求资源阶段522期间,用户代理112可以创建请求资源对象524以请求链接资源。用户代理112可以将依赖性处置506与请求资源对象524相关联。用户代理112然后可以使用请求资源对象524来发送链接资源请求。
[0034]当客户端堆栈114创建与服务器120的连接时,客户端堆栈114可以将来自资源请求对象504的依赖性处置506关联到连接。当服务器120标识到作为推送资源452的要发送到客户端设备110的链接资源时,服务器120可以向客户端设备110发送推送资源452。客户端堆栈114可以创建抽象连接对象526,将抽象连接对象526与依赖性处置506相关联。通过将抽象连接对象526与依赖性处置506相关联,客户端堆栈114可以将推送资源452与初始导航请求相关联。客户端堆栈114可以在存储器中将推送资源452缓冲在抽象连接对象526内,从而将推送资源452保持在虚拟气闸中。当在虚拟气闸中时,客户端堆栈114可以针对恶意软件扫描推送资源。
[0035]客户端堆栈114可以在依赖性处置506上寻找链接资源404,找到推送资源452。客户端堆栈114可以将包含推送资源452的抽象连接对象526与请求资源对象524相关联。客户端堆栈114可以为用户代理112提供指示请求被发送的状态更新。客户端堆栈114可以从抽象连接对象526读取推送资源452。用户代理112可以接收链接资源对象。用户代理112的资源再现对象528然后可以再现数据资源,诸如网页。
[0036]图6在流程图中图示了通过用户代理112下载具有链接资源320的数据资源的方法600的一个实施例。用户代理112可以向客户端堆栈114发送主资源310请求(块602)。用户代理112可以从客户端堆栈114接收主资源310(块604)。用户代理112可以解析主资源310(块606)。如果用户代理在解析主资源310时标识到一个或多个链接资源320(块608),则用户代理112可以发送针对每一个链接资源320的链接资源请求(块610)。用户代理112可以从客户端堆栈114接收链接资源320(块612)。用户代理112然后可以再现完整资源,诸如通过呈现网站(块614)。
[0037]图7在流程图中图示了通过客户端堆栈114下载主资源310的方法700的一个实施例。客户端堆栈114可以从用户代理112接收主资源请求(块702)。客户端堆栈114可以向服务器120发送初始导航请求402以发起服务器的导航(块704)。客户端堆栈114可以响应于主资源请求而接收主资源310(块706)。客户端堆栈114可以向用户代理112推送主资源310(块708)。客户端堆栈114可以处理作为服务器的导航的部分到达的任何推送资源404(块710)。
[0038]图8在流程图中图示了通过客户端堆栈114处理链接资源320的方法800的一个实施例。客户端堆栈114可以接收作为服务器的导航的部分的推送资源(块802)。客户端堆栈114可以将推送资源452放置在虚拟气阀中(块804)。虚拟气阀是存储推送资源452而同时确定是否要向用户代理112推动推送资源的存储器的区段。客户端堆栈114可以存储作为抽象连接对象526的推送资源452(块806)。客户端堆栈114可以通过将用于初始导航请求的依赖性处置404附连到抽象连接对象526来将推送资源452匹配到初始导航请求以发起服务器120的导航(块808)。客户端堆栈114可以向用户代理112提供针对推送资源452的状态描述(块810)。状态描述描述允许用户代理112标识链接资源320的推送资源452。客户端堆栈114可以防止推送资源452的恶意软件扫描的绕开以标识推送到客户端设备110的任何恶意软件(块812)。恶意软件扫描可以导致洁净的恶意软件扫描或脏污的恶意软件扫描。脏污的恶意软件扫描是发现推送资源452是恶意软件的恶意软件扫描,而洁净的恶意软件扫描指示推送资源452未被标识为恶意软件。
[0039]客户端堆栈114可以从用户代理112接收针对推送资源452的链接资源请求(块814)。客户端堆栈114可以在接收到链接资源请求时检查推送资源452(块816)。如果推送资源452不匹配链接资源请求(块818),客户端堆栈114可以向服务器120发送链接资源请求(块820)。如果客户端堆栈114检测到匹配链接资源请求和洁净的恶意软件扫描中的至少一个作为触发事件(块818),客户端堆栈114可以在触发事件时从虚拟气闸推动推送资源452(块822)。客户端堆栈114可以在检测到推送资源时舍弃链接资源请求(块824)。
[0040]如果客户端堆栈114检测到保持周期届满、导航终止和脏污的恶意软件扫描中的至少一个作为释放事件(块826),客户端堆栈114可以在释放事件时删除推送资源(块828)。保持周期届满是分配用于使虚拟气闸可以存储推送资源452的时间段。导航终止是用户代理112停止导航的指示。
[0041]图9在流程图中图示了通过服务器应用122发送具有链接资源320的数据资源的方法900的一个实施例。服务器120可以从客户端设备110接收初始导航请求402(块902)。服务器120可以解析初始导航请求402(块904)。服务器120可以向客户端设备110发送主资源310(块906)。如果所请求的主资源310具有一个或多个链接资源320(块908),服务器120可以汇编链接资源320(块910)。服务器120可以向客户端设备110发送所请求的链接资源320作为推送资源452(块912)。
[0042]尽管已经以特定于结构特征和/或方法学动作的语言描述了主题,但是要理解的是,随附权利要求中的主题不一定限于以上描述的具体特征或动作。而是,以上描述的具体特征和动作作为用于实现权利要求的示例形式而被公开。
[0043]本发明的范围内的实施例还可以包括用于承载或具有存储在其上的计算机可执行指令或数据结构的计算机可读存储介质。这样的计算机可读存储介质可以是可以由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读存储介质可以包括RAM、R0M、EEPR0M、⑶-ROM或其它光盘储存、磁盘储存或其它磁性数据储存,或可以用于以计算机可执行指令或数据结构的形式承载或存储所期望的程序代码构件的任何其它介质。以上的组合也应当包括在计算机可读存储介质的范围内。
[0044]实施例还可以在分布式计算环境中实践,其中任务由通过通信网络(通过硬连线链路、无线链路或通过其组合)链接的本地或远程处理设备执行。
[0045]计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某个功能或功能组的指令和数据。计算机可执行指令还包括由独立或网络环境中的计算机执行的程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构等。与数据结构相关联的计算机可执行指令和程序模块表示用于执行本文所公开的方法步骤的程序代码构件的示例。这样的可执行指令或相关联的数据结构的特定序列表示用于实现在这样的步骤中描述的功能的对应动作的示例。
[0046]尽管以上描述可能包含具体细节,但是它们不应当被解释为以任何方式限制权利要求。所描述的实施例的其它配置是本公开的范围的部分。例如,本公开的原理可以应用于每一个单独用户,其中每一个用户可以单独部署这样的系统。这使得每一个用户能够利用本公开的益处,即使大量可能应用中的任何不使用本文所描述的功能性。电子设备的多个实例每一个可以以各种可能的方式处理内容。实现方式不一定在由所有最终用户使用的一个系统中。因此,随附权利要求及其合法等同物仅应当限定本发明,而不是所给出的任何具体示例。
【主权项】
1.一种客户端设备,包括: 向服务器发送初始导航请求以发起服务器的导航并且接收推送资源的通信接口;执行客户端堆栈以将推送资源匹配到初始导航请求和用户代理以再现针对初始导航请求的完整资源的处理器;以及 存储客户端堆栈中的推送资源作为抽象连接对象的存储器。2.权利要求1的客户端设备,其中客户端堆栈将推送资源放置在虚拟气闸中。3.权利要求1的客户端设备,其中客户端堆栈在触发事件时从虚拟气闸推动推送资源。4.权利要求1的客户端设备,其中客户端堆栈在从用户代理接收到链接资源请求时检查推送资源。5.权利要求1的客户端设备,其中客户端堆栈向用户代理提供针对推送资源的状态描述。6.权利要求1的客户端设备,其中客户端堆栈在检测到推送资源时舍弃链接资源请求。7.权利要求1的客户端设备,其中客户端堆栈在检测到保持周期届满、导航终止和脏污的恶意软件扫描中的至少一个时删除推送资源。8.—种计算设备,具有存储作为服务器的导航的部分而被接收的推送资源的存储器,计算设备配置成将推送资源放置在虚拟气闸中,计算设备还配置成当触发事件时从虚拟气闸推动推送资源,并且计算设备还配置成再现推送资源作为链接资源。9.权利要求8的计算设备,其中计算设备配置成检测洁净的恶意软件扫描和针对推送资源的资源请求中的至少一个作为触发事件。10.权利要求8的计算设备,其中计算设备配置成当释放事件时删除推送资源。11.权利要求8的计算设备,其中计算设备配置成检测保持周期届满、导航终止和脏污的恶意软件扫描中的至少一个作为释放事件。12.权利要求8的计算设备,其中计算设备配置成将推送资源匹配到初始导航请求以发起服务器的导航。13.权利要求8的计算设备,其中计算设备配置成存储推送资源作为抽象连接对象。14.一种机器实现的方法,包括: 向服务器发送初始导航请求以发起服务器的导航; 在客户端堆栈处接收推送资源作为服务器的导航的部分; 将推送资源匹配到初始导航请求;以及 再现针对初始导航请求的完整资源。15.权利要求14的方法,还包括: 将推送资源放置在虚拟气闸中。
【文档编号】H04L29/08GK106031125SQ201580008532
【公开日】2016年10月12日
【申请日】2015年2月13日
【发明人】E.勒温萨尔, M.科克斯, I.帕肖夫
【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1