从跨源资源提供自动播放媒体内容元素的制作方法

文档序号:15455290发布日期:2018-09-15 00:56阅读:166来源:国知局

本申请涉及从跨源资源提供自动播放媒体内容元素。



背景技术:

在诸如因特网的计算机联网环境中,内容元素(例如,网页)可以由在客户端设备处执行的应用(例如,web浏览器)呈现。其他内容元素可以被嵌入在主要内容元素(例如嵌入在主体元素中的内嵌帧元素)内。这些嵌入式内容元素可以由客户端设备经由计算机联网环境从不同于主要内容元素的服务器接收。



技术实现要素:

在同源策略下,出于安全的目的,web浏览器可以限制源自除主要内容元素的域以外的域的内容。同源策略可允许web浏览器在跨源资源共享(cors)协议下的指定的情况下,访问来自不同域的嵌入式内容。该协议可以允许web浏览器使用指定的方法(例如,get、head和post),获取源自不同域的某些类型的内容,诸如纯文本数据(“text/plain”)、多部分表单数据(“x-www-form-urlencoded”)和应用编码表单数据(“application/x-www-form-urlencoded”)。在这些规范下,在客户端设备上运行的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),获取源自不同域的某些类型的内容,诸如纯文本数据(“text/plain”)、多部分表单数据(“x-www-form-urlencoded”)和应用编码表单数据(“application/x-www-form-urlencoded”)等。使用这些规范,在客户端设备上运行的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可以将主机标头120a设置到嵌入式媒体内容元素的域(例如“地址a”)以将请求105定向到与该域相关联的服务器110。服务器110可以与向客户端设备105提供主要内容元素的服务器不同。客户端设备可以进一步将内容类型标头120b设置为文本(例如,“text/plain”)以向服务器110指示客户端105正在请求哪种类型的内容。客户端设备105还可以在请求115中(例如,在标头120a的主机名中、在选项字段中、在url的参数值对中等)包括参数以向服务器110信号告知客户端设备105可能正期望响应的主体中的重定向地址。然后,请求115可以由客户端设备105发送到与嵌入式媒体内容元素的地址对应的服务器110,以重定向到第三方内容服务器。

在接收到该请求后,服务器110可以接收并且解析请求115。服务器110可以从主机标头120a识别嵌入式媒体内容元素的地址。基于请求115,诸如通过使用添加到请求115的参数,基于被设定为“文本”的内容类型标头120b,或基于包括在主机标头120a中的地址,服务器110可以确定客户端设备105将被重定向到另一地址(例如,第三方内容服务器的地址)。基于该确定,服务器110可以识别客户端设备105将被重定向到的第二地址(例如,“地址b”)。第二地址可以包括与包括在请求115的主机标头120a中的第一地址相同的主机名称。服务器110可以生成响应125。不是包括重定向状态码(例如找到的302),相反,服务器110可以将响应125的状态码标头130a设定为成功(例如200ok)。服务器110可以在响应125的主体130b中包括客户端设备105将被重定向到的另一地址。然后,响应125可以被发送到客户端设备105。

在接收到响应125后,客户端设备105可以解析响应125以识别响应125的主体130b中的重定向地址(例如,“地址b”)。当响应125的状态码标头130指示成功,与重定向(例如,码302)不同时,客户端设备105能够通过绕过关于cors协议中的重定向响应的限制:将由302重定向码触发的浏览器安全设置不由ok200码触发,访问来自与主要内容元素的域不同的域的内容。设定为成功的响应125还可以允许客户端设备105向除主要内容元素以外的域的服务器发送追加请求。客户端设备105可以进而生成第二请求135(例如,使用post方法)。在请求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和一个或多个内容源,诸如网络服务器、广告服务器等之间转发信息的任何形式的计算机网络。网络205可以包括因特网和/或其他类型的数据网络,诸如局域网(lan)、广域网(wan)、蜂窝网络、卫星网络或其他类型的数据网络。网络205还可以包括被配置为在网络205内接收和/或传送数据的任意多个计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络205可以进一步包括任何多个硬连线和/或无线连接。在一些实施方式中,客户端设备105可以与在网络205中,硬连线(例如,经由光纤电缆、cat5电缆等)到其他计算设备,诸如数据处理系统110、内容提供者设备210和内容发布者设备215的收发器无线地通信(例如,经由wifi、蜂窝、无线电等)。

