CN110999260B - 在基于代理的网络通信中的控制数据的传输 - Google Patents

在基于代理的网络通信中的控制数据的传输 Download PDF

Info

Publication number
CN110999260B
CN110999260B CN201780094259.9A CN201780094259A CN110999260B CN 110999260 B CN110999260 B CN 110999260B CN 201780094259 A CN201780094259 A CN 201780094259A CN 110999260 B CN110999260 B CN 110999260B
Authority
CN
China
Prior art keywords
request
web
control data
server
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780094259.9A
Other languages
English (en)
Other versions
CN110999260A (zh
Inventor
约书亚·瑞恩·劳尔
盖尔·马奥尔
伊兰·伊扎克·赫什
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Meta Platforms Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meta Platforms Inc filed Critical Meta Platforms Inc
Publication of CN110999260A publication Critical patent/CN110999260A/zh
Application granted granted Critical
Publication of CN110999260B publication Critical patent/CN110999260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及用于控制客户端设备的技术。这些技术可以包括:从客户端设备接收对web资源的请求;生成与客户端设备的一个或更多个功能相关联的控制数据;以及向客户端设备传送包括web资源和控制数据的响应,以控制客户端设备的一个或更多个功能。

Description

在基于代理的网络通信中的控制数据的传输
背景
计算设备的远程控制通常需要使用新的或附加的通信能力来承载控制数据。例如,计算设备(例如,计算机、智能电话等)可以被配置成提供一组功能。这些功能可以由在计算设备上运行的软件应用来提供,和/或由计算设备的硬件组件来提供。可以基于与配置主题相关联的控制数据来执行配置。控制数据可以是例如软件补丁、提供给软件应用的一组参数、存储在硬件寄存器内的一组值等。
在数据网络中,计算设备可以在远程配置过程中接收来自另一设备(例如,服务器)的控制数据。为了启动配置过程,计算设备确定待更新或添加的目标功能,以及目标功能的控制数据。计算设备随后可以(例如,基于传输控制协议(TCP))与服务器建立客户端-服务器通信信道,随后经由通信信道向服务器传送对控制数据的请求。服务器可以处理该请求,并且经由通信信道向计算设备传送包括所请求的控制数据的响应。计算设备随后验证该响应包括所请求的控制数据,并随后基于控制数据更新目标功能。
这种安排有许多缺点。例如,通信信道的管理、以及用于获取控制数据的请求和响应增加了配置过程的复杂性,并且需要更多的计算资源。此外,这些请求和响应的传送还会消耗相当大的网络带宽,并给网络基础设施造成额外负担。
概述
本公开涉及用于控制客户端设备的技术。更具体地,在本公开的某些方面,提供了一种计算机实现的控制方法。该方法可以包括从客户端设备接收对web资源的第一请求;基于第一请求生成第二请求;向web服务器传送对web资源的第二请求;生成与客户端设备的一个或更多个功能相关联的控制数据;从web服务器接收包括web资源的第一响应;生成包括控制数据和web资源的第二响应;以及将第二响应传送到客户端设备,以控制客户端设备的一个或更多个功能。
计算机实现的方法的某些实施例可以由服务器代理来执行。在一些实施例中,客户端设备可以包括应用(app)和本地代理;并且第一请求可以由本地代理基于由应用接收的web访问请求来生成。
根据本公开的某些实施例,第一请求和第二请求可以是HTTP请求;第一响应和第二响应可以是HTTP响应;并且控制数据可以被包括在第二响应的一个或更多个头部中。
根据本公开的某些实施例,一个或更多个功能可以与应用相关联。在一些实施例中,控制数据可以包括信息,该信息包括下列各项中的至少一项:用于在应用上显示网页的配置、用于使用应用执行搜索的配置、或者应用的用户界面配置。
根据本公开的某些实施例,一个或更多个功能可以与本地代理相关联。在一些实施例中,第一请求可以是通过在本地代理和服务器代理之间建立的第一TCP连接从本地代理接收到的;控制数据可以控制本地代理,以与web服务器建立第二TCP连接,并通过第二TCP连接向web服务器传送第三请求。在一些实施例中,控制数据可以控制应用以提供可激活的界面元素;控制数据可以控制本地代理以建立第二TCP连接,并基于检测到可激活的界面元素被激活,传送第三请求。
根据某些实施例,可以基于第一请求生成控制数据。在一些实施例中,可以用签名对控制数据进行加密。
根据本公开的某些实施例,提供了一种系统。该系统可以包括一个或更多个处理器;以及存储指令的非暂态计算机可读介质,当指令被一个或更多个处理器执行时,使得一个或更多个处理器执行下列操作,这些操作包括:从客户端设备接收对web资源的第一请求;基于第一请求生成第二请求;向web服务器传送对web资源的第二请求;生成与客户端设备的一个或更多个功能相关联的控制数据;从web服务器接收包括web资源的第一响应;生成包括控制数据和web资源的第二响应;以及将第二响应传送到客户端设备,以控制客户端设备的一个或更多个功能。
根据本公开的某些实施例,该系统可以是服务器代理的一部分。客户端设备可以包括应用和本地代理;并且第一请求可以由本地代理基于由应用接收的web访问请求来生成。
根据本公开的某些实施例,第一请求和第二请求可以是HTTP请求;第一响应和第二响应可以是HTTP响应;并且控制数据可以被包括在第二响应的一个或更多个头部中。
根据本公开的某些实施例,一个或更多个功能可以与应用相关联。在一些实施例中,控制数据可以包括信息,该信息包括下列各项中的至少一项:用于在应用上显示网页的配置、用于使用应用执行搜索的配置、或者应用的用户界面配置。
根据本公开的某些实施例,一个或更多个功能可以与本地代理相关联。在一些实施例中,第一请求可以是通过在本地代理和服务器代理之间建立的第一TCP连接从本地代理接收到的;控制数据可以控制本地代理,以与web服务器建立第二TCP连接,并通过第二TCP连接向web服务器传送第三请求。在一些实施例中,控制数据可以控制应用以提供可激活的界面元素;控制数据可以控制本地代理以建立第二TCP连接,并基于检测到可激活的界面元素被激活,传送第三请求。
根据本公开的某些实施例,可以基于第一请求生成控制数据。
在本公开的某些实施例中,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质可以存储可由一个或更多个处理器执行的多个指令。当多个指令被一个或更多个处理器执行时,可以使得一个或更多个处理器:从客户端设备接收对web资源的第一请求;基于第一请求生成第二请求;向web服务器传送对web资源的第二请求;生成与客户端设备的一个或更多个功能相关联的控制数据;从web服务器接收包括web资源的第一响应;生成包括控制数据和web资源的第二响应;以及将第二响应传送到客户端设备,以控制客户端设备的一个或更多个功能。
在本公开的某些方面,提供了一种计算机实现的控制方法。该计算机实现的控制方法可以包括:从客户端设备接收对web资源的第一请求;基于第一请求生成第二请求;向web服务器传送对web资源的第二请求;生成与客户端设备的一个或更多个功能相关联的控制数据;从web服务器接收包括web资源的第一响应;生成包括控制数据和web资源的第二响应;以及将第二响应传送到客户端设备,以控制客户端设备的一个或更多个功能。
计算机实现的方法的某些实施例可以由服务器代理来执行。在一些实施例中,客户端设备可以包括应用和本地代理;并且第一请求可以由本地代理基于由应用接收的web访问请求来生成。在一些实施例中,一个或更多个功能可以与应用相关联。在一些实施例中,一个或更多个功能可以与本地代理相关联。
根据本公开的某些实施例,第一请求和第二请求可以是HTTP请求;第二响应和第二响应可以是HTTP响应;并且控制数据可以被包括在第二响应的一个或更多个头部中。
根据本公开的某些实施例,一个或更多个功能可以与应用相关联。可选地,控制数据包括信息,该信息包括下列各项中的至少一项:用于在应用上显示网页的配置、用于使用应用执行搜索的配置、或者应用的用户界面配置。
根据本公开的某些实施例,一个或更多个功能可以与本地代理相关联。可选地,第一请求是通过在本地代理和服务器代理之间建立的第一TCP连接从本地代理接收到的,并且控制数据可以控制本地代理,以与web服务器建立第二TCP连接,并通过第二TCP连接向web服务器传送第三请求。可选地,控制数据可以控制应用以提供可激活的界面元素,并且控制数据可以控制本地代理以建立第二TCP连接,并基于检测到可激活的界面元素被激活,传送第三请求。
根据本公开的某些实施例,可以基于第一请求生成控制数据。在一些实施例中,可以用签名对控制数据进行加密。
根据本公开的某些实施例,提供了一种系统。该系统可以包括一个或更多个处理器;以及存储指令的非暂态计算机可读介质,当指令被一个或更多个处理器执行时,使得一个或更多个处理器执行下列操作,这些操作包括:从客户端设备接收对web资源的第一请求;基于第一请求生成第二请求;向web服务器传送对web资源的第二请求;生成与客户端设备的一个或更多个功能相关联的控制数据;从web服务器接收包括web资源的第一响应;生成包括控制数据和web资源的第二响应;以及将第二响应传送到客户端设备,以控制客户端设备的一个或更多个功能。
根据本公开的某些实施例,该系统可以是服务器代理的一部分。客户端设备可以包括应用和本地代理;并且第一请求可以由本地代理基于由应用接收的web访问请求来生成。
根据本公开的某些实施例,第一请求和第二请求可以是HTTP请求;第一响应和第二响应可以是HTTP响应;并且控制数据可以被包括在第二响应的一个或更多个头部中。
根据本公开的某些实施例,一个或更多个功能可以与应用相关联。可选地,控制数据可以包括信息,该信息包括下列各项中的至少一项:用于在应用上显示网页的配置、用于使用应用执行搜索的配置、或者应用的用户界面配置。
根据本公开的某些实施例,一个或更多个功能可以与本地代理相关联。可选地,第一请求可以是通过在本地代理和服务器代理之间建立的第一TCP连接从本地代理接收到的;控制数据可以控制本地代理,以与web服务器建立第二TCP连接,并通过第二TCP连接向web服务器传送第三请求。可选地,控制数据可以控制应用以提供可激活的界面元素;控制数据可以控制本地代理以建立第二TCP连接,并基于检测到可激活的界面元素被激活,传送第三请求。
根据本公开的某些实施例,可以基于第一请求生成控制数据。
根据某些实施例,一个或更多个计算机可读非暂态存储介质可以体现软件,该软件在被执行时可操作来执行根据所公开的实施例的方法。
根据某些实施例,系统可以包括:一个或更多个处理器;以及耦合到处理器并包括可由处理器执行的指令的至少一个存储器,处理器在执行指令时可操作来执行根据所公开的实施例的方法。
根据某些实施例,当优选地包括计算机可读非暂态存储介质的计算机程序产品在数据处理系统上被执行时,可操作来执行根据所公开的实施例的方法。
附图简述
下面参考以下附图详细描述说明性实施例:
图1示出了对安装在计算设备上的软件应用进行配置的示例;
图2是根据本公开的某些方面的数据网络系统的简化框图;
图3是根据本公开的某些方面的包括控制数据的HTTP响应的示例的简化框图;
图4是根据本公开的某些方面,将配置映射到不同控制数据值的示例映射表的简化框图;
图5是根据本公开的某些方面的用于传送控制数据的服务器代理的示例的简化框图;
图6是示出根据本公开的某些方面的用于向客户端设备提供控制数据的示例方法的简化流程图;以及
图7是用于实现本文公开的一些示例的示例计算系统的简化框图。
详细描述
一、计算设备的远程配置
计算设备(例如,计算机、智能电话等)可以被配置成提供一组功能。这些功能可以由安装在计算设备上的软件应用来提供,和/或由计算设备的硬件组件来提供。
图1示出了对在计算设备上运行的软件应用进行配置的示例。如图1所示,计算设备100运行被标记为“MY_APP”的软件应用(“app”)。该应用提供用于接收输入并且用于输出信息的界面102。在图1所示的示例中,该应用可以提供web浏览功能,为此,界面102包括文本框104、可激活元素106以及输出界面108,文本框104用于输入网址,可激活元素106用于触发传送指向文本框104中的网址的web访问请求,以及输出界面108用于显示与网址相关联的内容。内容还可以包括一个或更多个可激活元素(例如,通用资源链接(URL)110和111),用于触发传送web访问请求。界面102还可以显示其他信息,包括例如版本信息112。
计算设备100可以通过配置过程来接收控制数据,以更新应用的各个方面。例如,如图1所示,可以更新应用的版本,以包括搜索功能,为此提供可激活的搜索元素114。应用的web浏览功能也可以被更新。例如,可以提供作为更新的结果的导航元素116。此外,应用(或计算设备100的其他方面)也可以被更新以提供不同的web浏览功能、显示不同的内容等。例如,如图1所示,应用可以被配置为实现可变访问策略。作为策略的一部分,该应用可以提供对零费率(zero-rated)web服务的访问。这种零费率web服务可以允许用户(通过应用)在一定限制下访问互联网。例如,在访问次数达到上限(cap)之前,访问可以是可用的,这会触发配置过程。在配置过程之后,应用可以停止提供对零费率web服务的访问,并显示指示免费访问已经结束的页面。
计算设备100可以接收来自服务器的控制数据。当前,计算设备可以通过(例如,基于TCP)与服务器建立例如基于TCP包的通信信道来发起控制数据的传送。计算设备随后经由通信信道向服务器传送包括对控制数据的请求的TCP包。服务器可以处理该请求,并且经由通信信道向计算设备传送包括所请求的控制数据的TCP包。虽然计算设备可以通过这种安排来接收所请求的控制数据,但是,通信信道的管理、以及用于获取控制数据的请求和响应增加了配置过程的复杂性,并且需要更多的计算资源。此外,这些请求和响应的传送还会消耗相当大的网络带宽,并给网络基础设施造成额外负担。
本文公开了用于远程配置计算设备的技术,该技术利用在计算设备和服务器之间的现有通信来向计算设备提供控制数据。服务器可以包括服务器代理,该服务器代理作为在计算设备和某些web资源(例如,web内容,其可以包括文档文件、媒体文件等)的主机之间的中介来进行操作。计算设备可以与服务器建立TCP通信信道。计算设备可以通过TCP通信信道向服务器传送web访问请求(例如,超文本传输协议(HTTP)请求),以用于请求web资源。基于web访问请求,服务器也可以经由TCP通信信道将包含所请求的web资源的web访问响应(例如,HTTP响应)传送回计算设备。服务器还将控制数据作为web访问响应的一部分,传送给计算设备。
服务器可以被配置成在各种环境下向计算设备传送控制数据。例如,返回参考图1,服务器可以由一个或更多个外部事件触发,以将“MY_APP”应用更新到不同版本。外部事件可以包括例如定时器到期(例如,服务器被配置为在某个时间点更新应用)、接收来自另一个服务器的应用的更新补丁等。在受到外部事件触发后,服务器代理可以监控由待更新的应用传送的web访问请求。当这样的web访问请求(例如,来自计算设备100、经由TCP通信信道)被接收到时,服务器可以在web访问响应中包括所请求的web资源(例如,web内容)以及控制数据。随后,服务器可以经由传送web访问请求的同一TCP通信信道,将包括控制数据的web访问响应传送到计算设备100。
服务器还可以基于其他信息来确定待传送的控制数据,所述其他信息包括例如web访问请求所请求的web资源。例如,如以上参考图1所讨论的,计算设备100可以与服务器通信,以实现可变访问策略。计算设备100可以提供对零费率web服务的访问(例如,对新闻内容的免费访问),随后当满足某些条件时,改变对web服务的访问。例如,当已经达到指向网站“XYZnews.com”上托管的内容的web访问请求的预定数量时,可以停止对新闻内容的免费访问。服务器可以跟踪从计算设备100接收的这种web访问请求的数量,并且当达到该预定数量时,向计算设备100传送控制数据,以拒绝对内容的访问。参考图1的示例,用户可以激活URL 110(或其他可激活元素),以访问与“美国新闻(US News)”相关联的内容。对于URL110的选择可以使计算设备向服务器传送HTTP请求。在接收到HTTP请求之后,服务器可以确定从计算设备100接收的这样的请求的数量已经达到极限。服务器可以在待传送给计算设备100的HTTP响应中包括所请求的内容(或其他内容)。然而,服务器可以在HTTP响应中包括控制数据,该控制数据改变界面102的其中一些元素,以拒绝用户对所请求内容的访问。例如,如图1所示,当呈现所请求的内容时,控制数据可以使得输出界面108显示不透明层。控制数据还可以使得输出界面108显示消息118,以指示访问受到拒绝,并且提供到订阅页面的链接120,用户可以从该订阅页面订阅基于付费的web服务。
利用所公开的技术,计算设备(例如,计算设备100)可以使用相同的通信信道来接收控制数据和所请求的web资源,而不是建立单独的通信信道来接收控制数据。此外,通过使得同样包括所请求资源的web访问响应包括控制数据,使得该控制数据作为web访问响应的一部分,计算设备不需要处理与web访问响应分离的额外响应以接收控制数据。所有这些都可以简化计算设备和服务器的操作,并减少由控制数据传送引起的网络流量,从而更有效地利用计算资源和web资源。
此外,所公开的技术还使得服务器能够单方面将控制数据推送到计算设备,而不需要计算设备传送除了常规web访问请求之外的对控制数据的特定请求。因此,在多个计算设备之中,应用的更新可以以更加统一且同步的方式来被执行(尤其是对于具有内置web浏览功能(例如,网络视图(WebView))的应用,这些应用不断传送web访问请求并接收web访问响应)。
二、数据网络系统
图2是根据本公开的某些方面的数据网络系统200的简化框图。数据网络系统200可以包括通过通信网络206连接到客户端设备204的web服务器202,通信网络206可以包括使用诸如以太网、IEEE 802.11、全球微波接入互操作性(WiMAX)、3G、4G、5G、码分多址(CDMA)、数字用户线路(DSL)等技术的通信链路。web服务器(多个web服务器)可以提供一组web资源。例如,web服务器202可以为网页以及其他内容(诸如
Figure BDA0002391314640000101
XML等)提供服务。用户可以向web服务器202发送请求,以上传和/或检索在web服务器202上托管的信息(例如,web内容、图像、视频、帖子等)。web服务器202还可以提供其他web资源(包括例如接收消息和路由消息)。消息可以包括例如即时消息、排队的消息(例如,电子邮件)、文本消息、短消息服务(SMS)消息或者使用任何其他合适的消息传送技术发送的消息。
客户端设备204可以对应于用户,并且可以包括处理器、存储器(具有易失性存储器和/或非易失性存储驱动器)、输入接口和输出接口或者本领域已知的其他硬件或软件。客户端设备204可以包括应用208。应用208可以包括与图1中描述的应用相似的元素。例如,应用208可以提供web浏览能力,并且可以包括用于输入网址的输入界面(例如,图1的文本框104)和用于输出web内容的输出界面(例如,图1的输出界面108)。为了提供web浏览能力,应用208还可以基于在输入界面处接收的网址生成web访问请求,并将web访问请求传送到web服务器202,以请求某些web资源(例如,web内容)。应用208还可以处理包括所请求的web资源的web访问响应,从web访问响应中提取web资源,并将web资源提供给输出界面。此外,如上所讨论,应用208还可以提取web访问响应中所包括的控制数据,并基于控制数据来更新应用的一个或更多个元素。
客户端设备204还可以包括本地代理210,该本地代理210可以是软件应用。本地代理210可以确定将应用208生成的web访问请求路由到哪里。在第一运行模式中,本地代理210可以向web服务器202传送web访问请求。本地代理210可以与web服务器202建立通信信道220。本地代理210可以经由通信信道220向web服务器202传送由应用208生成的web访问请求221。本地代理210还可以经由通信信道220从web服务器202接收web访问响应222。本地代理210可以向应用208提供web访问响应222,应用208可以提取该响应中所包括的web资源(例如,web内容),并将web资源提供给输出界面。在一些实施例中,通信信道220可以是TCP通信信道,而web访问请求221可以是HTTP请求,并且web访问响应222可以是HTTP响应。
在第二运行模式中,本地代理210还可以向服务器代理212传送web访问请求。服务器代理212可以是具有处理器和存储器的计算设备。如图2所示,服务器代理212可以是通信网络206的一部分,或者是web服务器202的一部分。服务器代理212可以代表应用208向web服务器202请求web资源。在这种情况下,本地代理210可以与服务器代理212建立通信信道224,服务器代理212也与web服务器202建立通信信道226。本地代理210可以经由通信信道224向服务器代理212传送由应用208生成的web访问请求230。服务器代理212可以基于web访问请求230生成web访问请求232(例如,用于请求与web访问请求230所请求的web资源相同的web资源),并且经由通信信道226向web服务器202传送web访问请求232。服务器代理212还可以经由通信信道226从web服务器接收包括所请求的web资源的web访问响应234。服务器代理212可以基于web访问响应234生成web访问响应236(例如,通过包括在web访问响应234中所包括的web资源),并将web访问响应236传送到本地代理210。本地代理210还可以向应用208提供web访问响应236,应用208可以提取该响应中所包括的web资源(例如,web内容),并将web资源提供给输出界面。在一些实施例中,通信信道224和226可以是TCP通信信道。web访问请求230和232可以是HTTP请求,而web访问响应234和236可以是HTTP响应。
服务器代理212可以充当在web服务器202和客户端设备204之间的中介。服务器代理212可以通过向本地代理210传送控制数据来控制客户端设备204对由web服务器202托管的web资源的访问,以基于控制数据来指示本地代理210执行第一运行模式或第二运行模式。例如,参考图1的示例,用户可以尝试通过应用208访问基于零的web服务(zero-basedweb service),应用208生成web访问请求230。基于对基于零的web服务的访问请求,本地代理210可以在第二模式下运行,并且向服务器代理212传送web访问请求230,服务器代理212可以跟踪来自应用208的与基于零的web服务相关联的web访问请求的数量。如果web访问请求的数量没有超过阈值,那么服务器代理212可以代表应用208(例如,通过传送web访问请求232)请求web资源。在服务器代理212从web服务器202接收到所请求的web资源之后,服务器代理212可以向本地代理210传送包括所请求的web资源的web访问响应(例如,web访问响应236)。另一方面,如果与基于零的web服务相关联的web访问请求的数量已经达到阈值,那么服务器代理212可以向本地代理210传送作为web访问响应236的一部分的控制数据,然后本地代理210将控制数据(和web访问响应236)转发给应用208。控制数据可以更新应用208的界面(例如,网页的呈现、显示消息等)以防止用户通过应用208访问所请求的web资源。
此外,如果用户已经订阅了基于付费的web服务,则服务器代理212还可以通过传送控制数据以指导本地代理210在第一模式下运行(即,直接与web服务器202通信),来准许客户端设备204对web服务器202上托管的web资源进行不同程度的访问(例如,无限制访问)。服务器代理212可以检测订阅活动(例如,通过检测由对于订阅链接120的选择而引起的web访问请求),以确定用户已经订阅了基于付费的web服务。基于该确定,服务器代理212可以向本地代理210传送控制数据,以使其与web服务器202建立通信信道220。本地代理210随后可以在无需经过服务器代理212的情况下向web服务器202传送后续的web访问请求,以准许用户运行应用208来对web服务器202上托管的web资源进行无限制的访问。
三、控制数据
图3是根据本公开的某些方面的包括控制数据的HTTP响应300的示例的简化框图。HTTP响应300可以由例如图2的服务器代理212生成。服务器代理212可以向客户端设备204传送HTTP响应300,以控制例如应用208和/或本地代理210的一些方面。虽然这里为了说明的目的描述了HTTP,但是在可选的实施例中,可以使用其他协议和通信技术。回到图3,HTTP响应300可以是例如图2的web访问响应236。如图3所示,HTTP响应300包括起始行310、头部320和主体330。起始行310可以包括例如HTTP版本信息312、状态码314和原因短语(reasonphase)316。HTTP版本信息312提供了该消息所关联的HTTP协议的版本。在图3的示例中,HTTP响应300与HTTP版本1.0相关联。状态码314和原因短语316可以提供处理导致HTTP响应300的在先HTTP请求的状态。在图3的示例中,状态码314和原因短语316的组合可以指示处理成功。主体330包括该在先的HTTP请求所请求的web资源,并且可以包括例如文档、图像数据、媒体数据等。
头部320可以包括一个或更多个头部,包括头部322和头部324。头部322和头部324中的每一个头部可以包括名称字符串和值。在图3的示例中,头部322包括名称字符串“App-ID”和值“MY_APP”,而头部324包括名称字符串“App-Action”和值“Code_0”。根据本公开的某些方面,控制数据可以作为名称字符串和值的组合,插入头部320中。可以基于控制数据的预定语义和结构来确定名称字符串和值的组合。在图3的示例中,头部322和头部324都可以是控制数据的一部分。例如,头部322的“App-ID”名称字符串可以指示该头部322携带将要由控制数据进行配置的应用的标识符(“MY_APP”)。此外,头部324的“App-Action”名称字符串可以指示头部324携带代码,该代码指示应用的哪个元素将要更新,以及将进行什么更新。
当接收到包括头部320的HTTP响应300时,应用208可以基于控制数据的相同预定语义和结构来处理头部322和头部324。例如,应用208可以识别头部322的“App-ID”名称字符串,并提取值“MY_APP”,并将提取的值与应用208的标识符进行比较,以确定HTTP响应300是否包含该应用的或其他应用的控制数据。此外,应用208还可以识别头部324的“App-Action”名称字符串,并基于值“Code_0”确定配置更新。
图4是根据本公开的某些方面,将配置映射到不同控制数据值的示例映射表400的简化框图。可以将映射表400存储在服务器代理212和应用208中,或者可以由服务器代理212和应用208两者访问映射表400。在图4的示例中,一组值“Code_0”、“Code_1”和“Code_2”中的每一个值都与应用元素和配置设置相关联。配置设置可以包括例如用于在应用上显示网页的配置、用于使用应用执行搜索的配置或者应用的用户界面配置。例如,“Code_0”和“Code_1”都与应用208的搜索元素(例如,图1的搜索元素114)的操作相关联,而“Code_2”与应用208的输出界面(例如,图1的输出界面108)的操作相关联。此外,“Code_0”、“Code_1”和“Code_2”中的每一个都可以代表不同的配置设置。例如,在接收到“Code_0”时,应用208可以显示用于接收搜索查询的搜索输入文本框。此外,在接收到“Code_1”时,应用208可以将搜索查询指向“DOODLE”搜索引擎。此外,在接收到“Code_2”时,应用208可以在输出界面108中显示不透明层(例如,用于防止用户读取界面中呈现的web内容)。
服务器代理212还可以参考映射表400,基于前述触发事件来确定待写入头部324的值。例如,如果服务器代理212接收到使应用208显示搜索输入文本框的指令,则服务器代理212可以将“Code_0”包括在待传送到应用208的HTTP响应头部中。此外,如果服务器代理212接收到使应用208将搜索查询定向到“DOODLE”搜索引擎的指令,则服务器代理212可以将“Code_1”包括在HTTP响应头部中。此外,如果服务器代理212确定拒绝应用208对在HTTP响应中所包括的web资源进行访问,则服务器代理212可以将“Code_2”包括在HTTP响应头部中。
四、用于提供控制数据的系统和方法
图5是根据本公开的某些方面的用于传送控制数据的服务器代理500的示例的简化框图。服务器代理500可以是图2的服务器代理212。服务器代理500可以包括一个或更多个处理器502、网络接口卡(NIC)504和计算机可读介质520,计算机可读介质520存储服务器侧接口模块530、客户端侧接口模块540、访问请求模块550、访问响应模块560和控制数据生成模块570。服务器代理500还可以包括控制数据映射储存器580。
处理器502可以包括任何合适的处理设备或这类设备的任何组合。示例性处理器可以包括一个或更多个微处理器,它们一起工作以实现期望的功能。处理器可以包括中央处理单元(CPU),该CPU包括至少一个高速数据处理器,该高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。
NIC 504可以提供从服务器代理500经由一个或更多个通信网络(包括局域网(LAN)、广域网(WAN)(例如,互联网)和各种无线电信网络)到其他设备(例如,客户端设备、服务器等)的通信接口。NIC 504可以包括以太网卡、异步传输模式NIC、令牌环NIC、无线网络接口控制器(WNIC)、无线网络适配器等。NIC 504可以便于向社交网络系统传送和接收输入内容。
计算机可读介质520可以是能够存储电子数据的任何合适的一个或多个设备。计算机可读介质可以由一个或更多个存储设备(包括工作存储器(working memory),其可以包括随机存取存储器(RAM)或只读存储器(ROM)设备)来实现。存储设备的示例可以包括存储器芯片、磁盘驱动器等。这类存储器设备可以使用任何合适的电、光和/或磁操作模式来进行操作。计算机可读介质520可以包括存储可由一个或更多个处理器502执行的多个指令的非暂态计算机可读存储介质。当由一个或更多个处理器502执行时,多个指令可以使得一个或更多个处理器502执行本文描述的任何方法。多个指令可以包括对应于服务器侧接口模块530的指令、对应于客户端侧接口模块540的指令、对应于访问请求模块550的指令、对应于访问响应模块560的指令和对应于控制数据生成模块570的指令,并且在运行期间被加载到计算机可读介质520中。
服务器侧接口模块530可以提供在另一服务器(例如,web服务器202、订阅服务器等)和服务器代理500的其他组件之间的接口。服务器侧接口模块530可以包括用于生成待传送到另一服务器的web访问请求(例如,图2的web访问请求232)的逻辑,以及用于处理从另一服务器接收的web访问响应(例如,图2的web访问响应234)的逻辑。如下文将更详细讨论的,服务器侧接口模块530可以接收来自访问请求模块550的指令,以生成web访问请求。服务器侧接口模块530还可以接收来自另一服务器的web访问响应,并将接收到的web访问响应转发给访问响应模块560进行处理。在服务器代理500和服务器经由通信网络(例如,以太网)连接的情况下,服务器侧接口模块530可以经由NIC 504向服务器传送web访问请求,并经由NIC 504接收来自服务器的web访问响应。
客户端侧接口模块540可以提供在客户端设备(例如,图1的计算设备100、图2的客户端设备204等)和服务器代理500的其他组件之间的接口。服务器侧接口模块540可以包括用于处理从客户端设备接收到的web访问请求(例如,图2的web访问请求230)的逻辑,以及用于生成待传送到客户端设备的web访问响应(例如,图2的web访问响应236)的逻辑。如下文更详细讨论的,客户端侧接口模块540可以从访问响应模块560和控制数据生成模块570接收指令,以生成web访问响应。客户端侧接口模块540还可以接收来自客户端设备的web访问请求,并将接收到的web访问请求转发给访问请求模块550进行处理。客户端侧接口模块540还可以经由NIC 504向客户端设备传送web访问响应,并经由NIC 504接收来自客户端设备的web访问请求。
访问请求模块550可以处理(经由客户端侧接口模块540)从客户端设备接收的web访问请求,并且向服务器侧接口模块530提供指令以将web访问请求传送到另一服务器。访问请求模块550可以通过例如提取标识所请求的web资源的信息(例如,通用资源标识符(URI)或在HTTP请求中所包含的部分URI)来处理web访问请求。如上所讨论,访问请求模块550可以累积指向特定web资源的web访问请求的数量,以实施可变访问策略。如果基于访问策略,准许客户端设备访问所请求的web资源,则访问请求模块550还可以基于接收到的web访问请求来生成第二web访问请求(例如,通过包括从接收到的web访问请求中提取的URI或部分URI)。访问请求模块550随后可以指示服务器侧接口模块530将第二web访问请求传送到目标服务器,以代表客户端设备请求web资源。
访问响应模块560可以处理(经由服务器侧接口模块530)从另一服务器接收的web访问响应,并且向客户端侧接口模块540提供指令以向客户端设备传送web访问响应。访问响应模块560可以通过例如提取在响应中所包括的web资源(例如,HTTP响应的主体)和其他配置信息(例如,HTTP响应的起始行)来处理web访问响应。访问响应模块560还可以接收来自控制数据生成模块的控制数据,并生成访问响应以包括所提取的web资源和控制数据。例如,访问响应模块560可以生成作为HTTP响应的第二web访问响应,其中,起始行包含所提取的配置信息,头部包含控制数据,并且主体包含所提取的web资源。访问响应模块560随后可以指示客户端侧接口模块540如上所述地向客户端设备传送第二web访问响应,以控制/配置客户端设备的一个或更多个功能。
控制数据生成模块570可以确定控制数据被包括在待传送到客户端设备的web访问响应中。控制数据生成模块570可以包括触发模块(图5中未示出),以检测用于生成控制数据的一个或更多个触发事件。触发事件可以包括例如来自另一服务器的推送软件更新的指令、web访问请求(例如,用于零费率web服务)的数量达到阈值等。控制数据生成模块570还可以基于触发事件来确定要在客户端设备处实现的配置。例如,如上所讨论,为了阻止对所请求的web资源的访问,控制数据生成模块570可以对客户端设备的web浏览应用的输出界面的操作进行配置。此外,为了准许无限制访问,控制数据生成模块570可以对客户端设备的本地代理的操作进行配置,使得本地代理将后续的web访问请求引导到web服务器而不是服务器代理。控制数据生成模块570还可以参考控制数据映射表(例如,图4的映射表400),以基于所确定的配置来确定在待传送到客户端设备的web访问响应中所包括的控制数据,并将控制数据提供给访问响应模块560。
在一些实施例中,控制数据生成模块570还可以对控制数据进行加密,并将加密的控制数据提供给访问响应模块560。例如,控制数据生成模块570可以从映射表400中获得控制数据值(例如,“Code_0”),并基于控制数据值生成哈希值(hash value)。控制数据生成模块570还可以生成密钥(例如,HMAC密钥),然后使用密钥对控制数据进行加密以生成签名。标识符可以与客户端设备相关联,或者与在客户端设备和服务器代理之间的TCP通信信道(例如,会话ID)相关联。控制数据生成模块570可以包括哈希值以及在web访问请求中的加密的控制数据。客户端设备在接收到web访问请求和web访问请求中所包括的加密的控制数据时,可以用HMAC密钥对控制数据进行解密,基于解密的控制数据来计算哈希值,并将该哈希值与在web访问请求中所包括的哈希值进行比较。如果两个哈希值匹配,则客户端设备可以确定控制数据来自可信源,并且根据控制数据值将配置应用于应用和/或本地代理。
控制数据映射储存器580可以包括一个或更多个映射表(例如,图4的映射表400),该映射表将控制数据映射到不同配置。控制数据生成模块570可以访问控制数据映射储存器580,以如上所述地获得用于控制数据生成的映射表。
图6是示出根据本公开的某些方面的用于向客户端设备提供控制数据的示例方法600的简化流程图。该方法可以由例如图2的服务器代理212和图5的服务器代理500来执行。
在602,系统可以从客户端设备(例如,图1的计算设备100、图2的客户端设备204等)接收对web资源的第一请求。第一请求可以是包括web资源的URI或部分URI的HTTP请求,而web资源可以是例如在web服务器(例如,图2的web服务器202)上托管的web内容。
在604,系统可以基于第一请求生成第二请求。第二请求可以是包括在第一请求中所包括的URI(或部分URI)的HTTP请求。系统可以基于确定客户端设备被准许访问所请求的web资源,来生成第二请求。随后在606,系统将第二请求传送到web服务器。
在608,系统可以生成与客户端设备的一个或更多个功能相关联的控制数据。一个或更多个功能可以包括例如输出界面的操作、传送后续web访问请求的目的地(例如,是将后续web访问请求传送到服务器代理还是传送到web服务器)等。可以基于对于外部事件(例如从另一服务器接收软件补丁、订阅事务的完成等)的检测来生成控制数据。基于外部事件,系统可以确定要应用于客户端设备的各个组件(例如,应用208、本地代理210等)的一组配置。系统可以参考控制数据映射表(例如,图4的映射表400)并基于该组配置来确定控制数据。
在610,系统可以从web服务器接收包括所请求的web资源的第一响应。第一响应可以是HTTP响应。
在612,系统可以生成包括控制数据和web资源的第二响应。第二响应可以是HTTP响应,具有根据控制数据生成的一个或更多个头部。控制数据也可以被加密。
在614,系统可以向客户端设备传送第二响应,以控制客户端设备的一个或更多个功能。例如,基于在第二响应中所包括的控制数据,客户端设备可以显示不透明层,以拒绝用户对web内容的访问、向web服务器而不是服务器代理传送后续的web访问请求等。
五、示例计算系统
图7示出了计算系统的框图的示例。图7所示的计算系统可以用于实现本文描述的任何计算设备(例如,图1的计算设备100、图2的客户端设备204和服务器代理212以及图5的服务器代理500等),以代替或补充所提供的描述。在该示例中,计算系统700包括处理器710、总线720、存储装置730、存储器740、随机存取存储器(RAM)742、只读存储器(ROM)744、文件系统750、用户输入设备760、输出设备770、网络接口780和通信网络790。在本示例中,用户输入设备760通常体现为计算机鼠标、轨迹球、触控板、操纵杆、无线遥控器、绘图板、语音命令系统、眼睛跟踪系统等。用户输入设备760通常允许用户通过诸如点击按钮等命令来选择出现在输出设备770上的对象、图标、文本等。输出设备770可以包括与计算设备、虚拟现实环境、投影系统、扬声器等相关联的屏幕。
网络接口780的示例通常包括以太网卡、调制解调器(电话、卫星、电缆、综合业务数字网(ISDN))、异步数字用户线路(DSL)单元、
Figure BDA0002391314640000191
接口、通用串行总线(USB)接口等。例如,网络接口780可以耦合到通信网络790、
Figure BDA0002391314640000192
总线等。在其他实施例中,网络接口780可以物理地集成在处理器710上,可以是软件程序(诸如软数字用户线路(DSL)等)。网络接口780可以对应于图5的NIC 504。
在各种示例中,计算系统700通常包括相似的计算机组件,诸如处理器710和存储器740设备(诸如RAM 742、ROM 744)、文件系统750和互连上述组件的系统总线720。处理器710可以对应于图5的处理器502。存储器740可以存储例如图5的服务器侧模块530、客户端侧接口模块540、访问请求模块550、访问响应模块560和控制数据生成模块570。这些模块可以由处理器710执行,以执行本文描述的任何方法。
RAM 742和ROM 744是被配置成存储诸如本公开的实施例的数据(包括可执行计算机代码、人类可读代码等)的有形非暂态介质的示例。其他类型的有形介质包括软盘、可移动硬盘、光存储介质(诸如,CD-ROM、DVD和条形码)、半导体存储器(诸如闪存)、需备用电池的易失性存储器(battery-backed volatile memory)、联网存储设备等。
在各种示例中,计算系统700还可以包括能够通过网络(例如超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、实时流传送协议(RTP/RTSP)等)进行通信的软件。在本公开的可选实施例中,也可以使用其他通信软件和传输协议,例如网际分组交换(IPX)、用户数据报协议(UDP)等。
在涉及方法、系统和存储介质的所附权利要求中具体公开了实施例,其中,在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如系统或计算机程序产品)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
虽然已经描述了特定实施例,但是各种修改、变更、替代结构和等同物是可能的。实施例不限于在某些特定数据处理环境中进行操作,而是可以在多个数据处理环境中自由地操作。另外,虽然已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员来说,显然这并不旨在进行限制。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行或并发地被执行。另外,可以重新安排操作的顺序。过程可能有图中未包括的附加步骤。上述实施例的各种特征和方面可以单独或联合地被使用。
此外,应当注意,各个示例可以被描述为过程,该过程被描绘为流程图、流程示意图、数据流示意图、结构图或框图。虽然流程图可以将操作描述为顺序过程,但是许多操作可以并行或并发地被执行。另外,可以重新安排操作的顺序。当过程的操作完成时,该过程就终止了,但是该过程可能有图中没有包括的附加步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,它的终止可以对应于该函数返回到调用函数或主函数。
术语“机器可读存储介质”或“计算机可读存储介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或承载指令(多个指令)和/或数据的各种其他介质。机器可读存储介质或计算机可读存储介质可以包括其中可以存储数据的非暂态介质,并且不包括无线或通过有线连接进行传播的载波和/或暂态电子信号。非暂态介质的示例可以包括但不限于磁盘或磁带、诸如光盘(CD)或数字多功能盘(DVD)的光存储介质、闪存、存储器或存储器设备。计算机程序产品可以包括代码和/或机器可执行指令,其可以代表过程、函数、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任意组合。
此外,示例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实现。当以软件、固件、中间件或微代码的方式实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在机器可读介质中。一个或更多个处理器可以执行软件、固件、中间件、微代码、程序代码或代码段,以执行必要的任务。
可以以各种配置来提供在一些附图中描绘的系统。在一些示例中,系统可以被配置为分布式系统,其中,系统的一个或更多个组件分布在一个或更多个网络中,诸如在云计算系统中。
当组件被描述为“被配置成”执行某些操作时,可以通过下列项来完成这种配置:例如,设计电子电路或其他硬件来执行操作、通过对可编程电子电路(例如,微处理器或其他合适的电子电路)进行编程来执行操作、或者它们的任意组合。
此外,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应该认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅以硬件的方式实现,或者仅以软件的方式实现,或者使用它们的组合来实现。在一个示例中,软件可以被实现为包含计算机程序代码或指令的计算机程序产品,所述计算机程序代码或指令可由一个或更多个处理器执行,用于执行本公开中描述的任何或所有步骤、操作或过程,其中计算机程序可以存储在非暂态计算机可读介质上。本文描述的各种过程可以在相同的处理器上实现,或者在任何组合中的不同的处理器上实现。
在设备、系统、组件或模块被描述为被配置为执行某些操作或功能的情况下,可以通过下列项来完成这种配置:例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作(诸如通过执行计算机指令或代码)、或者通过被编程为执行存储在非暂态存储介质上的代码或指令的处理器或核、或者通过它们的任意组合。多个过程可以使用各种技术(包括但不限于用于进程间通信的传统技术)进行通信,并且不同的成对的过程可以使用不同的技术,或者相同的成对的过程可以在不同的时间使用不同的技术。
在本公开中给出了具体细节,以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实施实施例。例如,为了避免模糊实施例,众所周知的电路、过程、算法、结构和技术被示出,而没有不必要的细节。本描述仅提供示例性实施例,并不旨在限制其他实施例的范围、适用性或配置。相反,实施例的前述描述将为本领域技术人员提供用于实现各种实施例的可行的描述(enabling description)。可以对元素的功能和布置进行各种改变。
因此,应当从说明性意义上而非从限制性意义上来考虑说明书和附图。然而,显而易见的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其进行添加、删减、删除以及其他修改和改变。因此,虽然已经描述了特定的实施例,但是这些实施例并不旨在进行限制。各种修改和等同物都在所附权利要求的范围内。

