CN108811515B - 递送来自跨源资源的自动播放媒体内容元素 - Google Patents

递送来自跨源资源的自动播放媒体内容元素 Download PDF

Info

Publication number
CN108811515B
CN108811515B CN201780014548.3A CN201780014548A CN108811515B CN 108811515 B CN108811515 B CN 108811515B CN 201780014548 A CN201780014548 A CN 201780014548A CN 108811515 B CN108811515 B CN 108811515B
Authority
CN
China
Prior art keywords
response
request
content
client device
content element
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
CN201780014548.3A
Other languages
English (en)
Other versions
CN108811515A (zh
Inventor
M.哈莱
L.汤普森
B.马尔福德
A.姆克尔特扬
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN108811515A publication Critical patent/CN108811515A/zh
Application granted granted Critical
Publication of CN108811515B publication Critical patent/CN108811515B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本文描述了用于递送跨站点自动播放媒体的系统和方法。服务器可以从客户端设备接收针对嵌入来自第二域的内容元素中的第一域处的媒体内容的请求。该请求可以包括指示客户端设备被配置为限制跨域重定向的标识符。响应于识别出指示客户端设备被配置为限制跨域重定向的标识符,服务器可以确定该请求包括具有第一预定值的内容类型标头。响应于该确定,服务器可以生成响应,该响应的主体中包括媒体内容元素。服务器可以将该响应发送到客户端设备。该响应的接收可以使得客户端设备从该响应的主体中提取媒体内容元素并呈现媒体内容元素。

Description

递送来自跨源资源的自动播放媒体内容元素
相关申请交叉引用
本申请要求2017年3月1日提交的题为“Delivering Auto-Play Media ContentElement from Cross Origin Resources(递送来自跨源资源的自动播放媒体内容元素)”的美国专利申请No.15/447009的权益和优先权,其全部内容通过引用并入本文。
背景技术
在诸如互联网的计算机联网环境中,内容元素(例如,网页)可以由在客户端设备处执行的应用(例如,web浏览器)来呈现。其他内容元素可以被嵌入在主要内容元素(例如,嵌入在主体元素中的内联框架元素)内。这些嵌入内容元素可以由客户端设备经由计算机联网环境从与主要内容元素的服务器不同的服务器接收。
发明内容
在同源策略下,出于安全目的,web浏览器可以限制源自除了主要内容元素的域之外的域的内容。同源策略可允许web浏览器在跨源资源共享(Cross-Origin ResourceSharing,CORS)协议下规定的情况下访问来自不同域的嵌入内容。该协议可以允许web浏览器使用特定的方法(例如,GET、HEAD、和POST)来获取源自跨不同域的某些类型的内容,诸如普通文本数据(“文本/普通”)、多部分表单数据(“x-www-form-URL编码”)和应用编码表单数据(“应用/x-ww-form-URL编码”)。在这些规范下,在客户端设备上操作的web浏览器可以向与不同域相关联的服务器发送请求以请求内容。在一些实施方案中,web浏览器可以首先将预检请求(例如,OPTIONS方法)发送到嵌入内容的其他域以确定域是否是安全的。服务器可以向所请求的域发送响应授权许可,并且可以规定可以采取的哪些行动。一旦接收到许可,web浏览器然后就可以发送对嵌入内容的另一请求。预检请求可以允许要从其他域接收的附加类型的内容以及要被传送到其他域的附加的方法。
CORS协议的一个限制可能是重定向响应(例如,302响应)中的所有域要被限制。在此规范下,如果服务器尝试返回针对与主要内容的域不同的域的重定向响应,则该响应可能会被重写以阻止所有域。为了解决这些挑战中的一些,客户端设备可以被配置为向请求添加参数以发信号通知服务器返回成功响应,在该响应的主体中具有重定向内容的域。进而服务器可以发送响应,该响应通过在响应的主体中具有其他内容的域来指示成功(例如,200响应)。以这种方式,客户端设备可以提取响应中的资源地址,并且利用资源域传送另一请求以检索相应的内容。传送成功响应而不是重定向响应可以绕过CORS针对重定向响应所规定的限制。
虽然CORS协议允许显示来自不同源的内容,但客户端设备上的安全协议仍可以损害此功能。某些类型的web浏览器可以在没有明确的用户交互的情况下默认阻止媒体内容元素(例如,嵌入在另一内容元素中的HTML视频内容元素)的自动播放。为了避开这种限制,web浏览器可以被配置为在具有或不具有添加的参数的情况下传送对媒体内容元素的请求以向服务器发信号。可以将请求的内容类型标头规定为文本或非文本以向服务器标记客户端设备可能正期望哪种类型的内容。如果内容类型标头是文本,则服务器可以传送在响应的主体中具有媒体内容元素的域的响应。如果内容类型标头是非文本,则服务器可以在响应的主体中插入媒体内容元素的编码后的版本。对媒体内容元素的编码可以是web浏览器可以编译并执行以形成HTML画布元素的JAVASCRIPT代码。在接收时,客户端设备可以提取主体的内容并对媒体内容元素解码以呈现并自动地对主要内容元素进行播放。
至少一个方面涉及递送跨站点自动播放媒体的方法。数据处理系统可以从客户端设备接收针对嵌入来自第二域的内容元素中的第一域处的媒体内容的请求。该请求可以包括指示客户端设备被配置为限制跨域重定向的预定义标识符。响应于将第一域识别为与第二域不同并且响应于识别出指示客户端设备被配置为限制跨域重定向的预定义标识符,数据处理系统可以确定该请求包括具有第一预定值的内容类型标头。响应于确定该请求包括具有第一预定值的内容类型标头,数据处理系统可以生成在响应的主体中包括媒体内容元素的响应。数据处理系统可以将响应发送到客户端设备。响应的接收可以使客户端设备呈现响应的主体中的媒体内容元素。
在一些实施方案中,接收对媒体内容元素的请求还可以包括接收对媒体内容元素的请求,该请求包括客户端设备的设备类型标识符。在一些实施方案中,数据处理系统可以基于设备类型标识符来确定客户端设备被配置为限制以第一格式编码的媒体内容元素的自动呈现。在一些实施方案中,响应于确定客户端设备是移动设备,数据处理系统可以将媒体内容元素从第一格式转码为第二格式。在一些实施方案中,客户端设备可以被配置为限制以第一格式编码的媒体内容元素的自动呈现,并且允许呈现以第二格式编码的媒体内容元素。
在一些实施方案中,请求的预定义标识符可以包括在客户端设备上执行的应用的应用类型标识符。在一些实施方案中,数据处理系统可以识别出在客户端设备上执行的应用的应用类型标识符对应于预先指定的应用。在一些实施方案中,响应于识别出应用类型标识符对应于预先指定的应用,数据处理系统可以确定该请求包括具有第一预定值的内容类型标头。
在一些实施方案中,数据处理系统可以在白名单中搜索第一域搜索。白名单可以规定允许具有该嵌入媒体内容元素的多个域。在一些实施方案中,生成响应还可以包括响应于确定第一域在白名单上而生成响应。
在一些实施方案中,数据处理系统可以从第二客户端设备接收针对嵌入来自第四域的内容元素中的第三域处的媒体内容元素的第二请求。第二请求可以包括指示第二客户端设备被配置为限制跨域限制的预定义标识符。在一些实施方案中,响应于将第三域识别为与第四域不同并且响应于识别出第二请求包括预定义标识符,数据处理系统可以确定第二请求包括具有不同于第一预定值的第二预定值的内容类型标头。在一些实施方案中,数据处理系统可以响应于确定该请求包括具有第二预定值的内容类型标头而生成第二响应,该第二响应的主体中包括所请求的媒体内容元素的地址并且该第二响应的标头中包括指示成功的状态标识符。在一些实施方案中,数据处理系统可以将第二响应发送到第二客户端设备。第二响应的接收可以使第二客户端设备将所请求的媒体内容元素的第三请求发送到所提取的地址。
在一些实施方案中,响应于从第二客户端设备接收到第二请求,数据处理系统可以确定针对第二客户端设备的重定向请求的数量小于预定义阈值。在一些实施方案中,确定第二请求包括具有第二预定值的内容类型标头类型还可以包括:响应于确定重定向请求的数量小于预定义阈值,确定第二请求包括具有第二预定值的内容类型标头类型。在一些实施方案中,第二响应中的内容类型标头的第二预定值可以指示文本内容。在一些实施方案中,响应中的内容类型标头的第一预定值可以指示非文本内容。在一些实施方案中,生成响应还可以包括生成在响应的主体中包括可执行代码的请求以实例化媒体播放器。
至少一个方面涉及用于递送跨站点自动播放媒体的系统。响应解析器可以在具有一个或多个处理器的数据处理系统上执行。响应解析器可以接收对嵌入来自第二域的内容元素中的第一域处的媒体内容的请求。该请求可以包括指示客户端设备被配置为限制跨域重定向的预定义标识符。响应于将第一域识别为不同于第二域和响应于识别出指示客户端设备被配置为限制跨域重定向的预定义标识符,响应解析器可以确定该请求包括具有第一预定值的内容类型标头。可以在数据处理系统上执行响应重写器。响应于确定该请求包括具有第一预定值的内容类型标头,响应重写器可以生成在响应的主体中包括媒体内容元素的响应。响应重写器可以将响应发送到客户端设备。响应的接收可以使客户端设备呈现来自响应的主体的媒体内容元素。
在一些实施方案中,该请求可以包括客户端设备的设备类型标识符。在一些实施方案中,请求处理器可以基于设备类型标识符来确定客户端设备被配置为限制以第一格式编码的媒体内容元素的自动呈现。在一些实施方案中,可以在数据处理系统上执行媒体编码器。响应于确定客户端设备是移动设备,媒体编码器可以将媒体内容元素从第一格式编码为第二格式。客户端设备可以被配置为限制以第一格式编码的媒体内容元素的自动呈现,并且允许呈现以第二格式编码的媒体内容元素。
在一些实施方案中,请求的预定义标识符可以包括在客户端设备上执行的应用的应用类型标识符。在一些实施方案中,请求处理器可以识别出在客户端设备上执行的应用的应用类型标识符对应于预先指定的应用。在一些实施方案中,响应于识别出应用类型标识符对应于预先指定的应用,请求处理器可以确定请求包括具有第一预定值的内容类型标头。
在一些实施方案中,请求处理器可以在白名单中搜索第一域。白名单可以规定允许具有该嵌入媒体内容元素的多个域。在一些实施方案中,响应重写器可以响应于确定第一域在白名单上而生成响应。
在一些实施方案中,请求处理器可以接收针对嵌入来自第四域的内容元素中的第三域处的媒体内容元素的第二请求。第二请求可以包括指示第二客户端设备被配置为限制跨域限制的预定义标识符。在一些实施方案中,响应于将第三域识别为不同于第四域以及响应于识别出第二请求包括预定义标识符,请求处理器确定第二请求包括具有与第一预定值不同的第二预定值的内容类型标题。在一些实施方案中,响应于确定该请求包括具有第二预定值的内容类型标头,响应重写器可以生成第二响应,该第二响应的主体中包括所请求的媒体内容元素的地址并且该第二响应的标头中包括指示成功的状态标识符。在一些实施方案中,响应重写器可以将第二响应发送到第二客户端设备。第二响应的接收可以使得第二客户端设备将对所请求的媒体内容元素的第三请求发送到所提取的在响应的主体中识别出的地址。
在一些实施方案中,响应于从第二客户端设备接收到第二请求,请求处理器可以确定针对第二客户端设备的重定向请求的数量小于预定义阈值。在一些实施方案中,响应于确定重定向请求的数量小于预定义阈值,请求处理器可以确定第二请求包括具有第二预定值的内容类型标头类型。在一些实施方案中,第二响应中的内容类型标头的第二预定值可以指示文本内容。在一些实施方案中,响应中的内容类型标头的第一预定值可以指示非文本内容。在一些实施方案中,响应重写器可以生成在响应的主体中包括可执行代码的请求以实例化媒体播放器。在一些实施方案中,响应可以包括缺少重定向代码的状态代码。
以下详细讨论这些和其他方面以及实施方案。前述信息和以下详细描述包括各个方面和实施方案的说明性示例,并提供用于理解所要求保护的方面和实施方案的性质和特性的概述或框架。附图提供了对各个方面和实施方案的图示和进一步理解,并且被包含在本说明书中并构成本说明书的部分。
附图说明
附图不是按比例来绘制的。各附图中相同的参考标记和名称表示相同的元素。为清楚起见,并非每个组件都可以在每个附图中标记。在附图中:
图1是描绘根据说明性的实施方案的在计算机网络环境中递送跨站点自动播放媒体的一个实施方案的过程图;
图2是描绘根据说明性的实施方案的用于在计算机网络环境中递送跨站点自动播放媒体的系统的一个实施方案的框图;
图3A-图3C是描绘根据说明性的实施方案的递送跨站点自动播放媒体的方法的流程图;和
图4是示出根据说明性的实施方案的可用于实施本文所描述和示出的系统和方法的元素的计算机系统的一般架构的框图。
具体实施方式
以下是与在计算机网络环境中递送跨站点自动播放媒体的方法、装置和系统相关的各种概念和该方法、装置和系统的实施方案的更详细的描述。以上介绍并在下面更详细讨论的各种概念可以以多种方式中的任何一种来实施,因为所描述的概念不限于实施方案的任何特殊的方式。
在同源策略下,出于安全目的,web浏览器可以限制源自除了主要内容元素的域之外的域的内容。同源策略可允许Web浏览器在跨源资源共享(CORS)协议下规定的情况下访问来自不同域的嵌入内容。该协议可以允许web浏览器使用特定的方法(例如,GET、HEAD、和POST)来获取源自跨不同域的某些类型的内容,诸如普通文本数据(“文本/普通”)、多部分表单数据(“x-www-form-URL编码”)和应用编码表单数据(“应用/x-ww-form-URL编码”)以及其他。使用这些规范,在客户端设备上操作的web浏览器可以向与不同域相关联的服务器传送请求(“简单请求”)以请求内容。此外,web浏览器可以首先将预检过的请求(例如,OPTIONS方法)传送到嵌入内容的其他域,以确定域是否是安全的。服务器可以向所请求的域传送响应授权许可,并且可以规定可以采取哪些动作。一旦接收到许可,web浏览器就可以使用特定的方法中的一种传送对嵌入内容的另一请求。预检请求可以允许附加类型的内容和附加方法被传送到其他域。
CORS协议的一个限制可能是重定向响应(例如,302响应)中的所有域要被限制。在此规范下,如果服务器尝试返回针对与主内容的域不同的域的重定向响应,则可以重写响应以阻止所有域。为了解决这些挑战中的一些,客户端设备可以被配置为向请求添加参数以发信号通知服务器返回成功响应,在该响应的主体中具有重定向内容的域。进而,服务器可以发送响应,该响应通过在响应的主体中具有其他内容的域来指示成功(例如,200响应)。以这种方式,客户端设备可以提取响应中的资源地址,并且利用资源域传送另一请求以检索相应的内容。传送成功响应而不是重定向响应可以绕过CORS针对重定向响应规定的限制。
虽然CORS协议允许显示来自不同源的内容,但客户端设备上的安全协议仍可以损害此功能。某些web浏览器可以在没有明确的用户交互的情况下默认阻止媒体内容元素(例如,嵌入在另一内容元素中的HTML视频内容元素)的自动播放。为了解决这些和其他技术挑战,在客户端设备上执行的脚本和在服务器上执行的请求处理器可以被配置为生成并交换数据以促进可自动播放的媒体内容元素。
参考图1,描绘了信号流程图,该图描绘用于在计算机网络环境中递送跨站点自动播放媒体的过程100的一个实施方案。在描绘的过程100中,在客户端设备105上执行的代理(例如,web浏览器、插件、代理、服务等)可以被配置为根据CORS协议限制或阻止源自与重定向响应中的主要内容元素的域不同的嵌入内容元素的加载。客户端设备105的代理还可以被配置为用于阻止特定内容类型的自动播放媒体内容元素(例如,HTML视频内容元素)。为了解决这两个约束,在一些实施方案中,可以向客户端设备105提供脚本以配置在其上执行的代理来以脚本规定的方式生成请求和解析响应。该脚本可以由客户端设备105与嵌入内容元素或者主要内容元素一起被接收,或者与嵌入内容元素和主要内容元素两者分离(例如利用网页、CSS样式表等)。在服务器110(例如,数据处理系统)上执行的请求处理器还可以被配置为解析来自客户端设备105的响应并生成响应以允许客户端设备105自动播放媒体内容元素。
在过程100的第一步骤中,客户端设备105可以生成并发送初始请求115。在生成初始请求115时,客户端设备105可以确定嵌入媒体内容元素的域与主要内容元素的域不同,用信号通知请求115将符合CORS协议。响应于该确定,客户端设备105可以生成请求115(例如,POST,GET或OPTIONS请求)。客户端设备105可以将主机标头(host header)120A设置为嵌入媒体内容元素的域(例如,“地址A”),以将请求105引导到与域相关联的服务器110。服务器110可以与向客户端设备105提供主要内容元素的服务器不同。客户端设备还可以将内容类型标头120B设置为文本的(例如,“文本/普通”)以向服务器110指示客户端105正在请求哪种类型的内容。客户端设备105还可以将参数包括在请求115中(例如,在标头120A的主机名中、在选项字段中、在URL的参数值对中,等),以向服务器110发信号通知客户端设备105正期望响应的主体中的重定向地址。然后,请求115可以由客户端设备105传送到与嵌入媒体内容元素的地址相对应的服务器110用于重定向到第三方内容服务器。
一旦接收到请求,服务器110可以接收并解析请求115。服务器110可以从主机标头120A识别出嵌入媒体内容元素的地址。服务器110可以基于请求115(诸如通过使用被添加到请求115的参数、基于被设置为“文本”的内容类型标头120B、或者基于被包括在主机标头120A中的地址)确定客户端设备105将被重定向到另一地址(例如,第三方内容服务器的地址)。基于该确定,服务器110可以识别出客户端设备105将被重定向到的第二地址(例如,“地址B”)。第二地址可以包括与请求115的主机标头120A中包括的第一地址相同的主机名。服务器110可以生成响应125。服务器110可以将响应125的状态代码标头130A设置为成功(例如,200OK),而不是包括重定向状态代码(例如,302找到(found))。服务器110可以将客户端设备105将被重定向到的其他地址包括在响应125的主体130B中。然后可以将响应125传送到客户端设备105。
一旦接收到响应125,客户端设备105可以解析响应125以识别响应125的主体130B中的重定向地址(例如,“地址B”)。由于响应125的状态代码标头130指示成功而不是重定向(例如,代码302),客户端设备105能够访问来自与主内容元素的域不同的域的内容,绕过CORS协议中的关于重定向响应的限制:可能被302重定向代码触发的浏览器安全设置不会被OK 200代码触发。设置为成功的响应125还可以允许客户端设备105向除了主要内容元素的域之外的域的服务器传送附加请求。进而,客户端设备105可以(例如,使用POST方法)生成第二请求135。在请求135中,客户端设备105可以将主机标头140A设置为包括关于媒体内容元素的地址的重定向地址(例如,“地址B”)。客户端设备105还可以将内容类型标头140B设置为“非文本”或类似设置,以向服务器110指示客户端设备105可能正期望嵌入媒体内容元素的数据。客户端设备105还可以在请求135中添加另一参数以向服务器110发信号通知客户端设备105被重定向到另一地址。然后,请求135可以由客户端设备105传送到服务器110。应当注意的是,在传送具有设置为“非文本”的内容类型标头的请求之前,客户端设备105可以传送任何数量的、具有设置为“文本”的内容类型标头的请求。
已获得第二请求135,服务器110就可以解析请求135并识别请求135的两个标头140A和140B。服务器110可以将内容类型标头140B识别为被设置为“非文本”的,其发送信号通知客户端设备105可能正期望的是嵌入内容元素而不是重定向响应。响应于将内容类型标题140B识别为被设置为“非文本”的,服务器110可以识别包括在主机标头140A中的地址。使用该地址,服务器110可以访问媒体内容元素数据库以获得媒体内容元素。媒体内容元素可以是可由在客户端设备105上执行的web浏览器限制的格式(诸如HTML视频内容元素)。为了避开限制,服务器110可以以不同的格式对媒体内容元素进行编码(例如,使用JAVASCRIPT来形成HTML画布内容元素)。进而服务器110可以生成响应145、将状态码标头150A设置为成功(例如,200OK)并将编码后的媒体内容元素插入到主体150B当中。响应145可以被发送到客户端设备105。
已经接收到响应145,客户端设备105就可以解析响应145以识别来自主体150B的编码后的媒体内容元素。因为响应150B的主体包括以不受客户端设备105自动播放所限制的格式来编码的媒体内容元素,所以客户端设备105可以在web浏览器上自动呈现并且播放嵌入媒体内容元素。以过程100中描述的方式,客户端设备105和服务器110两者都能够解决或避开技术挑战,并且绕过与CORS协议下对重定向的限制和某些web浏览器所设置的对媒体内容元素的自动播放的阻止有关的限制。
现在参考图2,示出了描绘用于递送跨站点自动播放媒体的环境的一个实施方案的框图。环境200包括客户端设备105、数据处理系统110、网络205、内容提供商设备210和内容发布者设备215。总的来说,客户端设备105、数据处理系统110、内容提供商设备210和内容发布者设备215中的每一个可以经由网络205彼此通信。客户端设备105、内容提供商计算设备215和内容发布者计算设备215可以包括台式计算机、膝上型计算机、平板计算机、智能手机、个人数字助理、移动设备、消费计算设备、服务器、客户端、数字录像机、电视机的机顶盒、视频游戏控制台或被配置为经由网络205通信的任何其他计算设备。
网络205可以包括计算机网络,诸如互联网、局域网、广域网、城域网或其他区域网、内部网、卫星网、其他计算机网络(诸如语音或数据移动电话通信网络以及它们的组合)。系统200的数据处理系统110可以经由网络205例如与内容提供商计算设备215、内容发布者计算设备215或客户端设备105通信。网络205可以是在客户端设备105、数据处理系统110和一个或多个内容源(诸如web服务器、广告服务器以及其他)之间转发(relay)信息的任何形式的计算机网络。网络205可以包括互联网和/或其他类型的数据网络,诸如局域网(local area network,LAN)、广域网(wide area network,WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络205还可以包括被配置为在网络205内接收和/或发送数据的任意数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络205还可以包括任意数量的硬连线和/或无线连接。在一些实施方案中,客户端设备105可以(例如,经由WiFi、蜂窝、无线电等)无线地与被硬连线(例如,通过光纤电缆、CAT5电缆等)到网络205中的其他计算设备(诸如,数据处理系统110、内容提供商设备210和内容发布者设备215)的收发器通信。
(多个)内容提供商计算设备210可以包括由内容提供商实体操作的服务器或其他计算设备以提供内容元素用于在客户端设备105处的主要内容元素上显示。由内容提供商计算设备210提供的内容可以包括用于在主要内容元素(例如,网页)上显示的嵌入内容元素,诸如包括主要内容(例如由内容发布者计算设备215提供的内容)的网站或网页。内容元素还可以在搜索结果网页上显示。在一些实施方案中,内容提供商计算设备215可以提供或作为用于在主要内容元素的内容隙(content slot)中显示的内容元素的源,诸如由公司提供网页的主要内容的公司网页或者用于在搜索引擎提供的搜索结果登录页面上显示的公司网页。与内容提供商计算设备215相关联的内容元素可以被显示在除网页之外的主要内容元素(诸如,作为智能手机或其他客户端设备105上执行应用的部分来显示的内容)上。在一些实施方案中,内容提供商计算设备210可以包括用于服务媒体内容元素(诸如,视频内容元素)的服务器。
(多个)内容发布者计算设备215可以包括由内容发布实体操作的服务器或其他计算设备以经由网络205提供主要内容元素用于显示。内容发布者计算设备215可以包括网页操作员,其提供主要内容用于在网页上显示。主要内容可以包括除了由内容发布者计算设备215提供的内容之外的内容,并且主要内容元素可以包括被配置用于显示来自内容提供者计算设备210的嵌入内容元素的内容隙。例如,内容发布者计算设备215可以操作公司的网站并且可以提供关于该公司的内容用于在网站的网页上显示。网页可以包括被配置为用于显示诸如内容提供商计算设备215的广告的嵌入内容元素的内容隙。在一些实施方案中,内容发布者计算设备215包括操作搜索引擎网站的搜索引擎操作员的搜索引擎计算设备(例如,服务器)。搜索引擎网页的主要内容元素(例如,结果或登陆网页)可以包括搜索的结果以及在内容隙中显示的嵌入内容元素,诸如来自内容提供商计算设备215的嵌入内容元素。在一些实施方案中,内容发布者计算设备215可以包括用于服务媒体内容元素(诸如,视频内容元素)的服务器。
(多个)内容提供商计算设备210和(多个)内容发布者计算设备215均可包括处理器和存储器。存储器存储机器指令,当该机器指令由处理器执行时使处理器执行本文描述的一个或多个操作。处理器可以包括微处理器、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)等或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他存储或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(read-only memory,ROM)、随机存取存储器(random-access memory,RAM)、电可擦除ROM(electrically-erasable ROM,EEPROM)、可擦除可编程ROM(erasable-programmable ROM,EPROM)、闪存、光学介质或处理器可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。
(多个)内容提供商计算设备210和(多个)内容发布者计算设备215还可以包括一个或多个用户接口设备。通常,用户接口设备可以包括通过生成感觉信息(例如,显示器上的可视化、一个或多个声音等)来向用户传达数据,和/或将从用户接收的感觉信息转换成电信号(例如,键盘、鼠标、指示设备、触摸屏显示器、麦克风等)的任何电子设备。根据各种实施方案,一个或多个用户接口设备可以在(多个)内容提供商计算设备210和(多个)内容发布者计算设备215的外壳的内部(例如,内置显示器、麦克风等)或在(多个)内容提供商计算设备210和(多个)内容发布者计算设备215(例如,连接的监测器或连接的扬声器等)的外壳的外部。(多个)内容提供商计算设备210和(多个)内容发布者计算设备215均可包括电子显示器,该电子设备使用从一个或多个内容源和/或从经由网络205连接的计算设备接收的网页数据可视地显示网页。
数据处理系统110可以包括至少一个处理器220、网络接口225和存储器230。处理器220、网络接口225和存储器230可以是以下结合图4详述的那些。存储器230存储处理器可执行的指令,当该指令由处理器220执行时使处理器执行本文描述的一个或多个操作。处理器220可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器230可以包括但不限于电子的、光学的、磁性的或能够向处理器提供程序指令的任何其他存储或传输设备。存储器230还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除可编程ROM(EPROM)、闪存、光学介质或处理器可以从中读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。可以由处理器220使用网络接口225来与连接到网络205的计算设备通信。数据处理系统110可以包括可以执行各种功能的一个或多个计算设备或服务器。
数据处理系统110可包括一个或多个服务器。在一些实施方案中,数据处理系统110可以包括位于至少一个数据中心或服务器群(server farm)中的多个服务器。数据处理系统110可以包括请求处理器264、响应重写器266、媒体编码器268、媒体地址数据库270和媒体内容元素数据库272。在一些实施方案中,请求处理器264、响应重写器266、媒体编码器268、媒体地址数据库270和媒体内容元素数据库272中的每一个可以是驻留在存储器230上用于被处理器220执行的指令或其他数据。在一些实施方案中,请求处理器264、响应重写器266和媒体编码器268中的每一个可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、装置或其他逻辑设备,诸如被配置为经由网络205与媒体地址数据库270和媒体内容元素数据库272以及其他计算设备(例如,内容提供商计算设备215、内容发布者计算设备215或客户端设备105)通信的可编程逻辑阵列。
在一些实施方案中,请求处理器264、响应重写器266和媒体编码器268可以包括或执行至少一个计算机程序或至少一个脚本。请求处理器264、响应重写器266和媒体编码器268可以是分开的组件、单一组件或数据处理系统110部分。请求处理器264、响应重写器266和媒体编码器268可以包括软件和硬件的组合,诸如被配置为执行一个或多个脚本的一个或多个处理器(例如,处理器220和存储器230)。
数据处理系统110还可以包括一个或多个内容存储库或数据库,诸如媒体地址数据库270和媒体内容元素数据库272。数据库可以是数据处理系统110的本地数据库。在一些实施方案中,数据库可以远离数据处理系统110,但是可以经由网络205与数据处理系统110通信。媒体地址数据库270可以包括引用嵌入媒体内容元素的重定向地址256'。重定向地址256’可以被用于将客户端代理252从一个地址重定向或转发到由媒体地址数据库270指示的地址以检索嵌入媒体内容元素。嵌入媒体内容元素的重定向地址256'可以具有与数据处理系统110对应的主机名。媒体内容元素数据库272可以包括由地址识别的嵌入媒体内容元素。在一些实施方案中,嵌入媒体内容元素可以是防止在客户端设备105处自动播放的格式。以下描述媒体地址数据库270和媒体内容元素数据库272的内容的附加细节。
客户端设备105可以包括处理器235、输入/输出(I/O)接口245、网络接口240和存储器250。处理器235、I/O接口245、网络接口240和存储器250可以分别是以下结合图4详细描述的那些(例如,计算机系统400的处理器420、通信接口405、输入设备415和输入设备410以及存储器425)。存储器230可以包括将由处理器235执行的指令和其他数据。存储器230可以包括客户端代理252,诸如web浏览器、移动应用或用于在客户端设备105处解析和呈现经由网络205接收的内容元素的任何其他计算程序。客户端代理252可以包括主要内容元素254。主要内容元素254可以包括一个或多个脚本,诸如嵌入媒体内容元素256”的地址256(例如,地址或域)、请求写入器258、响应解析器260和媒体解码器262。主要内容254最初可以缺少嵌入媒体内容元素256”(由图2中的虚线指示)。在一些实施方案中,主内容元素254在加载之前可以包括用于具有地址256的嵌入媒体内容元素256”的内容元素容器(例如,内联框架)。在一些实施方案中,请求编写器258、响应解析器260和媒体解码器262可以是与主要内容元素254分离的客户端代理252的部分。在一些实施方案中,请求写入器258、响应解析器260和媒体解码器262可以是用于嵌入媒体内容元素256”的容器的部分。在一些实施方案中,可以在与请求写入器258和响应解析器260的供应不同的时间提供媒体解码器262。客户端设备105可以包括被配置为经由网络205通信以显示数据(诸如,由内容发布者计算设备215提供的内容(例如,主要内容元素254)和由内容提供商计算设备215提供的内容(例如,诸如将被嵌入主要内容元素254内的嵌入媒体内容元素256”的内容元素))的计算设备。
在客户端设备上执行的客户端代理252可以从内容发布者设备215或另一服务器接收主要内容元素254。主要内容元素254可以被诸如遵循统一资源定位符(UniformResource Locator,URL)语法的地址引用。该地址可以包括域名和路径。域名可以与内容发布者设备215相关联或特定于内容发布者设备215。该路径可以是指由内容发布者设备215托管的特定的主要内容元素254。
此外,客户端代理252可以解析主要内容元素254以识别附加内容元素。在一些实施方案中,客户端代理252可以识别要被嵌入主要内容元素254中的内容元素。客户端代理252可以识别对该嵌入内容元素的引用,诸如对主要内容元素254中的嵌入媒体内容元素256”(例如,HTML视频或音频内容元素)的引用256。嵌入媒体内容元素256”的地址256可以包括域名和路径名。域名可以引用与内容发布者设备215不同的服务器,诸如数据处理系统110。客户端代理252可以确定主要内容元素254的域名是否不同于地址256的域名。如果主要内容元素254的域名与地址256的域名没有不同,则客户端代理252可以与内容发布者设备215通信传达请求和响应,而不触发CORS协议规定的任何限制。另一方面,如果主要内容元素254的域名与地址256的域名不同,则客户端代理252、数据处理系统110和内容发布者设备215之间的未来请求和响应可能会受CORS协议规定的限制。
除了主要内容元素254之外的内容可以被内容代理252限制。在一些实施方案中,客户端代理252可以被配置为默认地限制特定格式的嵌入媒体内容元素(例如,HTML视频内容元素、音频内容元素和跟踪内容元素等)的自动播放。客户端代理252可以被配置为基于客户端设备105的设备类型(例如,移动设备)来限制嵌入媒体内容元素的自动播放。在一些实施方案中,如果客户端代理252确定附加内容元素来自与主要内容元素254的域不同的域,则客户端代理252还可以被配置为在同源策略和CORS协议下限制这种附加内容元素或其功能。此外,客户端代理252可以被配置为阻止来自已经返回重定向响应的服务器(例如,具有302状态代码)的附加内容。由请求重写器258和媒体解码器262提供的功能可以解决这两个限制。
为了检索嵌入内容元素256”,在客户端设备105上执行的请求写入器258可以生成初始请求115。初始请求可以包括一个或多个标头和主体。初始请求115可以是使用OPTION方法或POST方法的HTTP请求以及其他方法。利用OPTION方法或POST方法,请求写入器258可以将初始请求115的原始标头设置为主要内容元素254的域名。请求写入器258可以将初始请求115的主机标头设置为嵌入媒体内容元素256”的地址256。
请求编写器258可以将预定义标识符作为重定向指示符包括或插入到初始请求115当中。预定义标识符可以向数据处理系统110指示客户端代理252被配置为限制跨域重定向。预定义标识符可以向数据处理系统110指示客户端代理252可能正期望要被重定向到的另一地址。在一些实施方案中,请求写入器258可以将预定义标识符附加到嵌入媒体内容元素256”的地址256。
为了向数据处理系统110发信号通知客户端代理252是否正期望将被重定向到的另一地址,请求编写器258可以将初始请求115的内容类型标头设置为文本的(例如,“文本/普通”或“文本/html”等)。在一些实施方案中,请求写入器258可以确定初始请求115是否是到数据处理系统110的、对嵌入媒体内容元素256”的第一请求。在一些实施方案中,请求写入器258可以在客户端设备105的存储器250上维护计数器以跟踪对具有相对应的地址的嵌入媒体内容元素256”的请求的数量。如果计数器大于1,则在一些实施方案中,请求写入器258可以确定该请求不是针对嵌入媒体内容元素256”要发送的第一请求。如果计数器为零,则请求写入器258可以确定该请求是针对嵌入内容元素256”要发送的第一请求。在一些实施方案中,请求写入器258可以将嵌入媒体内容元素256”的地址256与计数器维护的地址进行比较。如果地址匹配,则请求写入器258可以识别出来自在存储器250上维护的计数器的请求的数量。如果请求写入器258确定请求的数量为零或确定地址不匹配,则在一些实施方案中,请求写入器258可以将初始请求115的内容类型标头设置为文本的。在一些实施方案中,请求编写器258可以将请求的数量包括在预定义标识符当中。然后,请求写入器258可以将生成的请求115转发到客户端代理252以经由客户端设备105的网络接口240发送到数据处理系统110。
一旦在数据处理系统110侧接收到初始请求115,请求处理器264就可以确定客户端设备105可能正期望哪种类型的响应。在一些实施方案中,请求处理器264可以解析初始请求115。在一些实施方案中,请求处理器264可以从初始请求115的原始标头识别出主要内容元素254的地址。在一些实施方案中,请求处理器264可以从初始请求115的主机标头识别出嵌入媒体内容元素256”的地址256。在一些实施方案中,请求处理器264可以从初始请求115的原始标头提取主要内容元素254的域名。在一些实施方案中,请求处理器264可以从初始请求115的主机标头中提取嵌入媒体内容元素256”的域名。利用初始请求115的解析,请求处理器264可以将主要内容元素254的域名与嵌入媒体内容元素256”的域名进行比较。
如果请求处理器264确定主要内容元素254的域名与嵌入内容元素256”的地址256的域名没有不同,则两个域名之间缺少差异暗示了数据处理系统110可以是向客户端设备105提供主要内容元素254的同一设备。由此,在客户端设备105和数据处理系统110之间发送的请求和响应可以不受CORS协议所规定的限制。请求处理器264可以解析针对地址256的初始请求125。响应重写器266可以使用地址256从媒体内容数据库272中搜索嵌入媒体内容元素256”。在一些实施方案中,进而响应重写器266可以在对客户端代理252的后续响应中发送嵌入媒体内容元素256”。在一些实施方案中,进而客户端代理252可以呈现和播放嵌入媒体内容元素256”。
如果请求处理器264确定主要内容元素254的域名与嵌入内容元素256”的地址256的域名不同,则请求处理器264可以基于初始请求115来确定客户端代理252是否被配置为限制跨域重定向。在一些实施方案中,请求处理器264还可以解析初始请求115以识别出预定义标识符以确定客户端代理262是否被配置为限制跨域重定向。基于识别出预定义标识符,请求处理器264可以确定客户端代理252被配置为限制跨域重定向。在一些实施方案中,请求处理器264还可以确定客户端代理252可能正期望嵌入媒体内容元素256”的重定向地址256'。
在一些实施方案中,一旦请求处理器264确定主要内容元素254的域名与嵌入内容元素256”的地址256的域名不同,请求处理器264可以访问域名的白名单以搜索主要内容元素254的域名。在一些实施方案中,域名的白名单可以规定哪些域被允许显示为具有嵌入内容元素256”。域名的白名单可以被维持在存储器230上或者被维持在连接到数据处理系统110的数据库处。如果请求处理器264在域名的白名单上找到主要内容元素254的域名,则请求处理器264可以以本文详述的方式继续解析该请求(例如,初始请求115)。如果请求处理器264没有在域名的白名单上找到主要内容元素254的域名,则请求处理器264可以禁止要被提供给客户端设备105的嵌入媒体内容元素256”并且还可以终止对该请求的处理。以这种方式,可以维护在客户端设备105上执行的客户端代理252的安全性,同时允许客户端代理252访问来自与主要内容元素254的那些域不同的某些域的内容。
在一些实施方案中,请求处理器264可以解析初始请求115以识别客户端代理252的应用简档(例如,哪种类型的web浏览器)以确定客户端代理252是否被配置为限制跨域重定向。请求处理器264可以将客户端代理262的应用简档与被配置为限制跨域重定向的应用的列表进行比较。可以由请求处理器264从存储器230或连接到数据处理系统110的另一数据库访问该应用列表。如果客户端代理252的应用简档与应用列表中的一个应用匹配,则请求处理器264可以确定客户端代理252被配置为限制跨域重定向。请求处理器264还可以确定客户端代理252可能正期望嵌入媒体内容元素256”的重定向地址256'。如果客户端代理252的应用简档与应用列表上的任何应用都不匹配,则请求处理器264可以确定客户端代理252未被配置为限制跨域重定向。
在一些实施方案中,请求处理器264可以在确定客户端代理252是否被配置为限制跨域重定向时解析初始请求115以识别客户端设备105的设备类型(例如,客户端设备105是智能电话、膝上型计算机还是台式计算机等)。请求处理器264可以将客户端设备105的设备类型与被配置为限制跨域重定向的设备类型的列表进行比较。可以由请求处理器264从存储器230或连接到数据处理系统110的另一数据库访问设备类型的列表。如果客户端设备105的设备类型与设备类型的列表中的一个设备类型匹配,则请求处理器264可以确定客户端代理252被配置为限制跨域重定向。请求处理器264还可以确定客户端代理252可能正期望嵌入媒体内容元素256”的重定向地址256'。如果客户端设备105的设备类型与设备类型的列表上的任何设备类型都不匹配,则请求处理器264可以确定客户端代理252未被配置为限制跨域重定向。
如果请求处理器264确定客户端代理252未被配置为限制跨域重定向,则请求处理器264可以解析地址256的初始请求125。响应重写器266可以使用地址256从媒体内容数据库272中搜索嵌入媒体内容元素256”。进而响应重写器266又可以将包括在后续响应中的嵌入媒体内容元素256”发送到客户端代理252。进而客户端代理252可以呈现并播放嵌入媒体内容元素256”。
如果请求处理器264确定客户端代理252被配置为限制跨域重定向和/或客户端代理252可能正期望重定向地址256',则请求处理器264可以基于所接收的请求(例如,初始请求115或终端请求135)的内容类型标头来确定客户端代理252正期望哪种类型的响应。在一些实施方案中,请求处理器264可以解析初始请求115以识别内容类型标头。内容类型标头可以指示客户端代理252可能正期望的、响应的主体中的哪种类型的内容。如上所解释的那样,内容类型标头可以规定文本或非文本内容。如果请求处理器264识别出请求的内容类型标头规定文本(诸如具有初始请求115的情况),则请求处理器264可以确定客户端代理252可能正期望嵌入媒体内容元素256”的重定向地址256'。在一些实施方案中,请求处理器264可以确定初始请求115对应于哪种类型的方法(例如,OPTION或POST)以识别客户端代理252可能正期望哪种类型的响应。如果初始请求的方法是OPTION(例如,CORS下的预检请求),则请求处理器264可以确定客户端代理252可能正期望嵌入媒体内容元素的重定向地址256'。以下更详细地描述响应于将请求的内容类型标头识别为文本(诸如,具有终端请求135的情况)的请求处理器264的操作。
一旦请求处理器264将请求的内容类型标头识别为规定为文本内容(例如,初始标头115),请求处理器264就可以转发、发信号通知或以其他方式使响应重写器266生成初始响应125以抵消跨域重定向的限制。在CORS规范下,如果数据处理110试图发布具有包括具有与主内容元素254的域不同的域的嵌入内容的地址的重定向状态代码的响应,则可以设置响应的原始标头为空值,从而限制重定向响应中的所有域。重定向状态代码可以包括301multiple choices(多选项)、301moved permanently(永久移动)、302found(发现)、303see other(查看其它)、304not modified(未修改)、305use proxy(使用代理)、307temporary redirect(临时重定向)或308permanent redirect(永久重定向)。为了绕过CORS规范对具有重定向状态代码的响应的限制,响应重写器266可以生成缺少这种重定向状态代码的响应。
在一些实施方案中,响应重写器266可以生成初始响应125。响应重写器266可以设置初始响应125的标头和主体。初始响应125的标头可以被设置为包括指示成功的状态代码(例如,200OK)。在一些实施方案中,初始响应125的标头可以被设置为包括指示文本的内容类型标头(例如,“文本/普通”和“文本/html”等)。为了设置初始响应125的主体,响应重写器266可以访问媒体地址数据库270以搜索与嵌入内容元素256”的地址256相对应的重定向地址256'。可以由客户端代理252使用重定向地址256'来向数据处理系统110发布并发送对嵌入内容元素256”的另一请求。一旦识别出重定向地址256',响应重写器266就可以将重定向地址256'设置、插入或写入到初始响应125的主体当中。响应重写器266可以经由网络接口225将初始响应125发送到客户端设备105。接收到初始响应125可以使客户端代理252从初始响应125中提取重定向地址256'并且发送具有重定向地址256'另一请求。
在一些实施方案中,响应重写器266可以识别来自客户端代理252的请求中的请求的数量,因为所接收的请求可以是针对嵌入媒体内容元素256”的请求和响应的链的部分。在一些实施方案中,响应重写器266可以在存储器230上或在连接到响应重写器266的数据库上维护计数器,以跟踪针对客户端代理252的嵌入媒体内容元素256”的重定向的数量。响应于接收到请求,响应重写器266可以针对重定向的数量更新或递增计数器。在一些实施方案中,响应重写器266可以包括响应中的重定向的数量。在一些实施方案中,重定向的数量可以被附加到重定向地址256'(例如,在重定向地址256'的URL的末尾)。在一些实施方案中,响应重写器266可以将重定向的数量与重定向的最大数量进行比较。如果响应重写器266确定重定向的数量大于或等于重定向的最大数量,则响应重写器266可以(例如,使用5xx错误代码)设置响应以指示检索内容失败。如果响应重写器266确定重定向的数量小于重定向的最大数量,则响应重写器266访问媒体访问数据库270以搜索重定向地址256'并将重定向地址256'插入到响应的主体当中。在一些实施方案中,响应重写器266还可以经由网络接口225将具有重定向的数量的响应发送到客户端设备105。
响应于在客户端设备105处从数据处理系统110接收到具有重定向地址256'的响应(例如,初始响应125),响应解析器260可以解析该响应。由于该响应可能包括指示成功的状态代码(例如,200OK)而不是重定向(例如,302found),所以客户端代理252可以不受CORS协议规定的限制并且可以访问与定向链中的主要内容元素252的域不同的域的内容。响应解析器260可以解析初始响应125(或另一响应)以提取初始响应125的主体。响应解析器260可以确定初始响应125的主体是否包括重定向地址256'或其他类型的内容,诸如本文稍后将讨论的嵌入媒体内容元素256”。响应解析器260可以解析初始响应125以提取或以其他方式识别重定向地址256'。在一些实施方案中,响应解析器260可以解析初始响应125以识别指示成功的状态代码。响应于识别指示成功的状态代码,响应解析器260可以从初始响应125提取重定向地址256'。在一些实施方案中,响应解析器260可以解析初始响应125以识别内容类型标头。如果初始响应125的内容类型标头指示文本,则响应解析器260可以从初始响应125提取重定向地址256'。在一些实施方案中,响应解析器260可以将重定向地址256'转发到请求写入器258。
利用从初始响应125解析的重定向地址256',请求写入器258可以生成请求(例如,终端请求135)。终端请求135可以包括一个或多个标头和主体。终端请求135可以是使用POST或GET方法以及其他方法的HTTP请求。利用POST或GET方法,请求写入器258可以将终端请求135的原始标头设置为主要内容元素254的域名。请求写入器258可以将终端请求135的主机标头设置为从数据处理系统110接收的嵌入媒体内容元素256”的重定向地址256'。
为了向数据处理系统110发信号通知客户端代理252是否正期望嵌入媒体内容元素256”,请求写入器258可以将终端请求135的内容类型标头设置为非文本(例如,应用、视频、JSON等)。请求编写器258可以将预定义标识符作为重定向指示符包括或其插入到终端请求135当中。预定义标识符可以向数据处理系统110指示客户端代理252被配置为限制跨域重定向。在一些实施方案中,请求写入器258可以将预定义的标识符附加到嵌入媒体内容元素256”的重定向地址256'。在一些实施例中,请求写入器258可以更新或递增计数器用于跟踪对嵌入内容元素256”的请求的数量。请求重写器268可以将请求的数量包括在终端请求135当中。在一些实施方案中,请求写入器268可以将请求的数量附加到主机标头中的重定向地址256’上。然后,请求写入器258可以将生成的请求125转发到客户端代理252以经由客户端设备105的网络接口240发送到数据处理系统110。
一旦在数据处理系统110侧接收到终端请求135(或在初始请求115之后的请求),请求处理器264就可以再次确定客户端设备105可能正期望哪种类型的响应。请求处理器264可以解析终端请求135。请求处理器264可以从终端请求135的原始标头识别主要内容元素254的地址。请求处理器264可以从终端请求135的主机标头识别嵌入媒体内容元素256”的重定向地址256'。在一些实施方案中,请求处理器264可以从终端请求135的原始标头提取主要内容元素254的域名。在一些实施方案中,请求处理器264可以从终端请求135的主机标头提取嵌入媒体内容元素256”的域名。利用终端请求135的解析,请求处理器264可以将主要内容元素254的域名与嵌入媒体内容元素256”的域名进行比较。
如果请求处理器264确定主要内容元素254的域名与嵌入内容元素256”的地址256的域名没有不同,则两个域名之间缺少差异暗示了数据处理系统110可以是向客户端设备105提供主要内容元素254的同一设备。由此,在客户端设备105和数据处理系统110之间发送的请求和响应可以不受CORS协议所规定的限制。请求处理器264可以解析针对地址256的初始请求125。响应重写器266可以使用地址256从媒体内容数据库272中搜索嵌入媒体内容元素256”。进而响应重写器266可以在对客户端代理252的后续响应中发送嵌入媒体内容元素256”。进而客户端代理252可以呈现并播放嵌入媒体内容元素256”。
使用终端请求135,请求处理器264可以确定客户端代理252是否被配置为限制跨域重定向。在一些实施方案中,请求处理器264可以还解析终端请求135以识别预定义标识符以确定客户端代理262是否被配置为限制跨域重定向。基于识别预定义标识符,请求处理器264可以确定客户端代理252被配置为限制跨域重定向。请求处理器264可以还确定客户端代理252可能正预期来自包括在终端请求135中的其他数据的嵌入媒体内容元素256”。
在一些实施方案中,请求处理器264可以解析终端请求135以识别客户端代理252的应用简档(例如,哪种类型的web浏览器)以确定客户端代理252是否被配置为限制跨域重定向。请求处理器264可以将客户端代理262的应用简档与被配置为限制跨域重定向的应用的列表进行比较。在一些实施方案中,该应用列表可以由请求处理器264从存储器230或连接到数据处理系统110的另一数据库访问。如果客户端代理252的应用简档与应用列表中的一个应用匹配,则请求处理器264可以确定代理252被配置为限制跨域重定向。在一些实施方案中,请求处理器264还可以确定客户端代理252可能正期望嵌入媒体内容元素256”。如果客户端代理252的应用简档与应用的列表上的任何应用都不匹配,则请求处理器264可以确定客户端代理252未被配置为限制跨域重定向。
在一些实施方案中,请求处理器264可以在确定客户端代理252是否被配置为限制跨域重定向时解析终端请求135以识别客户端设备105的设备类型(例如,客户端设备105是智能电话、膝上型计算机还是台式计算机等)。在一些实施方案中,请求处理器264可以将客户端设备105的设备类型与被配置为限制跨域重定向的设备类型的列表进行比较。在一些实施方案中,该设备类型列表可以由请求处理器264从存储器230或连接到数据处理系统110的另一数据库访问。如果客户端设备105的设备类型与设备类型列表中的一个设备类型匹配,则请求处理器264可以确定客户端代理252被配置为限制跨域重定向。在一些实施方案中,请求处理器264还可以确定客户端代理252可能正期望嵌入媒体内容元素256”。如果客户端设备105的设备类型与设备类型列表上的任何设备类型都不匹配,则请求处理器264可以确定客户端代理252未被配置为限制跨域重定向。
如果请求处理器264确定客户端代理252被配置为限制跨域重定向,则请求处理器264可以基于所接收的请求的内容类型标头来确定客户端代理252可能正期望哪种类型的响应。在一些实施方案中,请求处理器264可以解析终端请求135以识别内容类型标头。在一些实施方案中,内容类型标头可以指示客户端代理252可能正期望响应的主体中的哪种类型的内容。如上所解释的那样,内容类型标头可以规定文本或非文本内容。如果请求处理器264识别出请求的内容类型标头规定非文本(诸如,具有终端请求135的情况),则请求处理器264可以确定客户端代理252可能正期望嵌入媒体内容元素256”。在一些实施方案中,请求处理器264可以确定初始请求115对应于哪种类型的方法(例如,OPTION、POST或GET)以识别客户端代理252可能正期望哪种类型的响应。如果初始请求的方法是GET或POST,则请求处理器264可以确定客户端代理252可能正期望嵌入媒体内容元素。以下更详细地描述了响应于将请求的内容类型标头识别为非文本(例如,具有初始请求115的情况)的请求处理器264的操作。
一旦请求处理器264将请求的内容类型标头识别为规定非文本内容,请求处理器264就可以转发、发信号通知或以其他方式使响应重写器266生成终端响应145以向客户端代理252提供对应于重定向地址256’的嵌入媒体内容元素256”。响应重写器266可以设置终端响应145的标头和主体。终端响应145的标头可以被设置为包括状态代码成功(例如,200OK)。终端响应145的标头可以被设置为包括指示非文本的内容类型标头。为了设置初始响应125的主体,响应重写器266可以访问媒体内容数据库272以使用重定向地址256'搜索嵌入媒体内容元素256”。可以由客户端代理252使用嵌入媒体内容元素256”来呈现连接到客户端设备105的显示器上的显示。一旦识别到嵌入媒体内容元素256”,响应重写器266就可以将嵌入媒体内容元素256”设置、插入或写入终端响应145的主体当中。响应重写器266可以经由网络接口225将终端响应145发送到客户端设备105。
在一些实施方案中,响应重写器266可以将(例如,用于媒体解码器262的)可执行的代码包括或插入到终端响应145的主体当中用于实例化媒体播放器(例如,使用FLASH或JAVASCRIPT),以呈现并播放嵌入媒体内容元素256”。一旦在客户端设备105处执行,终端响应145中的可执行的代码可以将嵌入媒体内容元素256”从第一格式(例如,HTML视频内容元素)转换为第二格式(例如,JAVASCRIPT或HTML画布内容元素)。在一些实施方案中,客户端设备105或客户端代理252可以被配置为在没有授权(例如,与嵌入媒体内容元素256”的交互)的情况下限制或禁止第一格式的嵌入媒体内容元素256”的自动播放。另一方面,客户端设备105或客户端代理252可以被配置为允许第二格式的嵌入的媒体内容元素256”的自动播放(例如,在没有用户与嵌入媒体内容元素256”的交互的情况下)。以这种方式,终端响应145可以避开由客户端代理252规定的关于媒体内容的某些格式化的限制,从而改善与客户端设备105处呈现的、被嵌入主要内容元素254中的内容元素的人机交互(human-computerinteraction,HCI)。响应重写器266可以通过网络接口225将具有可执行的代码的终端响应145发送到客户端设备105。
媒体编码器268可以在将嵌入媒体内容元素256”提供给客户端代理252之前对嵌入媒体内容元素256”进行编码。媒体编码器268可以将嵌入媒体内容元素256”从第一格式(例如,HTML视频内容元素)转换为第二格式(例如,JAVASCRIPT或HTML画布内容元素)。在一些实施方案中,客户端设备105或客户端代理252可以被配置为在没有授权(例如,与嵌入媒体内容元素256”的交互)的情况下限制或禁止第一格式的嵌入媒体内容元素256”的自动播放。另一方面,客户端设备105或客户端代理252可以被配置为允许第二格式的嵌入媒体内容元素256”的自动播放(例如,在没有用户与嵌入媒体内容元素256”的交互的情况下)。
使用各种图像处理算法,媒体编码器268可以逐帧遍历以第一格式编码的嵌入视频媒体内容元素256”(例如,HTML视频内容元素)以识别帧中的一个或多个图像对象。然后,对于在每个帧处的每个识别的图像对象,媒体编码器268可以识别与之对应的一个或多个绘图函数,来以第二格式构造嵌入媒体内容元素256”(例如,针对HTML画布内容元素中的图形,用于调用HTML绘图函数的JAVASCRIPT,诸如rect()、fill rect()、lineTO()和translate()函数等)。通过布置绘图函数,媒体编码器268可以生成以第二格式编码的嵌入视频媒体内容元素256”。媒体编码器268可以将来自以第一格式编码的嵌入视频内容元素256”的音频转码为第二格式。在一些实施方案中,媒体编码器268可以包括要与嵌入视频媒体内容元素256”一起提供的、单独的音频内容元素。
一旦被转换,媒体编码器268就可以将以第二格式编码的嵌入媒体内容元素256”转发到响应重写器266。在一些实施方案中,响应重写器266可以进而将以第二格式编码的嵌入媒体内容元素256”插入或包括到终端响应145当中。在一些实施方案中,响应重写器266可以经由网络接口225将具有以第二格式编码的嵌入媒体内容元素256”的终端响应145发送到客户端设备105。
在确定是否进一步对嵌入内容元素256”时,响应重写器266可以确定客户端设备105(例如,移动智能手机)或客户端代理252(例如,智能手机的web浏览器)是否被配置为限制以第一格式编码的嵌入媒体内容元素256”(例如,HTML视频内容元素)的自动播放。响应重写器266可以基于请求(例如,终端请求135)确定客户端设备105或客户端代理252是否被配置为当嵌入媒体内容元素256”以第一格式编码时限制其自动播放。结合的媒体编码器268可以将嵌入的媒体内容元素256”编码为客户端设备105或客户端代理252被配置为允许自动播放的另一格式。
在一些实施方案中,响应重写器266可以解析终端请求135以识别客户端设备105的设备类型标识符。响应重写器266可以将客户端设备105的设备类型与被配置为限制第一格式的嵌入媒体内容元素256”的自动播放的设备类型的列表进行比较。如果客户端设备105的设备类型与设备类型列表中的一个设备类型匹配,则响应重写器266可以确定客户端设备105被配置为限制第一格式的嵌入媒体内容元素256”的自动播放。在一些实施方案中,媒体编码器268可以将嵌入媒体内容元素256”从第一格式编码为或转换为第二格式。在一些实施方案中,响应重写器266可以经由网络接口225将具有以第二格式编码的嵌入媒体内容元素256”的终端响应145发送到客户端设备105。如果客户端设备105的设备类型与设备类型列表中的任何设备类型都不匹配,则响应重写器266可以确定客户端设备105被配置为允许第一格式的嵌入媒体内容元素256”的自动播放。
在一些实施方案中,响应重写器266可以解析终端请求135以识别客户端代理252的应用简档。响应重写器266可以将客户端代理252的应用简档与被配置为限制第一格式的嵌入媒体内容元素256”的自动播放的应用的列表进行比较。如果客户端代理252的应用简档与应用列表中的一个应用匹配,则响应重写器266可以确定客户端代理252被配置为限制第一格式的嵌入媒体内容元素256”的自动播放。媒体编码器268可以将嵌入媒体内容元素256”从第一格式编码、转码或以其他方式转换为第二格式。响应重写器266可以经由网络接口225将具有以第二格式编码的嵌入媒体内容元素256”的终端响应145发送到客户端设备105。如果客户端代理252的应用简档不匹配应用列表中的任何应用,则响应重写器266可以确定客户端代理252被配置为允许第一格式的嵌入媒体内容元素256”的自动播放。
响应于由客户端代理252接收到终端响应145,响应解析器260可以解析终端响应145以从主体提取嵌入媒体内容元素256”。如以上所讨论,响应解析器260可以确定终端响应145的主体是否包括嵌入媒体内容元素256”或重定向地址256’。在一些实施方案中,响应解析器260可以解析终端响应145以识别指示成功的状态代码。响应于识别指示成功的状态代码,响应解析器260可以从终端响应145提取嵌入媒体内容元素256”。在一些实施方案中,响应解析器260可以解析终端响应145以识别内容类型标头。如果终端响应145的内容类型标头指示非文本,则响应解析器260可以确定主体包括嵌入媒体内容元素256”并提取嵌入媒体内容元素256”。响应解析器260可以将嵌入媒体内容元素256”转发到媒体解码器262。
在一些实施方案中,响应解析器260可以解析终端响应145以进一步识别主体中的可执行的代码用于实例化媒体播放器,以呈现并播放嵌入媒体内容元素256”。媒体播放器可以具有与媒体解码器262类似或相同的功能,并且可以包括用于客户端代理252将嵌入媒体内容元素256”从第一格式转换为第二格式的指令。第一格式可能被客户端代理252限制自动回放,而第二格式可以被客户端代理252允许自动地播放。一旦被识别,响应解析器260就可以从终端响应145的主体中提取可执行的代码。进而响应解析器260可以使客户端代理252执行媒体播放器以播放并呈现嵌入媒体内容元素256”。
利用从终端响应145提取的嵌入媒体内容元素256”,媒体解码器262可以在客户端设备105上播放并呈现嵌入媒体内容元素256”。在一些实施方案中,媒体解码器262可以是被配置为播放客户端代理252的视频内容(例如,HTML视频内容元素)的媒体播放器。在一些实施方案中,媒体解码器262可以是可由被提供具有主要内容元素254的客户端设备250的处理器235执行的脚本。在一些实施方案中,媒体解码器262可以是可由数据处理系统110提供的嵌入媒体内容元素256”的客户端设备250的处理器235执行的脚本。
在一些实施方案中,响应解析器260可以解析终端响应145以进一步确定嵌入媒体内容元素256”是以第一格式编码的还是以第二格式编码的。第一格式可能被客户端代理252限制自动回放,而第二格式可以被客户端代理252允许自动地播放。如果响应解析器260确定嵌入媒体内容元素256”是以第二格式编码的,则媒体解码器262或客户端代理252可以在没有任何限制的情况下播放和呈现嵌入媒体内容元素256”。
如果响应解析器260确定嵌入媒体内容元素256”是以第一格式编码的,则响应解析器260可以向媒体解码器262或客户端代理252发信号通知或转发,以将嵌入媒体内容元素256转换为第二格式。使用各种图像处理算法,媒体解码器262可以逐帧遍历以第一格式编码的嵌入视频媒体内容元素256”(例如,HTML视频内容元素)以识别帧上的一个或多个图像对象。然后,对于在每个帧处的每个识别的图像对象,媒体编码器268可以识别与之对应的一个或多个绘图函数来以第二格式构造嵌入媒体内容元素256”(例如,针对HTML画布内容元素中的图形,用于调用HTML绘图函数的JAVASCRIPT,诸如rect()、fill rect()、lineTO()和translate()函数等)。通过布置绘图函数,解码器262可以生成以第二格式编码的嵌入视频媒体内容元素256”,以允许客户端代理252自动播放。
现在参考图3A-图3C,示出了描绘递送跨站点自动播放媒体的方法300的流程图。本文关于方法300所描述的功能可以由系统200执行或运行,诸如图2上所示的数据处理系统110、客户端设备105、内容提供者设备210和内容发布者设备215、或者图4中所示的系统400等、或者它们的任意组合。
从图3A开始,客户端设备可以识别主要内容元素中的嵌入媒体内容元素(步骤302)。主要内容元素可能已被客户端设备接收,并且最初可以缺少嵌入媒体内容元素。主要内容元素可以包括嵌入媒体内容元素的地址。在一些实施方案中,主要内容元素可以包括用于嵌入媒体内容元素的内联框架(例如,内容隙)。
在一些实施方案中,客户端设备可以识别嵌入媒体内容元素的地址(步骤304)。嵌入媒体内容元素的地址可以包括域名和路径名。嵌入媒体内容元素的域名可以引用与提供主要内容元素的内容发布者设备不同的服务器。
客户端设备可以识别主要内容元素的地址(步骤306)。主要内容元素可以被诸如遵循统一资源定位符(URL)语法的地址引用。地址可以包括域名和路径。域名可以与内容发布者设备相关联或特定于内容发布者设备。该路径可以是指由内容发布者设备托管的特殊的主要内容元素。
客户端设备可以确定嵌入媒体内容元素的域名是否与主要内容元素的域名不同(步骤308)。如果嵌入媒体内容元素的域名与主要内容元素的域名没有不同,则客户端设备可以在以下讨论的步骤374处执行功能。在这种情形下,域名之间缺乏差异可以指示主要内容元素和嵌入媒体内容元素将由同一服务器提供。由此,客户端设备和服务器之间的通信可以不受CORS协议规定的限制。
另一方面,如果嵌入媒体内容元素的域名与主要内容元素的域名不同,则客户端设备可以生成具有两个域名的请求(步骤310)。该请求可以是使用OPTION、POST、GET或HEAD方法的HTTP请求。可以将请求的原始标头设置为主要内容元素的地址。可以将请求的主机标头设置为嵌入内容元素的地址。此外,客户端设备可以将重定向指示符附加到生成的请求(步骤312)。重定向指示符可以向服务器发信号通知客户端设备被配置为限制跨域内容,并且还可以向服务器指示客户端设备可能正期望将要被重定向到的另一地址。在一些实施方案中,客户端设备可以将指向嵌入内容元素的地址的重定向指示符插入到请求的主机标头中。
客户端设备可以确定要被发送的请求是否是初始请求(步骤314)。在一些实施方案中,客户端设备可以在存储器上维护计数器以跟踪对嵌入媒体内容元素的请求的数量。如果计数器大于1,则客户端设备可以确定要发送的请求不是第一请求。由于该请求不是第一个要被发送的,所以客户端设备可以将该请求的内容类型标头设置为非文本(步骤316)。将内容类型标头设置为非文本可以向服务器指示客户端设备正期望嵌入媒体内容元素。如果计数器为零,则客户端设备可以确定要被发送的请求是第一请求。当请求是第一个要被发送时,客户端设备可以将请求的内容类型标头设置为文本(步骤318)。将内容类型标头设置为文本的可以向服务器指示客户端设备正期望嵌入媒体内容元素的重定向地址。客户端设备可以将对嵌入媒体内容元素的请求发送到服务器(步骤320)。
服务器可以接收针对嵌入媒体内容元素的请求(步骤322)。服务器可以识别包括在请求中的主要内容元素的域名和嵌入媒体内容元素的域名(步骤324)。服务器可以从请求的原始标头识别主要内容元素的地址。服务器可以从主要内容元素的地址中提取域名。服务器可以从请求的主机标头中识别嵌入媒体内容元素的地址。服务器可以从嵌入媒体内容元素的地址中提取域名。
服务器可以确定主要内容元素的域名是否不同于嵌入媒体内容元素的域名(步骤326)。如果两个域名彼此没有不同,则服务器可以继续执行以下描述的步骤380的功能。另一方面,如果两个域名彼此不同,则服务器可以识别包括在请求中的重定向指示符(步骤328)。服务器可以确定客户端设备是否被配置为限制跨域内容(步骤330)。在一些实施方案中,使用该请求,服务器可以确定客户端设备是否正期望被插入到响应的主体当中的重定向地址或嵌入媒体内容元素。如果客户端设备未被配置为限制跨域内容,则服务器可以继续执行以下描述的步骤380的功能。
现在参考图3B,如果客户端设备被配置为限制跨域内容,则服务器可以生成响应(步骤332)。服务器可以将响应的状态代码设置为成功(步骤334)。在CORS规范下,如果服务器尝试发布具有重定向状态代码的响应,该响应包括嵌入内容的地址,该嵌入内容的域与主要内容元素的域不同,则该响应的原始标头可以被设置为空值,从而限制重定向响应中的所有域。通过将响应的状态代码设置为成功,服务器可以绕过由CORS规范对具有重定向状态代码的响应所施加的限制。服务器可以从请求中识别内容类型标头(步骤336)。内容类型标头可以指示将哪种类型的数据包括在要被传送到客户端设备的响应当中。
如果请求的内容类型标头指示文本,则服务器可以将响应的内容类型标头设置为文本(步骤340)。将响应的内容类型标头设置为文本可以向客户端设备指示响应的主体包括嵌入媒体内容元素的重定向地址。在一些实施方案中,服务器可以针对嵌入媒体内容元素的重定向地址而访问媒体数据库(步骤342)。在一些实施方案中,服务器可以将重定向地址插入到响应的主体当中(步骤344)。在一些实施方案中,服务器可以递增重定向计数器(步骤346)。服务器可以在存储器上维护计数器以跟踪针对客户端设备的嵌入媒体内容元素的重定向的数量。服务器可以将重定向的数量插入响应。然后,服务器可以将响应发送到客户端设备(步骤358)。
如果请求的内容类型标头指示非文本的,则服务器可以将响应的内容类型标头设置为非文本(步骤348)。服务器可以针对嵌入媒体内容元素而访问媒体数据库(步骤350)。服务器可以确定客户端设备是否被配置为限制媒体内容(步骤352)的自动播放。客户端设备可以被配置为,如果以一种格式(例如,HTML视频内容元素)编码则限制嵌入媒体内容元素的自动播放,而如果以另一格式(例如,HTML画布内容元素)编码则允许其自动播放。如果客户端设备被配置为限制自动播放,则服务器可以对嵌入媒体内容元素进行编码(步骤354)。服务器可以(例如,使用各种图像处理算法)将对嵌入媒体内容元素的编码从一种格式转换为另一格式。服务器可以将嵌入媒体内容元素插入到响应的主体当中(步骤356)。然后,服务器可以将响应发送到客户端设备(步骤358)。
客户端设备可以从服务器接收响应(步骤360)。客户端设备可以提取响应的主体(步骤362)。客户端设备可以确定响应的主体是否包括重定向地址或嵌入媒体内容元素(步骤364)。在一些实施方案中,客户端设备可以基于响应的内容类型标头来确定包括在响应的主体中的数据的类型。
如果主体包括嵌入媒体内容元素的重定向地址,则客户端设备可以识别重定向地址(步骤366)。在一些实施方案中,如果内容类型标头指示文本,则客户端设备可以确定主体包括嵌入媒体内容元素的重定向地址。然后,客户端设备可以将由服务器提供的重定向地址用作下一个请求的主机标头来重新执行本文描述的步骤310的功能。
如果主体包括嵌入媒体内容元素,则客户端设备可以解码嵌入媒体内容元素(步骤368)。在一些实施方案中,如果内容类型标头指示非文本,则客户端设备可以确定主体包括嵌入的媒体内容元素。客户端设备可以将嵌入媒体内容元素插入到主要内容元素上(步骤370)。在一些实施方案中,客户端设备可以将嵌入媒体内容元素从一种格式解码为另一种格式。前一格式可以被客户端设备限制自动播放,而后一格式可以被客户端设备允许自动播放。然后,客户端设备可以在主要内容元素上自动播放并呈现嵌入媒体内容元素(步骤372)。
现在参考图3C,如果主要内容元素的域名与嵌入媒体内容元素的域名没有不同,则客户端设备可以生成具有单一地址的请求(步骤374)。主要内容元素的域名与嵌入媒体内容元素的域名之间缺乏差异暗示服务器可能是向客户端设备提供主要内容元素的同一设备。从步骤374开始,客户端设备和服务器之间的通信可以不受由CORS协议规定的限制。客户端设备可以将请求的原始标头设置为主要内容元素的地址。客户端设备可以将请求的主机标头设置为嵌入媒体内容元素的地址。
然后,客户端设备可以将请求发送到服务器(步骤376)。服务器可以从客户端设备接收请求(步骤378)。服务器可以从对嵌入媒体内容元素的请求中识别地址(步骤380)。服务器可以解析请求以识别请求的主机标头中的地址。服务器可以访问在该地址处的媒体内容的媒体数据库(步骤382)。服务器可以将嵌入媒体内容元素插入到响应当中(步骤384)。服务器可以将响应发送到客户端设备(步骤386)。客户端设备可以从服务器接收响应(步骤388)。客户端设备可以将嵌入媒体内容元素插入到主要内容元素当中(步骤390)。客户端设备可以将嵌入媒体内容元素播放并呈现到主要内容元素当中(步骤392)。
图4示出了根据一些实施方案的可以用来实现本文所讨论的任何计算机系统(包括数据处理系统110及其组件(诸如请求处理器264、响应重写器266、媒体编码器268)和客户端设备105及其组件(诸如客户端代理252、主要内容元素254、请求写入器258、响应解析器260和媒体解码器262))的说明性计算机系统400的一般架构。计算机系统400可以被用于通过网络205提供信息用于显示。图4的计算机系统400包括被通信地耦合到存储器425的一个或多个处理器420、一个或多个通信接口405、以及一个或多个输出设备410(例如,一个或多个显示单元)和一个或多个输入设备415。处理器420可以被包括在数据处理系统110(诸如请求处理器264、响应重写器266、媒体编码器268)和客户端设备105及其组件(诸如客户端代理252、主要内容元素254、请求写入器258、响应解析器260和媒体解码器262以及其他)中。
在图4的计算机系统400中,存储器425可以包括任何计算机可读存储介质,并且可以存储计算机指令(诸如用于实施本文针对各个系统描述的各种功能的处理器可执行指令)以及由此生成的或通过(多个)通信接口或(多个)输入设备接收的任何与其相关的数据。再次参考图1的系统110,数据处理系统110可以包括存储器425以存储与一个或多个内容单元的库存的可用性、一个或多个内容单元的保留等相关的信息。存储器425可以包括数据库140。图4中所示的(多个)处理器420可以用于执行存储在存储器425中的指令,并且在这样做时,还可以从存储器读取根据指令的执行来处理和/或生成的各种信息或向存储器写入该信息。
图4中所示的计算机系统400的处理器420还可以被通信地耦合到或控制(多个)通信接口405以根据指令的执行来发送或接收各种信息。在一些实施方案中,(多个)通信接口405可以被耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统400向其他设备(例如,其他计算机系统)发送信息或从其他设备接收信息。虽然未在图2的系统中明确地示出,但是一个或多个通信接口促进系统400的组件之间的信息流动。在一些实施方案中,(多个)通信接口可以被配置为(例如,经由各种硬件组件或软件组件)提供网站作为对计算机系统400的至少一些方面的访问入口。通信接口405可以包括用户接口(例如,网页),用户可以通过该通信接口与数据处理系统110通信。
可以提供图4中所示的计算机系统400的输出设备410以允许结合指令的执行来查看或以其他方式感知各种信息。在一些实施方案中,可以提供(多个)输入设备415以允许用户在指令的执行期间手动调整、做出选择、输入数据或以各种方式中的任何一种与处理器进行交互。本文还提供了与可以用于本文讨论的各种系统的通用计算机系统架构有关的附加信息。
本说明书中描述的主题和操作的实施方案可以在数字电子电路中实施、或者在有形介质、固件或硬件上实现的计算机软件中实施,该有形介质、固件或硬件包括本说明书中公开的结构和它们的结构等同物或者在它们中的一个或多个的组合。本说明书中描述的主题的实施方案可以被实施为一个或多个计算机程序,即被编码在计算机存储介质上、用于由数据处理装置执行或控制数据处理装置的操作的计算机程序指令的一个或多个模块。程序指令可以被编码在人工生成的传播信号上,例如机器生成的电信号、光信号或电磁信号,该信号被生成用于对信息编码,以将该信息传输到合适的接收器设备用于由数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储衬底、随机或串行访问存储器阵列或设备、或它们中的一个或多个的组合,或可以被包括在其中。而且,即使计算机存储介质不是传播信号,计算机存储介质也可以包括被编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备),或被包括在其中。
本文公开的特征可以在包括被配置为将互联网连接与(例如,经由电缆、卫星、空中或其他信号接收的)更传统的电视节目源集成的处理模块的智能电视模块(或连接的电视模块、混合电视模块等)上实施。智能电视模块可以被物理地结合到电视机当中,或者可以包括单独的设备,诸如机顶盒、蓝光或其他数字媒体播放器、游戏控制台、酒店电视系统和其他伴随设备。智能电视模块可以被配置为允许观看者在网络上、在本地有线电视频道上、在卫星电视频道上搜索和查找视频、电影、照片和其他内容,或者被存储在本地硬盘驱动器上。机顶盒(set-top box,STB)或机顶盒单元(set-top unit,STU)可以包括可以包含调谐器并连接到电视机和外部信号源的信息电器设备,其将信号转换成然后在电视屏幕或其他显示设备上显示的内容。智能电视模块可以被配置为提供包括用于多个不同应用(诸如web浏览器和多个流媒体服务、连接的有线或卫星媒体源、其他web“频道”等)的图标的主屏幕或顶层屏幕。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作以向用户提供关于可用节目的附加信息,以允许用户控制智能电视模块等。在替代的实施方案中,这些特征可以在膝上型计算机或其他个人计算机、智能手机、其他移动电话、手持计算机、平板PC或其他计算设备上实施。
本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”包括用于处理数据的各种装置、设备和机器,其包括可编程处理器、计算机、片上系统、或者多个片上系统、或者前述的组合以及其他。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件的代码、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中一个或多个的组合。装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。请求处理器264、响应重写器266和媒体编码器268可以包括或共享一个或多个数据处理装置、计算设备或处理器。客户端代理252、主要内容元素254、请求写入器258、响应解析器260和媒体解码器262可以包括或共享一个或多个数据处理装置、计算设备或处理器。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以包括编译或解释语言、声明或过程语言的任何形式的编程语言编写,并且它可以以包括作为独立程序或作为模块、组件、子程序、对象或适合在计算环境中使用的其他单元的任何形式来部署。计算机程序可以但不必对应于文件系统中的文件。程序能够存储在保持其它程序或者数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的部分中、存储在专用于所讨论的程序的单一文件中、或者存储在多个协调的文件(例如,存储一个或多个模块、子程序、或者代码的部分的文件)中。可以部署计算机程序以在一个计算机上或在位于一个站点处或跨多个站点分布并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器可以包括通用和专用微处理器以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或者随机存取存储器或者两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或可操作地被耦合到该一个或多个大容量存储设备以从其接收数据或将数据传输到其或两者均可。然而,计算机不需要这样的设备。此外,计算机可以被嵌入在另一设备中,例如移动电话、个人数字助理(personal digitalassistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GlobalPositioning System,GPS)接收器或便携式存储设备(例如,通用串行总线(universalserial bus,USB)闪速驱动器)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,其包括诸如EPROM、EEPROM和闪速存储器的半导体存储器设备、磁盘(例如内部硬盘或可移动磁盘)、磁光盘、和CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施可以在具有显示器设备(例如CRT(cathode ray tube,阴极射线管),等离子或LCD(liquid crystal display,液晶显示器)监测器)的计算机上实施用于向用户和键盘以及指示设备(例如,鼠标或轨迹球)显示信息,用户可通过该设备向计算机提供输入。其他类型的设备也可被用于提供与用户的交互。提供给用户的反馈可以包括任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以包括声音、语音或触觉输入的任何形式接收来自用户的输入。此外,计算机可以通过向用户使用的设备传送文档和从该设备接收文档来与用户交互,诸如通过响应于从web浏览器接收的请求向用户客户端设备上的web浏览器传送网页。
本说明书中描述的主题的实施方案可以在计算系统中实施,该计算系统包括例如作为数据服务器的后端组件、或者包括中间件组件(例如应用服务器)、或者包括前端组件(例如具有用户可以通过其与本说明书中描述的主题的实施方案交互的图形用户界面或Web浏览器的客户端计算机)或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络可以包括局域网(local area network,“LAN”)和广域网(wide area network,“WAN”),网络间(例如,互联网)和对等网络(例如,ad hoc对等网络)。
诸如系统400或系统110的计算系统可以包括客户端和服务器。在一些实施方案中,数据处理系统110可以包括一个或多个数据中心或服务器群中的一个或多个服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系由于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方案中,(例如,出于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)服务器将数据(例如,HTML页面)发送到客户端设备。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体实施方案细节,但这些不应被解释为对任何发明或可能要求保护的范围的限制,而是作为对本文所述的系统和方法的特殊的实施方案的特定特征的描述。本说明书中在分开的实施方案的上下文中描述的某些特征也可以在单一实施方案中以组合来实施。相反,在单一实施的上下文中描述的各种特征也可以被分开地在多个实施方案中或在任何合适的子组合中实施。而且,尽管特征可以在上文中被描述为以某些组合起作用甚至由此最初被要求保护,但是在某些情况下来自要求保护的组合的一个或多个特征可以从该组合中删去,并且要求保护的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中以特殊的顺序描绘了操作,但是这不应该被理解为要求以所示的特殊的顺序或按顺次的顺序来执行这些操作,或者执行所有示出的操作以实现期望的结果。在一些情况下,权利要求中记载的动作可以以不同的顺序来执行并且仍然实现期望的结果。此外,附图中描绘的过程不一定要求所示的特殊的顺序或顺次的顺序来实现期望的结果。
在某些情况下,多任务处理和并行处理可能是有利的。而且,上述实施方案中的各种系统组件的分离不应被理解为在所有实施方案中都要求这种分离,并且应当理解的是,所描述的程序组件和系统通常可以在单一软件产品中集成在一起或者被打包到多种软件产品当中。在一些实施方案中,请求处理器264、响应重写器266和媒体编码器268可以是数据处理系统110的部分、单一模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器或搜索引擎的部分。在一些实施方案中,客户端代理252、主要内容元素254、请求写入器258、响应解析器260、媒体解码器262可以是数据处理系统110的部分、单一模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器或搜索引擎的部分。
现在已经描述了一些说明性的实施方案,显而易见的是前述内容是说明性的而非限制性的,其已经通过示例的方式表示。特别地,尽管本文表示的许多示例涉及方法动作或系统元素的特定组合,但是那些动作和那些元素可以以其他方式组合以完成相同的目标。仅结合一个实施方案讨论的动作、元素和特征不旨在被从其他实施方案或实施方案的类似角色中排除。
本文使用的措辞和术语是出于描述的目的,不应被视为限制。“包括”、“包含”、“具有”、“含有”、“涉及”、“特征在于”、“其特征在于”及其变化的使用意味着包含其后列出的项、其等同物和附加项以及由其后专门地列出的项组成的替代实施方案。在一个实施方案中,本文描述的系统和方法由所有描述的元件、动作或组件中的一个、多于一个的组合中的每个、或其全部组成。
本文以单数形式引用的系统和方法的实施方案或元素或动作的任何引用也可以囊括包括多个这些元素的实施方案,并且本文以复数形式对任何实施方案或元件或动作的引用也可以囊括仅包括单一元件的实施方案。以单数或复数形式的引用并不旨在将当前公开的系统或方法、它们的组件、动作或元件限制为单一的或多个配置。对基于任何信息、动作或元件的任何动作或元件的引用可以包括其中动作或元件至少部分基于任何信息、动作或元件的实施方案。
本文公开的任何实施方案可以与任何其他实施方案相结合,并且对“实施方案”、“一些实施方案”、“替代实施方案”、“各种实施方案”、“一个实施方案”等的引用不一定相互排斥,并且旨在指示结合该实施方案描述的特殊的特征、结构或特性可以被包括在至少一个实施方案中。本文使用的这些术语不一定都指的是相同的实施方案。任何实施方案可以以与本文公开的方面和实施方案一致的任何方式包含地或排他地与任何其他实施方案组合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示单一、多于一个和所有所描述的术语中的任何一个。
在附图、详细描述或任何权利要求中的技术特征后面有参考标记的情况下,包括参考标记是为了增加附图、详细描述和权利要求的可理解性的唯一目的。因此,参考标记和它们的缺失对任何权利要求要素的范围都不会有任何限制的作用。
在不脱离其特性的情况下,本文描述的系统和方法可以以其他特定形式体现。尽管本文提供的示例涉及递送跨站点自动播放媒体,但是本文描述的系统和方法可以包括应用于其他环境。前述实施方案是说明性的而不是限制所描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述来指示,并且在权利要求的等同物的含义和范围内的变化被囊括在其中。