内容提供者计算设备210可以包括由内容提供者实体操作的服务器或其它计算设备,以提供用于在客户端设备105处的主要内容元素上显示的内容元素。由内容提供者计算设备215提供的内容可以包括用于在主要内容元素(例如,网页),诸如包括主要内容,例如由内容发布者计算设备215提供的内容的网站或网页上显示的嵌入式内容元素。也可以在搜索结果网页上显示内容元素。在一些实施方式中,内容提供者计算设备215可以提供或成为用于在主要内容元素的内容插槽,诸如由公司提供网页的主要内容的公司的网页中显示,或用于在由搜索引擎提供的搜索结果登录页面上显示的内容元素的来源。与内容提供者计算设备215相关联的内容元素可以被显示在除了网页之外的主要内容元素上,诸如显示为在智能手机或其他客户端设备105上执行的应用的一部分的内容。在一些实施方式中,内容提供者计算设备210可以包括用于提供媒体内容元素,诸如视频内容元素的服务器。

内容发布者计算设备215可以包括由内容发布实体操作的服务器或其他计算设备,以提供用于经由网络205显示的主要内容元素。内容发布者计算设备215可以包括提供在网页上显示的主要内容的网页操作员。主要内容可以包括除由内容发布者计算设备215提供的内容之外的内容,并且主要内容元素可以包括被配置用于显示来自内容提供者计算设备210的嵌入式内容元素的内容插槽。例如,内容发布者计算设备215可以操作公司的网站并且可以提供关于该公司的内容以在网站的网页上显示。网页可以包括被配置为显示诸如内容提供者计算设备215的广告的嵌入式内容元素的内容插槽。在一些实施方式中,内容发布者计算设备215包括运营搜索引擎网站的搜索引擎运营商的搜索引擎计算设备(例如服务器)。搜索引擎网页的主要内容元素(例如,结果或登录网页)可以包括搜索结果以及在内容插槽中显示的嵌入式内容元素,诸如来自内容提供者计算设备215的嵌入式内容元素。在一些实施方式中,内容发布者计算设备215可以包括用于提供媒体内容元素,诸如视频内容元素的服务器。

