具体实施例
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
如图1所示的网络架构中,用户设备通过传输协议向内容源服务器发送请求消息,请求获取内容源服务器上的目标对象。本发明实施例中提到的目标对象是指存储在内容源服务器上给用户设备提供访问读取的内容,包括目标文件和目标流。用户设备发送的请求消息要经由边缘服务器,然后边缘服务器将用户设备的请求消息发送到内容源服务器。
用户设备向内容源服务器发送请求消息通常使用超文本传输协议(HypertextTransferProtocol,以下简称HTTP)、文件传输协议(FileTransferProtocol,以下简称FTP)、实时流传输协议(RealTimeStreamingProtocol,以下简称RTSP)等传输协议。
通常HTTP消息由一个起始行、一个或者多个头域、一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名、冒号(:)和域值三部分组成。其中HTTP消息可以携带range头域,用于指定目标文件的范围的开始位置和结束位置,如range:200-300。range头域可以请求目标文件的一个或者多个子范围。例如,表示头500个字节:bytes=0-499;表示第二个500字节范围:bytes=500-999;表示最后500个字节:bytes=-500;表示500字节以后的范围:bytes=500-;第一个和最后一个字节:bytes=0-0,-1;同时也可以指定几个范围:bytes=500-600,601-999。
FTP协议是一个8位的用户设备与内容源服务器之间的传输协议,能操作任何类型的文件而不需要进一步处理,FTP协议中的REST命令携带的数值,表示对目标文件请求范围为从该数值起至目标文件末尾,内容源服务器的目标文件从该数值起开始传输。如使用FTP协议中REST10,表示目标文件从第10个字节开始传输至文件末尾。
RTSP定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP协议中也可以携带range头域,用来表示所请求内容源服务器上目标流的时间戳。本发明实施例中时间戳是指所请求的目标流的播放时间范围。
本发明实施例在内容源服务器上预置门限T,该门限T为内容源服务器上用户所请求的目标文件或目标流某一位置起的区间范围。对不同的目标文件或目标流可以采用不同的表示方法,也可以预置不同的起始位置。
可以用字节数来表示,可以根据实际需要预置相应的范围,表示为T=[s,t],其中s表示目标文件的范围起始字节的值,t表示目标文件的范围结束字节的值。如将T=[0,199],则表示从目标文件开始位置起200字节范围内,相应的s为0,t为199。如T=[0,0],s=0,t=0,表示内容源服务器上目标对象的初始位置。
也可以用时间戳来表示,时间戳也可以根据实际需要设置相应的播放范围,表示为T=[s,t],其中s表示目标流的范围起始时间点的值,t表示目标流的范围结束时间点的值,如T=[2,200],则表示从相应目标流的第2秒到第200秒的播放范围,相应的s为2,t为200。如T=[0,0],s=0,t=0秒,表示内容源服务器上相应目标流的起始播放位置。
门限T通常基于用户对内容源服务器上目标对象的请求习惯所获得的统计数据来设置。即通常情况下首次用户请求请求内容源服务器上目标对象的起始范围。在这一范围外的一般则为非首次用户请求。
这样当有多个用户同时请求同一目标文件或目标流时,本发明实施例通过判断用户发送的请求消息没有携带目标文件或目标流的范围确定为首次用户请求,如果请求消息携带目标文件或目标流的范围,则进一步判断请求消息携带的目标文件或目标流的范围与门限T是否有交集,如果有交集则是首次用户请求,如果目标对象的范围与所述门限T无交集,则为非首次用户请求。
本发明实施例中的首次用户请求是指首次访问目标对象的用户请求。非首次用户请求是指在进行本次访问该目标对象之前至少已经访问过一次该目标对象的用户请求。
本发明实施例中给出了使用常见的标准文件传输协议(如HTTP、FTP)和数据流传输协议(如RTSP)携带所要请求的目标对象的范围,但是本发明方案并不限于本实施例所给出的范围。使用其他能够携带目标对象的范围的传输协议发送用户请求的情况下,本发明方案均可适用。
本发明实施例一提供了一种判断用户请求的方法,如图2所示,包括:
步骤201:内容源服务器接收用户设备发送的请求消息。
可选地,所述内容源服务器通过边缘服务器接收所述用户设备发送的请求消息。
步骤202:判断所述请求消息是否携带所要请求的目标对象的范围:
如果没有携带,则判断为首次用户请求;
如果携带,且所述目标对象的范围与门限有交集,则判断为首次用户请求;若所述目标对象的范围与所述门限无交集,则判断为非首次用户请求。
可选地,所述门限为所述内容源服务器上从所述目标对象开始位置起的区间范围;
更具体地,所述目标对象开始位置起的区间范围,具体包括:标准文件传输协议请求的目标文件开始位置起的字节范围或数据流传输协议请求的目标流开始位置起的时间戳。
可选地,所述门限在所述内容源服务器上预置;
具体地,所述请求消息采用标准文件传输协议或数据流传输协议携带所要请求的目标对象的范围;
更具体地,当所述标准文件传输协议包括超文本传输协议HTTP,或当所述数据流传输协议包括实时流传输协议RTSP时,通过HTTP或RTSP的range头域携带所要请求的目标对象的范围;
更具体地,当所述标准文件传输协议包括文件传输协议FTP时,通过所述FTP的REST命令携带所要请求的目标文件的范围。
通过本实施例,不需要边缘服务器和内容源服务器都支持传输协议的扩展,即可以判断用户请求是否为首次用户请求,降低了对设备的要求,节约了成本。
本发明实施例二提供了一种判断用户请求的方法,如图3所示,包括以下步骤:
步骤301:用户设备发送请求消息。
两个用户设备使用HTTP协议同时向内容源服务器同一目标文件发起请求服务,这两个用户设备分别表示为UE1和UE2。该用户请求消息可以在range头域中携带请求内容源服务器上目标文件的范围。
如UE1的请求消息中,range头域请求内容源服务器上目标文件的范围为从文件开始位置起300个字节,表示为bytes=0-299。UE2的请求消息中,range头域请求内容源服务器上目标文件的范围为从开始位置起500字节以后的范围:bytes=500-。这里请求消息也可以没有携带目标文件的范围。
步骤302:用户请求消息经边缘服务器发送到内容源服务器。
用户请求消息通过边缘服务器到达内容源服务器。该边缘服务器用于将步骤301中的用户请求消息发送到内容源服务器。
步骤303:内容源服务器判断用户请求消息是否携带range头域。
当用户请求消息没有携带range头域,即没有携带目标文件的范围,则判断该用户请求是首次用户请求。本实施中两个用户请求消息均携带range头域,则执行步骤304。
步骤304:判断是否与门限T有交集。
内容源服务器根据所提供的目标文件的不同,可以分别对各个目标文件预置门限T,也可以预置统一的门限T。该门限T可以人工预置,也可以由内容源服务器预置。该门限T是可以改变的,设定时间也是可变的。即门限T预置可以在步骤304之前任一时刻执行。如将门限T预置为T=[0,299],则表示从内容源服务器上目标文件开始位置起算300字节范围内。一般门限T预置为[0,0],但是这并不表示门限T一定要从目标文件最开始的位置起,可以根据需要预置门限T的起始范围和结束范围。门限T预置为[0,0]表示从目标文件第一个字节开始,本实施例也以T=[0,0]为例。在内容源服务器上判断两个用户发送请求消息携带的range头域中目标文件的范围与门限T是否有交集。如果有交集,则判断是首次用户请求,如果没有交集则判断是非首次用户请求。UE1发送的请求消息携带range头域为bytes=0-299,即请求目标文件前300个字节的内容,内容源服务器上的门限T=[0,0],两者比较结果表示两者有交集,所以UE1发送的用户请求为首次用户请求。UE2发送的请求消息携带的range头域为bytes=500-,即目标文件的范围为第500字节以后的内容,与门限T=[0,0]比较,没有交集,则认为UE2发送的用户请求是非首次用户请求。根据判断可知,UE1发送的用户请求为首次用户请求,而UE2发送的用户请求是非首次用户请求。
本实施例中的内容源服务器至少包括原内容服务器、缓存服务器中的一种,但并不限于原内容服务器和缓存服务器。
通过本实施例,可以在不改变HTTP请求协议的前提下,内容源服务器通过预置门限T与请求协议中range头域的携带目标文件的范围进行比较来判断是否为首次用户请求。降低了实施的难度,同时也降低了对设备的要求,节约了成本。
本实施例三提供了一种判断用户请求的方法,使用FTP协议向内容源服务器请求服务。如图4所示,包括以下步骤:
步骤401:用户设备发送请求消息。
两个用户设备使用FTP协议向内容源服务器同一目标文件发起请求,该请求消息中可以携带REST命令这两个用户设备分别表示为UE1和UE2。REST命令表示要从内容源服务器上的目标文件读取的某一字节至目标文件末尾的范围。
UE1请求消息携带的REST命令为REST20,表示从内容源服务器上目标文件第20个字节处开始读取至目标文件末尾,表示为REST20。UE2请求消息携带的REST的为REST0,表示从内容源服务器上目标文件第0个字节处开始读取至目标文件末尾,表示为REST0。
步骤402:用户请求消息经边缘服务器。
该用户请求消息通过边缘服务器到达相应的内容源服务器执行请求。该边缘服务器用于将用户请求消息发送内容源服务器。
步骤403:内容源服务器判断用户请求消息是否携带REST命令。
当用户请求消息没有携带REST命令,即没有目标文件的请求范围,则判断该用户请求是首次用户请求。本发明实施例中两个用户请求消息中均携带REST命令,则执行步骤404。
步骤404:判断是否与门限T有交集。
内容源服务器根据所提供的目标文件的不同,可以分别对各个目标文件预置门限T,也可以预置统一的门限T。该门限T可以人工预置,也可以由内容源服务器预置。该门限T是可变的,设定时间也是可变的。门限T预置可以在步骤404之前任意时刻执行。如将门限T预置为T=[0,199],则表示从内容源服务器相应目标文件第200字节以前范围内。一般门限T预置为[0,0],但是这并不表示门限T一定要从目标文件最开始的位置起,可以根据需要预置门限T的起始范围。T=[0,0]表示从文件第一个字节开始,本实施例也以T=[0,0]为例。在内容源服务器上判断两个用户请求消息REST命令所携带的目标文件的范围与门限T是否有交集。如果有交集,则判断是首次用户请求,如果没有交集则判断是非首次用户请求。UE1发送的请求消息中携带的REST命令为REST20,内容源服务器上该请求的目标文件的门限T=[0,0],两者比较结果表示两者没有交集所以UE1发送的该请求为非首次用户请求。对UE2发送的请求消息中REST命令为REST0,与门限T=[0,0]比较,有交集,则UE2发出的该请求为首次用户请求。根据比较结果可知,UE1发出的该请求为非首次用户请求,而UE2发出的该请求为首次用户请求。
本实施例中的内容源服务器至少包括原内容服务器、缓存服务器中的一种,但并不限于原内容服务器和缓存服务器。
通过本实施例,可以在不改变FTP请求协议的前提下,内容源服务器通过门限T与请求协议中REST的目标文件的范围来判断是否为首次用户请求。降低了实施的难度,同时也降低了对设备的要求,节约了成本。
本发明实施例四提供了一种为判断用户请求的方法,使用RTSP协议向内容源服务器请求服务,如图5所示,包括以下步骤:
步骤501:用户设备发送请求消息。
两个用户设备使用RTSP协议向内容源服务器上的同一目标流发送请求消息,均携带range头域,用于表示读取内容源服务器上所请求的目标流的播放时间范围,即流的时间戳。这两个用户分别表示为UE1和UE2,UE1的range头域携带内容源服务器上目标流的播放范围为从流开始播放时间位置开始,表示为range:npt=0.000-,即从0.000秒开始请求播放,UE2则请求从15秒处开始播放,表示为range:npt=15.000-。
步骤502:用户请求消息经边缘服务器。
该用户请求消息通过边缘服务器到达相应的内容源服务器执行相应的用户请求。该边缘服务器用于将两个用户请求消息发送到内容源服务器。
步骤503:内容源服务器判断用户请求消息中是否携带range头域。
当用户请求消息中没有携带range头域,则判断该用户请求是首次用户请求。本实施例中两个用户请求消息均携带range头域,则执行步骤504。
步骤504:判断是否与门限T有交集。
内容源服务器根据所提供的目标流的不同,可以分别对各个目标流预置门限T,也可以对内容源服务器上的目标流预置统一的门限T。该门限T可以人工预置,也可以由服务器预置。该门限T是可变的,设定时间也是可变的。门限T预置可以在步骤504之前任意时刻执行。如将门限T预置为T=[0,0],则表示从内容源服务器相应目标流的开始位置,即从目标流0.00秒处开始请求播放。本实施例也以T=[0,0]为例,但是这并不表示门限T一定要从目标文件最开始的位置起,可以根据需要预置门限T的起始范围。。在内容源服务器上判断用户设备发送的请求消息range头域携带的目标流的范围与门限T是否有交集。如果有交集,则判断为首次用户请求,如果没有交集则判断是非首次用户请求。UE1发送的请求消息携带range头域npt=0.000-,内容源服务器上的门限T=[0,0],两者比较结果表示两者有交集,所以判断UE1发送的该请求为首次用户请求。UE2发送的请求消息携带range头域npt=15.000-,即表示从目标流第15.000秒以后开放请求播放,与门限T=[0,0]比较,没有交集,则判断UE2发送的该请求是非首次用户请求。根据比较结果可知,UE1发送的请求为首次用户请求,而UE2发送的请求为非首次用户请求。
本实施例中的内容源服务器至少包括原内容服务器、缓存服务器中的一种,但并不限于原内容服务器和缓存服务器。
通过本实施例,可以在不改变RTSP请求协议的前提下,内容源服务器通过预置门限与请求协议range头域携带的目标流的范围进行比较来判断是否为首次用户请求。降低了实施的难度,同时也降低了对设备的要求,节约了成本。
本发明实施例五提供了一种内容源服务器,如图6所示,包括:
接收单元601,用于接收用户设备发送的请求消息。该用户请求消息可以通过标准文件传输协议或数据流传输协议携带目标对象的范围。标准文件传输协议包括超文件传输协议HTTP、文件传输协议FTP。数据流传输协议包括实时流传输协议RTSP。当标准文件传输协议包括HTTP,数据流传输协议包括RSTP协议时,通过HTTP或RTSP的range头域携带所要请求的目标对象的范围。当标准文件传输协议包括文件传输协议FTP时,通过FTP的REST命令携带所要请求的目标文件的范围。通常传送该用户请求消息的标准文件传输协议包括HTTP协议、FTP协议,传送该用户请求消息的数据流传输协议为RTSP协议等,但是并不限于这些协议。接收单元601接收该用户请求消息后,向判断单元602传送该用户请求消息。
判断单元602对接收单元601接收的用户请求消息进行判断,判断用户请求消息是否携带目标对象的范围。如果用户请求消息没有携带目标对象的范围,则判断该用户请求为首次用户请求。如果用户请求消息携带目标对象的范围,则判断单元602还将用户请求消息携带的目标对象的范围与门限T进行比较,如果有交集,则判断该用户请求为首次用户请求;如果用户请求消息携带的目标对象的范围与门限T没有交集,则判断该用户请求为非首次用户请求。门限T为内容源服务器上从目标对象开始位置起的区间范围。门限T具体为标准文件传输协议请求的目标文件开始位置起的字节范围或数据流传输协议请求的目标流开始位置起的时间戳。根据实际需要,门限T并不限制从目标对象的开始位置起的区间范围。可以根据实际需要预置目标对象某一位置为门限T的开始位置。
本实施例提供的内容源服务器在不改变请求协议的情况下,实现了判断用户请求是否为首次用户请求的效果,并且降低了对设备的要求,节约了成本。
本发明实施例六提供了一种内容源服务器,包括:
接收单元701,用于接收用户设备发送的请求消息。该用户请求消息可以通过标准文件传输协议或数据流传输协议携带目标对象的范围。标准文件传输协议包括超文件传输协议HTTP、文件传输协议FTP。数据流传输协议包括实时流传输协议RTSP。当标准文件传输协议包括HTTP,数据流传输协议包括RTSP协议时,通过HTTP或RTSP的range头域携带所要请求的目标对象的范围。当标准文件传输协议包括文件传输协议FTP时,通过FTP的REST命令携带所要请求的目标文件的范围。通常传送该用户请求消息的标准文件传输协议包括HTTP协议、FTP协议,传送该用户请求消息的数据流传输协议为RTSP协议等,但是并不限于这些协议。接收单元701接收该用户请求消息后,向判断单元702传送该用户请求消息。判断单元702对接收单元701接收的用户请求消息进行判断,判断用户请求消息是否携带目标对象的范围。如果用户请求消息没有携带目标对象的范围,则判断该用户请求为首次用户请求。如果用户请求消息携带目标对象的范围,则判断单元702还将用户请求消息携带的目标对象的范围与门限T进行比较,如果有交集,则判断该用户请求为首次用户请求,如果用户请求消息携带的目标对象的范围与门限T没有交集,则判断该用户请求为非首次用户请求。门限T为内容源服务器上从目标对象开始位置起的区间范围。门限T具体为标准文件传输协议请求的目标文件开始位置起的字节范围或数据流传输协议请求的目标流开始位置起的时间戳。根据实际需要,门限T并不限制从目标对象的开始位置起的区间范围。可以根据实际需要预置目标对象某一位置为门限T的开始位置。
门限T设置单元703,用于为目标对象在内容源服务器上预置门限。该门限T通常基于用户对内容源服务器请求习惯来预置。门限T设置单元703可以在执行判断单元702之前任一时刻预置目标对象的门限T。
本实施例提供的内容源服务器在不改变请求协议的情况下,通过预置门限T实现了判断用户请求是否为首次用户请求的效果,并且降低了对设备的要求,节约了成本。
本发明实施例七提供了一种判断用户请求的系统,如图8所示,包括:
用户设备801,用于向内容源服务器802发送请求消息。该用户请求消息可以通过标准文件传输协议或数据流传输协议携带目标对象的范围。标准文件传输协议包括超文本传输协议HTTP、文件传输协议FTP。数据流传输协议包括实时流传输协议RTSP。当标准文件传输协议包括HTTP,数据流传输协议包括RTSP协议时,通过HTTP或RTSP的range头域携带所要请求的目标对象的范围。当标准文件传输协议包括文件传输协议FTP时,通过FTP的REST命令携带所要请求的目标文件的范围。通常传送该用户请求消息的标准文件传输协议包括HTTP协议、FTP协议,数据流传输协议包括RTSP协议等,但是并不限于这些协议。
内容源服务器802,判断接收到的用户设备801发送的用户请求消息是否携带所请求的目标对象的范围,如果没有携带目标对象的范围,则判断该用户请求为首次用户请求。如果用户请求消息携带目标对象的范围,则将该目标对象的范围与门限T进行比较。如果有交集,则判断该用户请求为首次用户请求,如果用户请求消息携带的目标对象的范围与门限T没有交集,则判断该用户请求为是非首次用户请求。如果用户请求消息携带所请求的目标对象的范围,并且用户请求消息是通过HTTP协议或RTSP协议传输的,则HTTP或RTSP协议的range头域可以携带目标对象的范围,内容源服务器802将该目标对象的范围与门限T比较,如果有交集,则判断用户请求为首次用户请求,如果没有交集,则判断用户请求为非首次用户请求;如果用户请求消息携带所请求的目标对象的范围,并且用户请求消息是通过FTP协议传输的则FTP协议的REST命令可以携带目标文件的范围,内容源服务器802将该目标对象的范围与门限T比较,如果有交集,则判断用户请求为首次用户请求,如果没有交集,则判断用户请求为非首次用户请求。内容源服务器802至少包括缓存服务器或原内容服务器中的一种,但不限于缓存服务器和原内容服务器。
本实施例提供的判断用户请求的系统在不改变请求协议的情况下,实现通过内容源服务器判断用户请求是否为首次用户请求,不需要内容源服务器支持传输协议的扩展,降低了对系统设备的要求,节约了成本。
本发明实施例八提供了一种判断用户请求的系统,如图9所示,包括:
用户设备901和内容源服务器903,还包括边缘服务器902。用户设备901和内容源服务器903的功能与作用分别与本发明实施例七中用户设备801和内容源服务器802相同。边缘服务器902,用于将用户设备901发送的用户请求消息发送到内容源服务器903。
本实施例提供的判断用户请求的系统在不改变请求协议的情况下,实现通过内容源服务器判断用户请求是否为首次用户请求,不需要内容源服务器和边缘服务器支持传输协议的扩展,降低了对系统设备的要求,节约了成本。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。