Claims (14)

1.一种计算机实现的控制方法,包括:
从客户端设备接收对web资源的第一请求;
基于所述第一请求生成第二请求;
向web服务器传送对所述web资源的所述第二请求;
其特征在于
生成与所述客户端设备的一个或更多个功能相关联的控制数据;
从所述web服务器接收包括所述web资源的第一响应;
生成包括所述控制数据和所述web资源的第二响应;和
将所述第二响应传送到所述客户端设备,以控制所述客户端设备的一个或更多个功能;
其中,所述方法由服务器代理执行;
所述客户端设备包括软件应用和本地代理;和
所述第一请求由所述本地代理基于由所述软件应用接收的web访问请求来生成;
其中,所述一个或更多个功能与所述软件应用相关联;
其中,所述控制数据包括信息,所述信息包括下列各项中的至少一项:用于在所述软件应用上显示网页的配置、用于使用所述软件应用来执行搜索的配置、或所述软件应用的用户界面配置。
2.根据权利要求1所述的方法,其中:
所述第一请求和所述第二请求是HTTP请求;
所述第一响应和所述第二响应是HTTP响应;和
所述控制数据被包含在所述第二响应的一个或更多个头部中。
3.根据权利要求1或2所述的方法,其中,所述一个或更多个功能与所述本地代理相关联。
4.根据权利要求1或2所述的方法,其中,所述第一请求是通过在所述本地代理和所述服务器代理之间建立的第一TCP连接从所述本地代理接收到的;
其中,所述控制数据控制所述本地代理,以与所述web服务器建立第二TCP连接,并通过所述第二TCP连接向所述web服务器传送第三请求。
5.根据权利要求4所述的方法,其中,所述控制数据控制所述应用以提供可激活的界面元素;
其中,所述控制数据控制所述本地代理以建立所述第二TCP连接,并基于检测到所述可激活的界面元素被激活,传送所述第三请求。
6.根据权利要求1或2所述的方法,其中,所述控制数据是基于所述第一请求生成的。
7.根据权利要求1或2所述的方法,其中,用签名对所述控制数据进行加密。
8.一种系统,包括:
一个或更多个处理器;以及
存储指令的非暂态计算机可读介质,当所述指令被所述一个或更多个处理器执行时,使得所述一个或更多个处理器执行下列操作,所述操作包括:
从客户端设备接收对web资源的第一请求;
基于所述第一请求生成第二请求;
向web服务器传送对所述web资源的所述第二请求;
其特征在于
生成与所述客户端设备的一个或更多个功能相关联的控制数据;
从所述web服务器接收包括所述web资源的第一响应;
生成包括所述控制数据和所述web资源的第二响应;和
将所述第二响应传送到所述客户端设备,以控制所述客户端设备的一个或更多个功能;
其中,所述系统是服务器代理的一部分;
所述客户端设备包括软件应用和本地代理;和
所述第一请求由所述本地代理基于由所述软件应用接收的web访问请求来生成;
其中,所述一个或更多个功能与所述软件应用相关联;
其中,所述控制数据包括信息,所述信息包括下列各项中的至少一项:用于在所述软件应用上显示网页的配置、用于使用所述软件应用来执行搜索的配置、或所述软件应用的用户界面配置。
9.根据权利要求8所述的系统,其中:
所述第一请求和所述第二请求是HTTP请求;
所述第一响应和所述第二响应是HTTP响应;和
所述控制数据被包含在所述第二响应的一个或更多个头部中。
10.根据权利要求8或9所述的系统,其中,所述一个或更多个功能与所述本地代理相关联。
11.根据权利要求8或9所述的系统,其中,所述第一请求是通过在所述本地代理和所述服务器代理之间建立的第一TCP连接从所述本地代理接收到的;
其中,所述控制数据控制所述本地代理,以与所述web服务器建立第二TCP连接,并通过所述第二TCP连接向所述web服务器传送第三请求。
12.根据权利要求11所述的系统,其中,所述控制数据控制所述应用以提供可激活的界面元素;
其中,所述控制数据控制所述本地代理以建立所述第二TCP连接,并基于检测到所述可激活的界面元素被激活,传送所述第三请求。
13.根据权利要求8或9所述的系统,其中,所述控制数据是基于所述第一请求生成的。
14.一种非暂态计算机可读存储介质,其存储能够由一个或更多个处理器执行的多个指令,当所述多个指令由所述一个或更多个处理器执行时,使得所述一个或更多个处理器:
从客户端设备接收对web资源的第一请求;
基于所述第一请求生成第二请求;
向web服务器传送对所述web资源的第二请求;
其特征在于
生成与所述客户端设备的一个或更多个功能相关联的控制数据;
从所述web服务器接收包括所述web资源的第一响应;
生成包括所述控制数据和所述web资源的第二响应;和
将所述第二响应传送到所述客户端设备,以控制所述客户端设备的一个或更多个功能;
其中,所述多个指令由服务器代理执行;
所述客户端设备包括软件应用和本地代理;和
所述第一请求由所述本地代理基于由所述软件应用接收的web访问请求来生成;
其中,所述一个或更多个功能与所述软件应用相关联;
其中,所述控制数据包括信息,所述信息包括下列各项中的至少一项:用于在所述软件应用上显示网页的配置、用于使用所述软件应用来执行搜索的配置、或所述软件应用的用户界面配置。
CN201780094259.9A 2017-07-24 2017-07-25 在基于代理的网络通信中的控制数据的传输 Active CN110999260B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/658,326 US11025724B2 (en) 2017-07-24 2017-07-24 Transport of control data in proxy-based network communications
US15/658,326 2017-07-24
PCT/US2017/043787 WO2019022723A1 (en) 2017-07-24 2017-07-25 TRANSPORTING CONTROL DATA IN NETWORK COMMUNICATIONS BASED ON A REPRESENTATIVE