内容提供者计算设备210和内容发布者计算设备215均可以包括处理器和存储器。存储器存储机器指令,所述机器指令在由处理器执行时,使处理器执行本文所述的一个或多个操作。处理器可以包括微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)等或其组合。存储器可以包括但不限于能够为处理器提供程序指令的电子、光学、磁或任何其他存储或传输设备。存储器可以进一步包括处理器能从其读取指令的软盘、cd-rom、dvd、磁盘、存储器芯片、asic、fpga、只读存储器(rom)、随机存取存储器(ram)、电可擦rom(eeprom)、可擦可编程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可以包括位于至少一个数据中心或服务器群中的多个服务器。数据处理系统110可以包括请求处理机264、响应重写器266、媒体编码器268、媒体地址数据库270和媒体内容元素数据库272。在一些实施方式中,请求处理机264、响应重写器266、媒体编码器268、媒体地址数据库270和媒体内容元素数据库272可以是驻留在存储器230上以由处理器230执行的指令或其他数据。在一些实施方式中,请求处理机264、响应重写器266、以及媒体编码器268的每一个可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、装置或其它逻辑器件,诸如被配置为与媒体地址数据库270和媒体内容元素数据库272通信以及经由网络205与其他计算设备(例如,内容提供者计算设备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浏览器、移动应用或用于解析和呈现经由网络205在客户端设备105处接收的内容元素的任何其他计算程序。客户端代理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可以由地址,诸如在统一资源定位符(url)语法后的地址引用。地址可能包含域名和路径。域名可以与内容发布者设备215相关联或者特定于该内容发布者设备215。该路径可以引用由内容发布者设备215托管的特定主要内容元素254。

另外,客户端代理252可以解析主要内容元素254以识别附加内容元素。在一些实施方式中,客户端代理252可以识别将嵌入到主要内容元素254中的内容元素。客户端代理252可以识别对嵌入式内容元素的引用,诸如对主要内容元素254中的嵌入式媒体内容元件256”(例如,html视频或音频内容元素)的引用。用于嵌入式媒体内容元素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的内容类型标头设置为文本(例如“text/plain”或“text/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可以解析初始请求125以获得地址256。响应重写器266可以使用地址256来从媒体内容数据库272中搜索嵌入式媒体内容元素256”。在一些实施方式中,响应重写器266可以进而将后续响应中的嵌入式媒体内容元素256”传送到客户端代理252。在一些实施方式中,客户端代理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可以禁止将嵌入式媒体内容元素256”提供给客户端设备105,并且可以终止请求的进一步处理。以这种方式,可以维持在客户端设备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可以解析初始请求115以在确定客户端代理252是否被配置为限制跨域重定向中,识别客户端设备105的设备类型(例如,客户端设备105是智能电话、手提电脑还是台式电脑等)。请求处理机264可以将客户端设备105的设备类型与被配置为限制跨域重定向的设备类型的列表比较。设备类型的列表可以由请求处理机264从存储器230或连接到数据处理系统110的另一数据库访问。如果客户端设备105的设备类型与设备类型列表中的一个设备类型匹配,则请求处理机264可以确定客户端代理252被配置为限制跨域重定向。请求处理机264还可以确定客户端代理252可能正期望用于嵌入式媒体内容元素256”的重定向地址256'。如果客户端设备105的设备类型与设备类型列表上的任何设备类型均不匹配,则请求处理机264可以确定客户端代理252没有被配置为限制跨域重定向。

如果请求处理机264确定客户端代理252没有被配置为限制跨域重定向,则请求处理机264可以解析初始请求125以获得地址256。响应重写器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'。在下文中,将更详细地描述请求处理机264响应将请求的内容类型标头识别为非文本(诸如终端请求135的情形)的操作。

只要请求处理机264将请求的内容类型标头识别为指定文本内容(例如,初始标头115),则请求处理机264可以转发、信号告知或以其他方式使得响应重写器266生成初始响应125以抵消跨域重定向的限制。在cors规范下,如果数据处理110试图通过包括具有与主要内容元素254的域不同的域的嵌入内容的地址的重定向状态码来发出响应,则可以将响应的源标头设定为空,从而限制重定向响应中的所有域。重定向状态码可以包括301多个选择、301永久移动、302找到、303参见其他、304未修改、305使用代理、307临时重定向或308永久重定向。为了绕过cors规范关于通过重定向状态码响应的限制,响应重写器266可以产生缺少这种重定向状态码的响应。

在一些实施方式中,响应重写器266可以生成初始响应125.响应重写器266可以设置初始响应125的标头和主体。初始响应125的标头可以被设置为包括指示成功的状态码(例如200ok)。在一些实施方式中,初始响应125的标头可以被设置为包括指示文本(例如,“text/plain”和“text/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可以解析该响应。由于与重定向(例如302找到)相反,响应可以包括指示成功的状态码(例如,200ok),所以客户端代理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可以解析初始请求125以获得地址256。响应重写器266可以使用地址256来从媒体内容数据库272中搜索嵌入式媒体内容元素256”。响应重写器266可以进而将后续响应中的嵌入式媒体内容元素256”传送到客户端代理252。客户端代理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可以解析终端请求135以识别客户端设备105的设备类型(例如,客户端设备105是智能电话、手提电脑还是台式电脑等),用于确定客户端代理252是否被配置为限制跨域重定向。在一些实施方式中,请求处理机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'的嵌入式媒体内容元素。响应重写器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中嵌入的内容元素的人机交互(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绘图函数(例如rect()、fill()、lineto()和translate()函数等)的javascript)。通过布置绘图函数,媒体编码器268可以生成以第二格式编码的嵌入式视频媒体内容元素256”。媒体编码器268可以将来自以第一格式编码的嵌入式视频内容元素256”的音频转码为第二格式。在一些实施方式中,媒体编码器268可以包括将与嵌入式视频媒体内容元素256”一起提供的单独的音频内容元素。

只要被转换,媒体编码器268就可以将以第二格式编码的嵌入式媒体内容元素256”转发到响应重写器266。在一些实施方式中,响应重写器266可以进而将以第二格式编码的嵌入式媒体内容元素256”插入或包括到终端响应145中。在一些实施方式中,响应重写器266可以经由网络接口225将终端响应145和以第二格式编码的嵌入式媒体内容元素256”一起传送到客户端设备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将终端响应145和以第二格式编码的嵌入式媒体内容元素256”一起传送到客户端设备105。如果客户端设备105的设备类型与设备类型列表的任一设备类型均不匹配,响应重写器266可以确定客户端设备105被配置为允许自动播放第一格式的嵌入式媒体内容元素256”。

在一些实施方式中,响应重写器266可以解析终端请求135以识别客户端代理252的应用配置文件。响应重写器266可以将客户端代理252的应用配置文件与被配置成限制自动播放第一格式的嵌入式媒体内容元素256”的应用的列表比较。如果客户端代理252的应用配置文件与应用列表中的一个应用匹配,则响应重写器266可以确定客户端代理252被配置为限制自动播放第一格式的嵌入式媒体内容元素256”。媒体编码器268可以将嵌入式媒体内容元素256”从第一格式编码、转码或以其他方式转换为第二格式。响应重写器266可以经由网络接口225将终端响应145与以第二格式编码的嵌入式媒体内容元素256”一起传输到客户端设备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绘图函数(例如rect()、fill()、lineto()和translate()函数等)的javascript)。通过布置绘图函数,解码器262可以生成以第二格式编码的嵌入式视频媒体内容元素256”,以允许客户端代理252自动播放。

参考图3a-3c,示出了图示提供跨站点自动播放媒体的方法300的流程图。可以由系统200,诸如图1所示的数据处理系统110、客户端设备105、内容提供者设备210以及如图2所示的内容发布者设备215或图4所示的系统400等,或其组合,实现或执行关于方法300的本文所述的功能。

从图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、一个或多个通信接口405,以及一个或多个输出设备410(例如,一个或多个显示单元)和一个或多个输入设备415的一个或多个处理器420。处理器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、盘或其它存储设备)或被包括在其中。

可在智能电视模块(或连接的电视模块、混合电视模块等)上实现在本文中公开的特征,该智能电视模块可包括被配置成将因特网连接与更多传统电视节目源(例如,经由电缆、卫星、广播或其它信号接收)集成的处理模块。智能电视模块可在物理上被合并到电视机中,或者可包括单独设备,诸如机顶盒、蓝光或其它数字媒体播放器、游戏控制台、旅馆电视系统及其它配套设备。智能电视模块可被配置成允许观看者在web上、在本地有线tv频道上、在卫星tv频道上搜索和查找视频、电影、照片及其它内容或者智能电视模块可被配置成允许观看者搜索和查找存储在本地硬盘驱动器上的视频、电影、照片及其它内容。机顶盒(stb)或机顶单元(stu)可包括信息电器设备,其可包含调谐器并连接到电视机和外部信号源,将信号转变成然后在电视屏幕或其它显示设备上显示的内容。还可将智能电视模块配置成提供主屏幕或顶级屏幕,其包括用于多个不同应用的图标,该应用诸如是web浏览器和多个流媒体服务、连接的有线电视或卫星媒体源、其它web“频道”等。智能电视模块可进一步被配置成向用户提供电子节目指南。智能电视模块的配套应用可以在移动计算设备上可操作以向用户提供关于可用程序的附加信息,以允许用户控制智能电视模块等。在替选实施方式中,可在膝上型计算机或其它个人计算机、智能电话、其它移动电话、手持式计算机、平板pc或其它计算设备上实现特征。

在本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上的数据或从其它源接收到的数据执行的操作。

术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”涵盖用于处理数据的所有种类的装置、设备以及机器,举例来说包括可编程处理器、计算机、片上系统或前述中的多个或其组合。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件之外,该装置还可以包括创建用于正在讨论中的计算机程序的执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机或其中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。请求处理机264、响应重写器266和媒体编码器268可以包括或共享一个或多个数据处理装置、计算设备或处理器。客户端代理252、主要内容元素254、请求写入器258、响应解析器260和媒体解码器262可以包括或共享一个或多个数据处理装置、计算设备或处理器。

可以以任何形式的编程语言来编写计算机程序(也称为程序、软件、软件应用、脚本或代码),包括编译或解释语言、声明或过程语言,并且其可以以任何形式部署,包括为独立程序或模块、组件、子例程、对象或适合于在计算环境中使用的其它单元。计算机程序可以但不需要对应于文件系统中的文件。可以将程序存储在保持其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于正在讨论中的程序的单个文件中或多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。此外,可以将计算机程序部署成在位于一个位置处或跨多个位置分布并被通信网络互连的一个计算机或多个计算机上执行。

在本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作的一个或多个可编程处理器执行。该过程和逻辑流程还可以由专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)执行,并且可将装置实现为该专用逻辑电路。