Claims (20)

1.一种用于递送跨站点自动播放媒体的方法,包括:
数据处理系统从客户端设备接收针对第一域处的内容元素插入来自第二域的内容隙的第一请求,所述第一请求指示客户端设备被配置为限制跨域重定向;
响应于第一域与第二域不同以及响应于所述客户端设备被配置为限制跨域重定向的指示,所述数据处理系统确定所述第一请求包括被设置为第一内容类型的内容类型标头;
响应于确定所述第一请求包括被设置为所述第一内容类型的内容类型标头,所述数据处理系统生成包括标头和主体的响应,所述响应的标头具有第一状态类型的状态标识符,所述响应的主体具有针对所述内容元素的地址,而无需重定向所述客户端设备;以及
所述数据处理系统向客户端设备发送所述响应,所述响应的接收使得所述客户端设备向所述响应的主体中包括的地址发送针对所述内容元素的第二请求以插入所述内容隙。
2.如权利要求1所述的方法,还包括:响应于第一域与第二域不同,数据处理系统确定所述第一域对应于针对所述内容元素的多个允许域中的一个;并且
其中,生成所述响应还包括响应于确定所述第一域对应于所述多个允许域中的一个而生成所述响应。
3.如权利要求1所述的方法,还包括:响应于接收到所述第一请求,数据处理系统确定来自客户端设备的对所述内容元素的请求的数量小于阈值数量;并且
其中,生成所述响应还包括响应于确定所述请求的数量小于阈值数量而生成所述响应,以将针对所述内容元素的地址包括在所述响应的主体中。
4.如前述权利要求中任一项所述的方法,其中接收所述第一请求还包括:接收所述第一请求,其包括以下项中的至少一个:所述客户端设备的应用简档、所述客户端设备的设备类型、用于生成所述第一请求的方法类型、或指示所述客户端设备被配置为限制跨域重定向的标识符;并且还包括:
数据处理系统基于所述第一请求中包括的所述应用简档、所述设备类型、所述方法类型或所述标识符中的至少一个,确定所述客户端设备被配置为限制跨域重定向。
5.如权利要求1所述的方法,其中接收所述第一请求还包括:接收针对所述第一域的第二地址处的内容元素的所述第一请求;并且还包括:
响应于确定所述客户端设备被配置为限制跨域重定向,数据处理系统识别与所述第一请求中包括的第二地址对应的针对所述内容元素的地址。
6.如权利要求1所述的方法,其中向所述客户端设备发送所述响应还包括:向所述客户端设备发送所述响应,以返回针对所述内容元素的第二请求,所述第二请求包括标头和主体,所述第二请求的标头具有所述响应的地址,所述第二请求的主体具有被设置为不同于所述第一内容类型的第二内容类型的内容类型标头。
7.如权利要求1所述的方法,其中,生成所述响应还包括生成所述响应以包括所述第一状态类型的状态标识符,所述第一状态类型缺少重定向状态以使得客户端设备检索所述内容元素,而不重定向。
8.一种用于递送跨站点自动播放媒体的系统,包括:
具有与存储器耦合的一个或多个处理器的数据处理系统,被配置为:
从客户端设备接收针对第一域处的内容元素插入第二域处的内容隙的第一请求,所述第一请求指示客户端设备被配置为限制跨域重定向;以及
响应于第一域与第二域不同以及响应于所述客户端设备被配置为限制跨域重定向的指示,确定所述第一请求的内容类型标头被设置为第一内容类型还是第二内容类型;
响应于所述内容类型标头被设置为第一内容类型的确定,向所述客户端设备发送包括第一标头和第一主体的第一响应,所述第一标头具有第一状态类型的第一状态标识符,所述第一主体具有主体中针对所述内容元素的地址,以使得客户端设备使用所述地址返回针对所述内容元素的第二请求,而无需重定向所述客户端设备;以及
响应于所述内容类型标头被设置为第二内容类型的确定,向所述客户端设备发送包括第二标头和第二主体的第二响应,所述第二标头具有第二状态类型的第二状态标识符,所述第二主体具有对应于所述地址的内容元素,以使得客户端设备在所述内容隙上呈现所述响应的主体中的内容元素。
9.如权利要求8所述的系统,其中所述数据处理系统还被配置为:响应于所述第一请求的接收,确定来自客户端设备的对所述内容元素的请求的数量小于阈值数量;以及
响应于所述请求的数量小于阈值数量的确定,生成所述第一响应,以将所述第一状态类型的第一状态标识符包括在第一标头中,并将针对所述内容元素的地址包括在所述第一主体中。
10.如权利要求8或9所述的系统,其中所述数据处理系统还被配置为:
响应于第一域与第二域不同,确定所述第一域对应于针对所述内容元素的多个允许域中的一个;以及
响应于所述第一域对应于多个允许域中的一个的确定,向客户端设备发送所述第一响应或所述第二响应中的至少一个。
11.如权利要求8所述的系统,其中所述数据处理系统还被配置为:
接收所述第一请求,其包括以下项中的至少一个:所述客户端设备的应用简档、所述客户端设备的设备类型、用于生成所述第一请求的方法类型、或指示所述客户端设备被配置为限制跨域重定向的标识符;以及
基于所述第一请求中包括的所述应用简档、所述设备类型、所述方法类型或所述标识符中的至少一个确定所述客户端设备被配置为限制跨域重定向。
12.如权利要求8所述的系统,其中所述数据处理系统还被配置为:
响应于所述内容类型标头被设置为第二内容类型的确定,基于所述第一请求确定客户端设备被配置为限制以第一格式编码的内容元素的自动呈现;以及
响应于所述客户端设备被配置为限制自动呈现,识别以不同于第一格式的第二格式的内容元素,所述客户端设备被配置为允许以第二格式的内容的自动呈现。
13.如权利要求8所述的系统,其中,所述数据处理系统还被配置为响应于所述内容类型标头被设置为第一内容类型的确定,识别与所述第一请求中包括的第二地址、所述第一域的第二地址对应的针对所述内容元素的地址。
14.如权利要求8所述的系统,其中,所述数据处理系统还被配置为响应于所述内容类型标头被设置为所述第二内容类型的确定,检索对应于将被包括在所述第二响应的第二主体中的地址的内容元素。
15.一种用于检索跨站点内容的系统,包括:
具有与存储器耦合的一个或多个处理器的客户端设备,被配置为:向数据处理系统发送针对第一域处的内容元素插入第二域处的内容隙的第一请求,所述第一请求包括被设置为第一内容类型或第二内容类型中的一个的第一内容类型标头,所述第一请求指示所述客户端设备被配置为限制跨域重定向;
从所述数据处理系统接收包括标头和主体的响应,所述响应的标头包括状态标识符以防止所述客户端设备的重定向,所述响应的主体包括针对所述内容元素的地址或所述内容元素中的一个;
响应于所述响应的接收,确定所述响应的主体包括针对所述内容元素的地址还是所述内容元素;
响应于所述响应的主体包括针对内容元素的地址的确定,向所述数据处理系统发送具有标头的针对所述内容元素的第二请求,所述第二请求的标头具有针对所述内容元素的地址和被设置为所述第二内容类型的第二内容类型;以及
响应于所述响应的主体包括所述内容元素的确定,在所述内容隙中呈现所述内容元素。
16.如权利要求15中所述的系统,其中所述客户端设备还被配置为:确定被所述内容元素引用的第一域不同于被所述内容隙引用的第二域;以及
响应于第一域不同于第二域的确定,生成所述第一请求以包括指示所述客户端设备被配置为限制跨域重定向的标识符。
17.如权利要求15或16中所述的系统,其中所述客户端设备还被配置为:
确定将发送到数据处理系统的所述第一请求是否是针对内容元素的初始请求;
响应于所述第一请求是初始请求的确定,将所述第一内容类型标头设置为所述第一内容类型,以向所述数据处理系统指示提供在所述响应的主体中的针对内容元素的地址;以及
响应于所述第一请求不是初始请求的确定,将所述第一内容类型标头设置为所述第二内容类型,以向所述数据处理系统指示提供在所述响应的主体中的内容元素。
18.如权利要求15所述的系统,其中所述客户端设备还被配置为:
响应于所述响应的主体包括所述内容元素的确定,确定所述内容元素是以第一格式而不是以第二格式编码的,所述客户端设备被配置为允许以第一格式的内容的自动呈现并限制以第二格式的内容的自动呈现;以及
响应于所述内容元素是以第一格式而不是以第二格式的确定,自动呈现所述内容元素。
19.如权利要求15所述的系统,其中所述响应还包括:被设置为所述第一内容类型或所述第二内容类型中的一个的内容类型标头;以及
响应于被设置为所述第一内容类型的所述响应的内容类型标头,确定所述响应的主体包括针对所述内容元素的地址;以及
响应于被设置为所述第二内容类型的所述响应的内容类型标头,确定所述响应的主体包括所述内容元素。
20.如权利要求15所述的系统,其中所述客户端设备还被配置为响应于所述响应的主体包括所述内容元素的确定,执行所述响应的主体中包括的可执行代码,以在所述内容隙中播放所述内容元素。
CN201780014548.3A 2017-03-01 2017-12-14 递送来自跨源资源的自动播放媒体内容元素 Active CN108811515B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/447,009 2017-03-01
US15/447,009 US10733376B2 (en) 2017-03-01 2017-03-01 Delivering auto-play media content element from cross origin resources
PCT/US2017/066513 WO2018160255A1 (en) 2017-03-01 2017-12-14 Delivering auto-play media content element from cross origin resources