Publications (2)

Publication Number Publication Date
CN110999260A CN110999260A (zh) 2020-04-10
CN110999260B true CN110999260B (zh) 2022-07-22

Family

ID=65023333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780094259.9A Active CN110999260B (zh) 2017-07-24 2017-07-25 在基于代理的网络通信中的控制数据的传输

Country Status (5)

Country Link
US (1) US11025724B2 (zh)
JP (1) JP7018498B2 (zh)
KR (1) KR102308269B1 (zh)
CN (1) CN110999260B (zh)
WO (1) WO2019022723A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US10789642B2 (en) 2014-05-30 2020-09-29 Apple Inc. Family accounts for an online content storage sharing service
US9875346B2 (en) 2015-02-06 2018-01-23 Apple Inc. Setting and terminating restricted mode operation on electronic devices
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11025724B2 (en) * 2017-07-24 2021-06-01 Facebook, Inc. Transport of control data in proxy-based network communications
EP4184896A1 (en) 2017-08-28 2023-05-24 Bright Data Ltd. Content fetching through intermediate device
US10872024B2 (en) * 2018-05-08 2020-12-22 Apple Inc. User interfaces for controlling or presenting device usage on an electronic device
EP4053717A3 (en) * 2019-02-25 2022-10-26 Bright Data Ltd. System and method for url fetching retry mechanism
WO2020202135A2 (en) 2019-04-02 2020-10-08 Luminati Networks Ltd. System and method for managing non-direct url fetching service
KR102609732B1 (ko) * 2021-11-16 2023-12-05 주식회사 카카오엔터프라이즈 Api 게이트웨이 및 그의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006112662A1 (en) * 2005-04-19 2006-10-26 Lg Electronics Inc. Method and apparatus for making devices on a local network remotely-accessible

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673322A (en) * 1996-03-22 1997-09-30 Bell Communications Research, Inc. System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks
JP3307894B2 (ja) * 1999-06-22 2002-07-24 三菱電機株式会社 通信方法
US6684257B1 (en) * 1999-10-15 2004-01-27 International Business Machines Corporation Systems, methods and computer program products for validating web content tailored for display within pervasive computing devices
JP2002007288A (ja) 2000-06-21 2002-01-11 Ntt Communications Kk 否認防止情報管理方法、その装置及びプログラム記録媒体
US6895444B1 (en) * 2000-09-15 2005-05-17 Motorola, Inc. Service framework with local proxy for representing remote services
US7076244B2 (en) * 2001-07-23 2006-07-11 Research In Motion Limited System and method for pushing information to a mobile device
US7383339B1 (en) * 2002-07-31 2008-06-03 Aol Llc, A Delaware Limited Liability Company Local proxy server for establishing device controls
US8468578B1 (en) * 2002-12-30 2013-06-18 Aol Inc. Establishing access controls in a premise-based environment
JP2005182364A (ja) 2003-12-18 2005-07-07 Canon Software Inc Www中継サーバおよび情報閲覧時間計測方法およびプログラムおよび記録媒体
JP4160092B2 (ja) * 2004-03-09 2008-10-01 ケイティーフリーテル カンパニー リミテッド パケットデータ課金細分化方法及びそのシステム
US7523145B2 (en) * 2004-04-22 2009-04-21 Opentv, Inc. System for managing data in a distributed computing system
US20050271207A1 (en) * 2004-06-05 2005-12-08 Helmut Frey Method and system for chaotic digital signature, encryption, and authentication
US20070061488A1 (en) * 2004-09-20 2007-03-15 Trilibis Inc. System and method for flexible user interfaces
CN100499577C (zh) * 2005-01-20 2009-06-10 中兴通讯股份有限公司 一种快速响应的集中式接纳控制系统及控制方法
US20060200566A1 (en) * 2005-03-07 2006-09-07 Ziebarth Wayne W Software proxy for securing web application business logic
US7594003B2 (en) * 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US9306975B2 (en) * 2006-09-19 2016-04-05 The Invention Science Fund I, Llc Transmitting aggregated information arising from appnet information
US8539329B2 (en) * 2006-11-01 2013-09-17 Bloxx Limited Methods and systems for web site categorization and filtering
US7756903B2 (en) * 2006-12-12 2010-07-13 Yahoo! Inc. Configuring a search engine results page with environment-specific information
WO2009055458A1 (en) * 2007-10-27 2009-04-30 Research In Motion Limited Content disposition system and method for processing message content in a distributed environment
US8839403B2 (en) * 2007-12-31 2014-09-16 Sandisk Il Ltd. Local proxy system and method
US8543667B2 (en) * 2008-01-14 2013-09-24 Akamai Technologies, Inc. Policy-based content insertion
KR100967337B1 (ko) 2008-08-20 2010-07-05 주식회사 컴퍼니원헌드레드 프록시 서버를 이용한 이동통신 단말기의 웹 브라우저 시스템
US20100057830A1 (en) * 2008-08-26 2010-03-04 Nokia Corporation Controlling Client-Server Communications
US8621065B1 (en) * 2008-10-23 2013-12-31 Amazon Technologies, Inc. Dynamic blocking of suspicious electronic submissions
US20100153568A1 (en) * 2008-12-16 2010-06-17 Nokia Corporation Methods, apparatuses, and computer program products for providing a local proxy for accessing web services
JP5294885B2 (ja) 2009-01-07 2013-09-18 株式会社日立製作所 サービス中継装置、サービス中継方法、この方法を実行するためのプログラム
JP5458977B2 (ja) 2010-03-10 2014-04-02 富士通株式会社 中継処理方法、プログラム及び装置
US10263958B2 (en) * 2010-03-18 2019-04-16 Nominum, Inc. Internet mediation
EP2599280A2 (en) 2010-07-26 2013-06-05 Seven Networks, Inc. Mobile application traffic optimization
US8484287B2 (en) 2010-08-05 2013-07-09 Citrix Systems, Inc. Systems and methods for cookie proxy jar management across cores in a multi-core system
US9276979B2 (en) * 2010-09-01 2016-03-01 Vuclip (Singapore) Pte. Ltd. System and methods for resilient media streaming
JP5811708B2 (ja) 2010-09-30 2015-11-11 ブラザー工業株式会社 画像処理システム、画像処理方法、中継装置、及び、中継プログラム。
US9021048B2 (en) * 2010-11-01 2015-04-28 Seven Networks, Inc. Caching adapted for mobile application behavior and network conditions
US8824370B2 (en) * 2010-12-16 2014-09-02 Openet Telecom Ltd. Methods, systems and devices for dynamic context-based routing
US8799470B2 (en) * 2011-03-11 2014-08-05 Qualcomm Incorporated System and method using a client-local proxy-server to access a device having an assigned network address
US20130031601A1 (en) * 2011-07-27 2013-01-31 Ross Bott Parental control of mobile content on a mobile device
US8813092B2 (en) * 2011-10-12 2014-08-19 Raytheon Company CORBA embedded inter-orb protocol (EIOP)
FI125252B (en) 2011-12-07 2015-08-14 Arm Finland Oy Procedure, device and system for managing web services
US8977704B2 (en) * 2011-12-29 2015-03-10 Nokia Corporation Method and apparatus for flexible caching of delivered media
US20140207911A1 (en) * 2013-01-22 2014-07-24 James Kosmach System and method for embedding multimedia controls and indications in a webpage
US10120847B2 (en) * 2012-01-27 2018-11-06 Usablenet Inc. Methods for transforming requests for web content and devices thereof
GB2511562B (en) * 2012-03-02 2015-08-12 Seven Networks Inc Providing data to a mobile application accessible at a mobile device via different network connections without interruption and mobile device which hands over
WO2013190545A1 (en) * 2012-06-17 2013-12-27 Skycure Ltd Access control system for a mobile device
WO2014062921A1 (en) * 2012-10-19 2014-04-24 Interdigital Patent Holdings, Inc. Multi-hypothesis rate adaptation for http streaming
US9374436B2 (en) 2012-12-13 2016-06-21 Qualcomm Incorporated Loading a re-directed web page on a web browser of a client device in a communications system
US20140173111A1 (en) * 2012-12-19 2014-06-19 Netzero Wireless, Inc. Data usage management systems and methods
US10075554B2 (en) * 2012-12-20 2018-09-11 Facebook, Inc. Detecting mobile device attributes
US9213845B1 (en) * 2013-03-08 2015-12-15 Amazon Technologies, Inc. Content access control across multiple media devices
US10282401B2 (en) * 2013-03-13 2019-05-07 Usablenet Inc. Methods for processing cascading style sheets and devices thereof
US9787687B2 (en) * 2013-04-10 2017-10-10 Spotify Ab Systems and methods for efficient and secure temporary anonymous access to media content
EP3008942B1 (en) * 2013-06-11 2018-10-10 Seven Networks, LLC Application and/or server stability in signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US20150019686A1 (en) * 2013-07-12 2015-01-15 Seven Networks, Inc. Distributed caching systems with configurable extended caching optimization
US9065765B2 (en) * 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US9654580B2 (en) * 2013-10-08 2017-05-16 Microsoft Technology Licensing, Llc Proxy-based web application monitoring through script instrumentation
US9697189B2 (en) * 2013-11-15 2017-07-04 Instart Logic, Inc. Partial website optimization for a web publisher
US9351254B2 (en) * 2014-01-22 2016-05-24 Seven Networks, Llc Method for power saving in mobile devices by optimizing wakelocks
US20150249852A1 (en) * 2014-02-28 2015-09-03 United Video Properties, Inc. Systems and methods for crowd-sourced media access control
US9380342B2 (en) * 2014-02-28 2016-06-28 Rovi Guides, Inc. Systems and methods for control of media access based on crowd-sourced access control data and user-attributes
US9391995B2 (en) * 2014-09-30 2016-07-12 Airwatch Llc Remote processing of mobile applications
EP3018580A1 (en) 2014-11-06 2016-05-11 Alcatel Lucent Cache server and method for serving and caching web resources
US9342617B1 (en) * 2015-05-19 2016-05-17 Parrable, Inc. Unique identifiers for browsers
US9747434B1 (en) * 2015-09-17 2017-08-29 EMC IP Holding Company LLC Authenticating with an external device by providing a message having message fields arranged in a particular message field order
US20170302619A1 (en) * 2016-04-19 2017-10-19 Virtual Network Element, Inc. System and Method for Automating Protocol Implementation in a Diameter Wireless Network
US20190141013A1 (en) * 2016-06-02 2019-05-09 Adjesty Sofware Ltd. Method and system for informational content quality verification
US10277701B2 (en) * 2016-07-08 2019-04-30 Facebook, Inc. Methods and Systems for Rewriting Scripts to Direct Requests
US10402181B2 (en) * 2016-07-18 2019-09-03 Airwatch Llc Generating and optimizing deployment configurations for enrolled devices
US10282172B2 (en) * 2016-09-12 2019-05-07 Adobe Inc. Authoring and deploying television apps and pages in a content management system
US10853887B2 (en) * 2016-09-27 2020-12-01 Adobe Inc. Determination of paywall metrics
US10367784B2 (en) * 2016-09-30 2019-07-30 Palo Alto Networks, Inc. Detection of compromised credentials as a network service
US10542459B2 (en) * 2017-03-17 2020-01-21 Verizon Patent And Licensing Inc. Systems and methods for accessing multiple application servers via a service capability exposure function
US11025724B2 (en) * 2017-07-24 2021-06-01 Facebook, Inc. Transport of control data in proxy-based network communications
US11062050B2 (en) * 2017-11-24 2021-07-13 Elsi Inc Devices, systems, and methods for securely storing and managing sensitive information
US11088994B2 (en) * 2017-12-01 2021-08-10 Twingate Inc. Local interception of traffic to a remote forward proxy
CN112364274A (zh) * 2020-10-28 2021-02-12 北京中科网威信息技术有限公司 Web站点访问加速方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006112662A1 (en) * 2005-04-19 2006-10-26 Lg Electronics Inc. Method and apparatus for making devices on a local network remotely-accessible