适合于执行计算机程序的处理器包括通用和专用微处理器两者以及任何种类的数字计算机的任何一个或多个处理器。一般地,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必需元素是用于根据指令来执行动作的处理器和用于存储指令和数据的一个或多个存储设备。一般地,计算机还将包括用于存储数据的一个或多个大容量存储器件(例如,磁盘、磁光盘或光盘)或计算机还将被可操作地耦合成从所述一个或多个大容量存储器件接收或向其传输数据或两者。然而,计算机不需要具有此类设备。此外,可以将计算机嵌入另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收机或便携式存储设备(例如,通用串行总线(usb)闪速驱动器)。适合于存储计算机程序指令和数据的信息载体包括所有形式的非易失性存储器、介质和存储器件,包括半导体存储器件,诸如eprom、eeprom和闪速存储器件;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可通过专用逻辑电路来补充或合并在其中。

为了允许与用户交互,可以将在本说明书中描述的主题的实施方式实现于计算机上,该计算机具有用于向用户显示信息的诸如crt(阴极射线管)、等离子体或lcd(液晶显示器)监视器之类的显示设备及键盘和指向设备,诸如鼠标或轨迹球,用户可以通过其来向计算机提供输入。也可以使用其它种类的设备来提供与用户的交互。提供给用户的反馈可包括任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过向用户所使用的设备发送文档和从其接收文档来与用户交互;诸如通过响应从web浏览器接收到的请求而向用户的客户端设备上的web浏览器发送网页。