Publications (2)

Publication Number Publication Date
CN108811515A CN108811515A (zh) 2018-11-13
CN108811515B true CN108811515B (zh) 2022-07-01

Family

ID=60991542

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202011528245.3A Active CN112565291B (zh) 2017-03-01 2017-12-13 从跨源资源提供自动播放媒体内容元素
CN201711329278.3A Active CN108540434B (zh) 2017-03-01 2017-12-13 从跨源资源提供自动播放媒体内容元素
CN201780014548.3A Active CN108811515B (zh) 2017-03-01 2017-12-14 递送来自跨源资源的自动播放媒体内容元素

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202011528245.3A Active CN112565291B (zh) 2017-03-01 2017-12-13 从跨源资源提供自动播放媒体内容元素
CN201711329278.3A Active CN108540434B (zh) 2017-03-01 2017-12-13 从跨源资源提供自动播放媒体内容元素

Country Status (6)

Country Link
US (4) US10733376B2 (zh)
EP (1) EP3408767B1 (zh)
CN (3) CN112565291B (zh)
DE (2) DE102017128569A1 (zh)
GB (1) GB2560221A (zh)
WO (1) WO2018160255A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2998585C (en) * 2015-09-28 2020-08-18 Arris Enterprises Llc Domain name system response spoofing at customer premise equipment device
US10733376B2 (en) * 2017-03-01 2020-08-04 Google Llc Delivering auto-play media content element from cross origin resources
US11165868B2 (en) * 2017-03-30 2021-11-02 Microsoft Technology Licensing, Llc Systems and methods for achieving session stickiness for stateful cloud services with non-sticky load balancers
CN110166502B (zh) * 2018-02-11 2021-06-01 中国移动通信有限公司研究院 数据获取方法、服务提供端、服务使用端及网络功能实体
US10855806B2 (en) * 2018-04-23 2020-12-01 Lightspeed Solutions, Llc Proxy injection of browser-executable functions
US10972576B2 (en) * 2018-11-14 2021-04-06 International Business Machines Corporation Content acceleration for cross-site resources by CDN
CN110691092A (zh) * 2019-10-09 2020-01-14 恩亿科(北京)数据科技有限公司 一种数据处理方法、装置、电子设备及可读存储介质
CN117236356A (zh) * 2023-11-15 2023-12-15 冠骋信息技术(苏州)有限公司 基于web的标签在线设计及打印方法
CN117540040A (zh) * 2024-01-10 2024-02-09 成都索贝数码科技股份有限公司 一种媒资内容交换装置及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101860720A (zh) * 2009-04-10 2010-10-13 中兴通讯股份有限公司 内容定位方法及内容分发网络节点
CN102214127A (zh) * 2010-11-15 2011-10-12 上海安纵信息科技有限公司 一种基于操作系统虚拟化原理的数据集中存储及备份方法
CN104350451A (zh) * 2011-11-01 2015-02-11 谷歌公司 集成的社交网络和流回放
CN105659228A (zh) * 2013-09-30 2016-06-08 搜诺思公司 媒体回放系统中的音频内容搜索

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990531B2 (en) * 2000-04-17 2006-01-24 Circadence Corporation System and method for providing last-mile data prioritization
US9137324B2 (en) * 2002-04-10 2015-09-15 International Business Machines Corporation Capacity on-demand in distributed computing environments
US7127473B2 (en) * 2002-05-17 2006-10-24 Sap Aktiengesellschaft Methods and systems for providing supplemental contextual content
CN101523379A (zh) * 2006-08-18 2009-09-02 阿卡麦科技公司 分布式网络中的数据收集方法
US8959647B2 (en) * 2007-02-27 2015-02-17 Microsoft Corporation Runtime security and exception handler protection
US7987291B2 (en) * 2008-01-07 2011-07-26 Intel Corporation Data distribution using DNS
CN101540734A (zh) * 2008-03-21 2009-09-23 阿里巴巴集团控股有限公司 一种跨域名Cookie访问方法、系统及设备
US20090271690A1 (en) * 2008-04-28 2009-10-29 Yahoo! Inc. Handling cross-domain web service calls
CN101662460B (zh) * 2008-08-25 2015-07-15 阿里巴巴集团控股有限公司 一种跨域通讯的方法、系统和装置
US8706811B2 (en) * 2008-09-30 2014-04-22 Lenovo (Singapore) Pte. Ltd. Preventing redirection loops during collaborative web browsing
US9459936B2 (en) 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
ES2660541T3 (es) * 2009-09-30 2018-03-22 Amazon Technologies, Inc. Marco de autenticación de dispositivo modular
BR112012001150B1 (pt) * 2009-11-09 2021-06-29 Snaptrack, Inc Método para implementar serviço de transmissão baseado em http
AU2010328326B2 (en) * 2009-12-07 2016-12-01 Robert Buffone System and method for website performance optimization and internet traffic processing
US8452837B2 (en) * 2010-11-03 2013-05-28 Google Inc. Data delivery
US8751800B1 (en) * 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US9262782B2 (en) * 2012-03-14 2016-02-16 Doing Good Better, Llc Secure transaction processing system and method
US9471701B2 (en) * 2012-06-28 2016-10-18 Citrix Systems, Inc. Methods and systems for secure in-network insertion of web content and web services
GB2505730B (en) * 2012-11-30 2014-10-15 Openwave Mobility Inc A method, apparatus and computer program for controlling access to content in a communications network
EP2747369A1 (en) * 2012-12-21 2014-06-25 Gemalto SA A system and method of dynamic issuance of privacy preserving credentials
US9098477B2 (en) * 2013-05-15 2015-08-04 Cloudflare, Inc. Method and apparatus for automatically optimizing the loading of images in a cloud-based proxy service
US9143840B2 (en) * 2013-05-20 2015-09-22 Veenome, Inc. Systems and methods for evaluating online videos
CN103327417A (zh) * 2013-07-11 2013-09-25 亿览在线网络技术(北京)有限公司 一种实时远程音视频的直播方法及其装置
US9372681B1 (en) * 2013-10-02 2016-06-21 Google Inc. Redirection of a document URL to a natively-operating application
US9332035B2 (en) * 2013-10-10 2016-05-03 The Nielsen Company (Us), Llc Methods and apparatus to measure exposure to streaming media
US9697188B2 (en) * 2013-11-15 2017-07-04 Instart Logic, Inc. Method to enable cross-origin resource sharing from a webpage inside a private network
WO2015076794A1 (en) * 2013-11-20 2015-05-28 Empire Technology Development, Llc Network injected storage redirection for embedded applications
US20150188779A1 (en) * 2013-12-31 2015-07-02 Jut, Inc. Split-application infrastructure
US9349000B2 (en) * 2014-01-27 2016-05-24 Microsoft Technology Licensing, Llc Web service sandbox system
US9402112B1 (en) * 2014-01-27 2016-07-26 Google Inc. Two-stage playback: verifying user intent to watch an embedded video
CN105450694B (zh) * 2014-08-22 2019-06-21 阿里巴巴集团控股有限公司 一种处理连续重定向的方法和装置
CN105472052B (zh) * 2014-09-03 2019-12-31 阿里巴巴集团控股有限公司 一种跨域服务器的登录方法和系统
US20160134554A1 (en) * 2014-11-06 2016-05-12 Cisco Technology, Inc. Delegated user interface for resource constrained device
US9712589B2 (en) 2015-02-25 2017-07-18 Ironsource Ltd. System and method for playing a video on mobile web environments
US9666233B2 (en) * 2015-06-01 2017-05-30 Gopro, Inc. Efficient video frame rendering in compliance with cross-origin resource restrictions
US10536425B2 (en) * 2015-08-26 2020-01-14 Pulsepoint, Inc. Cross-domain HTTP requests using DNS rebinding
CN105897743A (zh) * 2016-05-26 2016-08-24 努比亚技术有限公司 一种跨域单点登录的方法及服务器
US9917908B1 (en) * 2017-01-30 2018-03-13 Cloudflare, Inc. Third party validation of web content
US10733376B2 (en) 2017-03-01 2020-08-04 Google Llc Delivering auto-play media content element from cross origin resources

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101860720A (zh) * 2009-04-10 2010-10-13 中兴通讯股份有限公司 内容定位方法及内容分发网络节点
CN102214127A (zh) * 2010-11-15 2011-10-12 上海安纵信息科技有限公司 一种基于操作系统虚拟化原理的数据集中存储及备份方法
CN104350451A (zh) * 2011-11-01 2015-02-11 谷歌公司 集成的社交网络和流回放
CN105659228A (zh) * 2013-09-30 2016-06-08 搜诺思公司 媒体回放系统中的音频内容搜索