Also Published As

Publication number Publication date
US20190028548A1 (en) 2019-01-24
JP7018498B2 (ja) 2022-02-10
US11025724B2 (en) 2021-06-01
JP2020529655A (ja) 2020-10-08
WO2019022723A1 (en) 2019-01-31
CN110999260A (zh) 2020-04-10
KR20200023485A (ko) 2020-03-04
KR102308269B1 (ko) 2021-10-06

Similar Documents

Publication Publication Date Title
CN110999260B (zh) 在基于代理的网络通信中的控制数据的传输
US10587544B2 (en) Message processing method, processing server, terminal, and storage medium
US9706371B2 (en) Push notification middleware
CN106716404B (zh) 计算机子网内的代理服务器
CN107105001B (zh) 在电子设备之间传送状态的系统
US9762643B2 (en) Providing hosted virtual desktop infrastructure services
JP2017529793A5 (zh)
US10034057B2 (en) Message processing method, device, gateway, STB and IPTV
US11700262B2 (en) System and method to securely execute datacenter management operations remotely
US20130046816A1 (en) Method for Flow Control and Reliable Communication In A Collaborative Environment
TW201347469A (zh) 透過閘道器伺服器或服務以存取雲端運算服務儲存的多媒體裝置
US10021195B2 (en) Cross-device synchronization system for account-level information
CN110769009B (zh) 用户身份认证方法及系统
WO2015192582A1 (zh) 虚拟桌面登录验证方法和装置
EP3417367B1 (en) Implementing a storage system using a personal user device and a data distribution device
KR20220007696A (ko) 네트워크 기반 서비스들을 위한 파이어 앤 포겟 오프로드 메커니즘
US10892912B2 (en) Optimization of network data transfers over a wide area network
EP3435629B1 (en) Transport of control data in proxy-based network communications
EP4101148A1 (en) Method and apparatus for configuring 5g application servers in connected uplink-to-downlink streaming
WO2021082945A1 (zh) 一种远程管理方法、系统、终端设备及服务器
US11720291B2 (en) Methods and systems for accessing remotely stored files using virtual applications
WO2021231064A1 (en) Modification of application-provided turn servers
US20230370447A1 (en) System and method for providing application access through an rdp pool service over a zero trust cloud environment
US20240031358A1 (en) System and method for providing a web based rdp service through a zero trust cloud environment
Singh et al. An efficient device to device RPC framework using DBUS and KDBus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan platform Co.

Address before: California, USA

Applicant before: Facebook, Inc.

GR01 Patent grant
GR01 Patent grant