可以将在本说明书中描述的主题的实施方式实现于计算系统中,该计算系统包括例如作为数据服务器的后端部件,或者包括中间件部件,例如应用服务器,或者包括前端部件,例如具有用户可以通过其与在本说明书中描述的主题的实施方式交互的图形用户界面或web浏览器的客户端计算机,或者一个或多个此类后端、中间件或前端部件的任何组合。系统的部件可被数字数据通信的任何形式或介质互连,例如通信网络。通信网络包括局域网(“lan”)和广域网(“wan”)、互联网络(例如,因特网)和端对端网络(例如,自组端对端网络)。

诸如系统400或系统110之类的计算系统可以包括客户端和服务器。在一些实施方式中,数据处理系统110可以包括一个或多个数据中心或服务器群中的一个或多个服务器。客户端和服务器一般相互远离且通常通过通信网络交互。客户端和服务器的关系借助于在相应计算机上运行且相互具有客户端服务器关系的计算机程序产生。在一些实施方式中,服务器向客户端设备传送数据(例如,html页面)(例如出于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多特定实施方式细节,但不应将这些理解为对任何发明或可要求保护的内容的范围的限制,而是作为特定于本文所述系统和方法的具体实施方式的特征的描述。还可在单个实施方式中以组合方式实现在本说明书中在单独实施方式的背景下描述的某些特征。相反地,还可以单独地在多个实施方式中或者以任何适当的子组合来实现如在单个实施方式的背景下描述的各种特征。此外,虽然上文可将特征描述为以某些组合方式作用且甚至在最初这样要求保护,但在某些情况下可以将来自要求保护的组合的一个或多个特征从该组合移除,并且要求保护的组合可针对子组合或子组合的变体。

类似地,虽然在图中按照特定顺序来描述操作,但不应将这理解为要求按照所示的特定顺序或按照连续次序来执行此类操作,或者执行所有所示操作,以实现期望的结果。在一些情况下,可以按照不同的次序来执行在权利要求中记载的动作并仍实现期望的结果。另外,在附图中描述的过程不一定要求所示的特定次序或顺序次序以实现期望结果。

在某些情况下,多任务和并行处理可能是有利的。此外,不应将上述实施方式中的各种系统部件的分离理解为在所有实施方式中都要求这样的分离,并且应理解的是一般地可以将所述程序组件和系统在单个软件产品中集成在一起或者封装成多个软件产品。在一些实施方式中,请求处理机264、响应重写器266和媒体编码器268可以是数据处理系统110的一部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器或者搜索引擎的一部分。在一些实施方式中,客户端代理252、主要内容元素254、请求写入器258、响应解析器260、媒体解码器262可以数据处理系统110的一部分、单个模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器或者搜索引擎的一部分

现在已描述了某些说明性实施方式和实施方式,但显而易见的是前述内容是说明性而非限制性的,是以示例的方式呈现的。具体地,虽然在本文中呈现的许多示例涉及方法动作或系统元素的特定组合,但可以以其它方式将那些动作和那些元素组合以达到相同的目的。仅结合一个实施方式讨论的动作、元素和特征不意图被从其它实施方式或实施方式中的类似角色排除。

本文所使用的短语和术语是出于描述的目的且不应视为是限制性的。“包括”、“具有”、“包含”、“涉及”、“以...为特征”、“特征在于”及其在本文中的变体的使用意图涵盖其后列出的项目、其等同物和附加项目以及由其后排他地列出的项目组成的替选实施方式。在一个实施方式中,本文所述的系统和方法由所述元素、动作或部件中的一个、多于一个的组合或全部组成。

对在本文中被以单数引用的系统和方法的实施方式或元素或动作的任何引用也可以涵盖包括多个这些元素的实施方式,并且在本文中对任何实施方式或元素或动作的复数形式的任何引用也可涵盖仅包括单个元素的实施方式。以单数或复数形式的引用不意图使本公开的系统或方法、其部件、动作或元素限于单数或复数配置。基于任何信息、动作或元素的对任何动作或元素的引用可包括其中该动作或元素至少部分地基于任何信息、动作或元素的实施方式。

在本文中公开的任何实施方式可被与任何其它实施方式或实施例组合,或者对“实施方式”、“一些实施方式”、“替选实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是互斥的,并且意图指示结合该实施方式所述的特定特征、结构或特性可被包括在至少一个实施方式中。如本文所使用的此类术语不一定全部指同一实施方式。可以以与在本文中公开的方面和实施方式一致的任何方式包括性地或排他性地将任何实施方式与任何其它实施方式组合。

可将对“或”的引用理解为包括性的,使得使用“或”描述的任何术语可指示所述术语中的单个、多于一个以及全部中的任何一个。

在附图、详细描述或任何权利要求中的技术特征后跟附图标记的情况下,该附图标记是出于增加附图、详细描述以及权利要求的可理解性的唯一目的而包括的。因此,附图标记及其存在都对任何权利要求的元素的范围没有任何限制性效果。

在不脱离其特性的情况下可用其它特定形式来体现本文所述的系统和方法。虽然在本文中提供的示例涉及提供跨站点自动播放媒体,但本文所述的系统和方法能包括应用于其他环境。前述实施方式是说明性的而非限制所述系统和方法。本文所述的系统和方法的范围因此由所附权利要求而不是前述描述指示,并且在权利要求的等同物的意义和范围内的改变被涵盖在其中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1