Also Published As

Publication number Publication date
CN112565291B (zh) 2023-05-16
GB2560221A (en) 2018-09-05
US20210019473A1 (en) 2021-01-21
US11200375B2 (en) 2021-12-14
CN108540434A (zh) 2018-09-14
EP3408767B1 (en) 2023-05-31
US20180253415A1 (en) 2018-09-06
DE102017128569A1 (de) 2018-09-06
GB201720749D0 (en) 2018-01-24
US20200050659A1 (en) 2020-02-13
CN112565291A (zh) 2021-03-26
US11842150B2 (en) 2023-12-12
US10733376B2 (en) 2020-08-04
US20220108067A1 (en) 2022-04-07
EP3408767A1 (en) 2018-12-05
WO2018160255A1 (en) 2018-09-07
US11562138B2 (en) 2023-01-24
CN108811515A (zh) 2018-11-13
CN108540434B (zh) 2020-12-29
DE202017107339U1 (de) 2018-06-04

Similar Documents

Publication Publication Date Title
CN108811515B (zh) 递送来自跨源资源的自动播放媒体内容元素
US11907360B2 (en) Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources
US9661104B2 (en) Method and apparatus for receiving presentation metadata
CN108811514B (zh) 用于检测在客户端设备上执行的应用不当地实施对内容项的呈现的系统和方法
US20210352150A1 (en) Maintaining session identifiers across multiple webpages for content selection
US20160191979A1 (en) Systems and methods for displaying video content relevant to application content
US11089085B2 (en) Passing of data via deep links for application components
KR101481380B1 (ko) Html 콘텐츠 재생을 위한 이동단말 및 방법
CN117909603A (zh) 防止干扰在信息资源上渲染内容元素的系统和方法

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
GR01 Patent grant
GR01 Patent grant