发明内容
有鉴于此,本发明实施例提供了一种请求资源的方法和装置,以减少HTTP请求时的传输流量,避免不必要的流量浪费。所述技术方案如下:
一方面,提供了一种请求资源的方法,所述方法包括:
向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,所述资源包括子资源;
接收所述服务器返回的描述所述资源的文档信息;
根据所述文档信息得到所述子资源的类型,根据所述子资源的类型确定所述子资源对应的描述项;
对请求获取所述子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;
将经过处理后的第二HTTP请求消息发送给所述服务器,请求获取所述子资源。
其中,根据所述子资源的类型确定所述子资源对应的描述项,包括:
查找预设的资源类型与描述项的对应关系,得到所述子资源的类型对应的描述项。
进一步地,根据所述子资源的类型确定所述子资源对应的描述项之前,还包括:
预先建立资源类型与描述项的对应关系;
其中,每种资源类型对应的描述项为与该资源类型相关的描述项,且每种资源类型对应一个或一个以上描述项。
通过预先建立资源类型与描述项的对应关系,在确定当前请求的子资源的描述项时,可以查找该对应关系得到所述子资源的类型对应的描述项,容易实现,并且方便后续对请求头部进行简化处理。
其中,根据所述文档信息得到所述子资源的类型,包括:
解析所述文档信息得到所述文档信息中描述的所述子资源的信息;
根据所述子资源的信息确定所述子资源的类型。
所述文档信息中描述有所述子资源的信息,所述子资源的信息包括子资源的类型,因此,通过解析所述文档信息可以得到所述子资源的类型,实现方便又快捷。
其中,向服务器发送第一HTTP请求消息,请求获取资源,包括:
与所述服务器建立连接;
在当前的连接下首次向服务器发送第一HTTP请求消息,请求获取资源。
所述第一HTTP请求消息请求的资源为当前连接下首次请求的资源,其中包括子资源,通过对请求子资源的第二HTTP请求消息的请求头的简化处理,可以减少传输流量,达到了避免不必要的流量浪费的效果。
另一方面,提供了一种请求资源的装置,所述装置包括:
发送模块,用于向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,所述资源包括子资源;
接收模块,用于接收所述服务器返回的描述所述资源的文档信息;
确定模块,用于根据所述文档信息得到所述子资源的类型,根据所述子资源的类型确定所述子资源对应的描述项;
处理模块,用于对请求获取所述子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;
所述发送模块,还用于将经过处理后的第二HTTP请求消息发送给所述服务器,请求获取所述子资源。
其中,所述确定模块包括:
获取单元,用于根据所述文档信息得到所述子资源的类型;
查找单元,用于查找预设的资源类型与描述项的对应关系,得到所述子资源的类型对应的描述项。
进一步地,所述装置还包括:
建立模块,用于预先建立资源类型与描述项的对应关系;
其中,每种资源类型对应的描述项为与该资源类型相关的描述项,且每种资源类型对应一个或一个以上描述项。
通过预先建立资源类型与描述项的对应关系,在确定当前请求的子资源的描述项时,可以查找该对应关系得到所述子资源的类型对应的描述项,容易实现,并且方便后续对请求头部进行简化处理。
其中,所述确定模块包括:
解析单元,用于解析所述文档信息得到所述文档信息中描述的所述子资源的信息,根据所述子资源的信息确定所述子资源的类型;
确定单元,用于根据所述子资源的类型确定对应的描述项。
所述文档信息中描述有所述子资源的信息,所述子资源的信息包括子资源的类型,因此,通过解析所述文档信息可以得到所述子资源的类型,实现方便又快捷。
其中,所述发送模块包括:
连接单元,用于与所述服务器建立连接;
发送单元,用于在当前的连接下首次向服务器发送第一HTTP请求消息,请求获取资源。
所述第一HTTP请求消息请求的资源为当前连接下首次请求的资源,其中包括子资源,通过对请求子资源的第二HTTP请求消息的请求头的简化处理,可以减少传输流量,达到了避免不必要的流量浪费的效果。
本发明实施例提供的技术方案带来的有益效果是:通过向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,所述资源包括子资源;接收所述服务器返回的描述所述资源的文档信息;根据所述文档信息得到所述子资源的类型,根据所述子资源的类型确定所述子资源对应的描述项;对请求所述子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;将经过处理后的第二HTTP请求消息发送给所述服务器,请求获取所述子资源,由于无需在请求头部中包含所有的描述项,根据子资源的类型进行了相应的简化处理,减少了HTTP请求时的传输流量,避免了不必要的流量浪费。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例涉及HTTP协议,用于网络侧的服务器向用户侧的终端传输HTML、XHTML(eXtensible Hyper Text Markup Language,可扩展超文本标记语言)、XML(Extensible Markup Language,扩展性标记语言)等文档。用户侧的终端可以通过发送HTTP请求消息来向服务器请求所需的资源。
所述HTTP请求消息中包括请求头部(RequestHead),该请求头部通常包括多个头域。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符。头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。HTTP请求消息中每一个头域都具有不同的含义。例如,Accept头域指定客户端能够接收的内容类型;Accept-Charset头域为浏览器可以接受的字符编码集;Accept-Encoding头域指定浏览器可以支持的web服务器返回内容压缩编码类型;Accept-Language头域为浏览器可接受的语言;Cache-Control头域指定请求和响应遵循的缓存机制;Connection头域表示是否需要持久连接(HTTP1.1默认进行持久连接);Date头域为请求发送的日期和时间;Host头域指定请求的服务器的域名和端口号;Pragma头域用来包含实现特定的指令;User-Agent头域包含发出请求的用户信息;Warning头域为关于消息实体的警告信息,等等。
实施例1
参见图1,本实施例提供了一种请求资源的方法,包括:
101:向服务器发送第一HTTP请求消息,请求获取资源,该资源包括子资源;
102:接收服务器返回的描述该资源的文档信息;
103:根据该文档信息得到子资源的类型,根据子资源的类型确定该子资源对应的描述项;
104:对请求获取子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;
105:将经过处理后的第二HTTP请求消息发送给服务器,请求获取所述子资源。
本实施例提供的上述方法可以由终端来执行,所述终端包括但不限于:计算机、笔记本电脑、手机、平板电脑等等。所述资源可以为一个网页,所述资源可以包括一个或者一个以上子资源。所述子资源的类型包括但不限于:文本、图像、视频、音频等等,本实施例对此不做具体限定。
通常,请求的资源中包含的子资源是大量的,对于其中每一个子资源都可以执行上述方法来简化子资源的请求,因此,对于大量的子资源请求,不用发送不必要的头部信息,从而可以节约宝贵的网络流量,也不会增加任何其他成本或负担。
在第一种实施方式下,根据子资源的类型确定该子资源对应的描述项,包括:
查找预设的资源类型与描述项的对应关系,得到该子资源的类型对应的描述项。
基于上述第一种实施方式,在第二种实施方式下,根据子资源的类型确定该子资源对应的描述项之前,还包括:
预先建立资源类型与描述项的对应关系;
其中,每种资源类型对应的描述项为与该资源类型相关的描述项,且每种资源类型对应一个或一个以上描述项。
在第三种实施方式下,根据该文档信息得到子资源的类型,包括:
解析该文档信息得到该文档信息中描述的子资源的信息;
根据该子资源的信息确定子资源的类型。
在第四种实施方式下,向服务器发送第一HTTP请求消息,请求获取资源,包括:
与服务器建立连接;
在当前的连接下首次向服务器发送第一HTTP请求消息,请求获取所述资源。
本实施例提供的上述方法,通过向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,所述资源包括子资源;接收所述服务器返回的描述所述资源的文档信息;根据所述文档信息得到所述子资源的类型,根据所述子资源的类型确定该子资源对应的描述项;对请求所述子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;将经过所述处理后的第二HTTP请求消息发送给所述服务器,请求获取所述子资源,由于无需在请求头部中包含所有的描述项,根据子资源的类型进行了相应的简化处理,减少了HTTP请求时的传输流量,避免了不必要的流量浪费。
实施例2
参见图2,本实施例提供了一种请求资源的方法,包括:
201:向服务器发送第一HTTP请求消息,请求获取资源,该资源包括子资源;
所述资源可以为一个网页,所述资源可以包括一个或者一个以上子资源。所述子资源的类型包括但不限于:文本、图像、视频、音频等等,本实施例对此不做具体限定。
202:接收服务器返回的描述该资源的文档信息;
所述文档信息为与该资源对应的源代码文件,其中描述了该资源内所有内容的相关信息,包括各个子资源的信息。
203:根据该文档信息得到所述子资源的类型;
其中,所述子资源的信息包括但不限于:子资源的名称、类型、大小、链接地址等等,本实施例对此不做具体限定。所述子资源的类型包括但不限于:文本、图像、视频、音频等等。
204:查找预设的资源类型与描述项的对应关系,得到该子资源的类型对应的描述项;
本实施例中,可以预先建立资源类型与描述项的对应关系;
其中,每种资源类型对应的描述项为与该资源类型相关的描述项,且每种资源类型对应一个或一个以上描述项。本实施例涉及的描述项是指HTTP请求消息的请求头部中的头域。
通常,一种资源类型会对应多个描述项,具体地,可以根据需要设置上述对应关系,对于与当前资源类型相关的描述项可以设置在该对应关系中,而与当前资源类型无关的描述项则不用设置在该对应关系中,本实施例对此不做具体限定。
205:对请求获取子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;
其中,由于保留的所述描述项为与该子资源的类型相关的描述项,其余描述项与该子资源的类型无关,因此,通过删除其余描述项,在不影响服务器进行解析和响应的情况下,达到了对该第二HTTP请求消息的请求头部进行简化处理的效果。
206:将经过处理后的第二HTTP请求消息发送给服务器,请求获取所述子资源。
本实施例提供的上述方法可以由终端来执行,所述终端包括但不限于:计算机、笔记本电脑、手机、平板电脑等等。
本实施例提供的上述方法,通过向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,所述资源包括子资源;接收所述服务器返回的描述所述资源的文档信息;根据所述文档信息得到所述子资源的类型,根据所述子资源的类型确定该子资源对应的描述项;对请求所述子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;将经过所述处理后的第二HTTP请求消息发送给所述服务器,请求获取所述子资源,由于无需在请求头部中包含所有的描述项,根据子资源的类型进行了相应的简化处理,减少了HTTP请求时的传输流量,避免了不必要的流量浪费。
另外,通过预先建立资源类型与描述项的对应关系,在确定当前请求的子资源的描述项时,可以查找该对应关系得到所述子资源的类型对应的描述项,容易实现,并且方便后续对请求头部进行简化处理。所述文档信息中描述有所述子资源的信息,所述子资源的信息包括子资源的类型,因此,通过解析所述文档信息可以得到所述子资源的类型,实现方便又快捷。所述第一HTTP请求消息请求的资源为当前连接下首次请求的资源,其中包括子资源,通过对请求子资源的第二HTTP请求消息的请求头的简化处理,可以减少传输流量,达到了避免不必要的流量浪费的效果。
实施例3
参见图3,本实施例提供了一种请求资源的方法,包括:
301:向服务器发送第一HTTP请求消息,请求获取资源,该资源包括子资源;
其中,向服务器发送第一HTTP请求消息,请求获取资源,可以包括:
与服务器建立连接;在当前的连接下首次向服务器发送第一HTTP请求消息,请求获取所述资源。
所述资源可以为一个网页,所述资源可以包括一个或者一个以上子资源。所述子资源的类型包括但不限于:文本、图像、视频、音频等等,本实施例对此不做具体限定。
所述第一HTTP请求消息可以由本地的浏览器或下载工具等发出,具体地,可以为HTTP GET请求消息。所述第一HTTP请求消息用于请求获取所述资源。例如,发送HTTP GET请求消息请求获取www.sina.com.cn新浪首页的内容,该首页包括文本、图像、视频等内容。
302:接收服务器返回的描述该资源的文档信息;
所述文档信息为与该资源对应的源代码文件,其中描述了该资源内所有内容的相关信息,包括各个子资源的信息。例如,请求一个html网页时,该文档信息为所请求的网页对应的html文件,其中包括该网页上的各项子资源的信息。
303:解析该文档信息得到该文档信息中描述的所述子资源的信息;
所述子资源的信息包括但不限于:子资源的名称、类型、大小、链接地址等等,本实施例对此不做具体限定。
本实施例中,所述子资源的类型包括但不限于:文本、图像、视频、音频等等。例如:GIF(Graphics Interchange Format,图像交换格式)图像资源,text文本资源,HTML网页资源,CSS(Cascading Style Sheet,级联样式表)资源,JS(Javascript,脚本语言)资源、插件资源、MP3音乐资源、AVI视频资源等等。
304:根据该子资源的信息确定子资源的类型;
通过解析所述文档信息可以得到其中描述的子资源的信息,从该子资源的信息中提取出子资源的类型,以便后续根据该类型确定对应的描述项。
305:查找预设的资源类型与描述项的对应关系,得到该子资源的类型对应的描述项;
本实施例中,可以预先建立资源类型与描述项的对应关系;
其中,每种资源类型对应的描述项为与该资源类型相关的描述项,且每种资源类型对应一个或一个以上描述项。本实施例涉及的描述项是指HTTP请求消息的请求头部中的头域。
通常,一种资源类型会对应多个描述项,具体地,可以根据需要设置上述对应关系,对于与当前资源类型相关的描述项可以设置在该对应关系中,而与当前资源类型无关的描述项则不用设置在该对应关系中,本实施例对此不做具体限定。
306:对请求获取子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;
其中,由于保留的所述描述项为与该子资源的类型相关的描述项,其余描述项与该子资源的类型无关,因此,通过删除其余描述项,在不影响服务器进行解析和响应的情况下,达到了对该第二HTTP请求消息的请求头部进行简化处理的效果。
307:将经过处理后的第二HTTP请求消息发送给服务器,请求获取所述子资源。
下面以一个实例进行说明。本地的终端需要向服务器获取一个图像资源,首先生成一个HTTP请求消息,其请求行和请求头部具体如下:
GET/beijing/40101018/HTTP/1.1
//请求行RequestLine,表示使用GET方法请求资源,具有该资源的服务器所在地为北京,使用HTTP/1.1协议
//以下为请求头部RequestHead
Host:hotel.elong.com//指定请求的服务器的域名和端口号,这里为hotel.elong.com
Connection:keep-alive//是否与服务器保持持久连接,这里为保持与服务器的连接
Accept://指定终端能够接收的内容类型
例如,该域值为text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8;则表明客户端能够解析的文本格式包括html、xhtml、xml或者其他任意格式,客户端最优先解析的文本格式为html,解析xhtml及xml的接受程度为0.9,解析除上述格式外的其它文本格式的接受程度为0.8;
User-Agent:Mozilla/5.0(Linux;U;Android4.1.1;zh-cn;MI2Build/JRO03L)AppleWebKit/534.30(KHTML,like Gecko)Version/4.0Mobile Safari/534.30
//终端信息,这里包括终端的操作系统信息Android,以及终端的类型Mobile等信息
Accept-Encoding:gzip,deflate
//终端的浏览器可以支持的web服务器返回内容的压缩编码类型,这里包括gzip和deflate格式
Accept-Language:zh-CN,en-US
//终端的浏览器可接受的语言,这里包括中文和英文Accept-Charset:utf-8,iso-8859-1,utf-16,*;q=0.7
//终端的浏览器可以接受的字符编码集,这里包括utf-8和iso-8859-1及utf-16
Cache-Control:no-cache
//指定请求和响应遵循的缓存机制,这里没有缓存机制
对于当前连接下终端首次发起的HTTP请求消息,需要在请求头部包含上述所有头域,但是如果是获取子资源,且该子资源为图像资源,则对于待获取的图像资源而言,可以将该请求头部中与图像资源无关的头域删除,从而简化消息头部,减少传输流量。具体地,可以将请求头部中的Accept头域、User-Agent头域、Accept-Encoding头域、Accept-Language头域和Accept-Charset头域删除,其中,仅User-Agent一项就可以节省149个字节的流量,可见,经过上述简化处理,能够极大地减少HTTP请求时的传输流量,避免不必要的流量浪费。
本实施例提供的上述方法可以由终端来执行,所述终端包括但不限于:计算机、笔记本电脑、手机、平板电脑等等。
本实施例提供的上述方法,通过向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,所述资源包括子资源;接收所述服务器返回的描述所述资源的文档信息;根据所述文档信息得到所述子资源的类型,根据所述子资源的类型确定该子资源对应的描述项;对请求所述子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;将经过所述处理后的第二HTTP请求消息发送给所述服务器,请求获取所述子资源,由于无需在请求头部中包含所有的描述项,根据子资源的类型进行了相应的简化处理,减少了HTTP请求时的传输流量,避免了不必要的流量浪费。
另外,通过预先建立资源类型与描述项的对应关系,在确定当前请求的子资源的描述项时,可以查找该对应关系得到所述子资源的类型对应的描述项,容易实现,并且方便后续对请求头部进行简化处理。所述文档信息中描述有所述子资源的信息,所述子资源的信息包括子资源的类型,因此,通过解析所述文档信息可以得到所述子资源的类型,实现方便又快捷。所述第一HTTP请求消息请求的资源为当前连接下首次请求的资源,其中包括子资源,通过对请求子资源的第二HTTP请求消息的请求头的简化处理,可以减少传输流量,达到了避免不必要的流量浪费的效果。
实施例4
参见图4,本实施例提供了一种请求资源的装置,包括:
发送模块401,用于向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,该资源包括子资源;
接收模块402,用于接收该服务器返回的描述该资源的文档信息;
确定模块403,用于根据该文档信息得到该子资源的类型,根据该子资源的类型确定该子资源对应的描述项;
处理模块404,用于对请求获取该子资源的第二HTTP请求消息进行处理,将请求头部中的该描述项保留并删除其余描述项;
该发送模块401,还用于将经过该处理后的第二HTTP请求消息发送给该服务器,请求获取该子资源。
参见图5,确定模块403可以包括:
获取单元403a,用于根据该文档信息得到该子资源的类型;
查找单元403b,用于查找预设的资源类型与描述项的对应关系,得到该子资源的类型对应的描述项。
进一步地,上述装置还可以包括:
建立模块405,用于预先建立资源类型与描述项的对应关系;
其中,每种资源类型对应的描述项为与该资源类型相关的描述项,且每种资源类型对应一个或一个以上描述项。
参见图6,确定模块403可以包括:
解析单元403c,用于解析该文档信息得到该文档信息中描述的该子资源的信息,根据该子资源的信息确定该子资源的类型;
确定单元403d,用于根据该子资源的类型确定对应的描述项。
参见图7,发送模块401可以包括:
连接单元401a,用于与该服务器建立连接;
发送单元401b,用于在当前的连接下首次向服务器发送第一HTTP请求消息,请求获取资源。
本实施例提供的上述装置可以执行上述任一方法实施例中提供的方法,详细过程见方法实施例中的描述,此处不赘述。所述装置可以应用于终端中,该终端包括但不限于:计算机、笔记本电脑、手机、平板电脑等等,本发明实施例对此不做具体限定。
本实施例提供的上述装置,通过向服务器发送第一超文本传输协议HTTP请求消息,请求获取资源,所述资源包括子资源;接收所述服务器返回的描述所述资源的文档信息;根据所述文档信息得到所述子资源的类型,根据所述子资源的类型确定该子资源对应的描述项;对请求所述子资源的第二HTTP请求消息进行处理,将请求头部中的所述描述项保留并删除其余描述项;将经过所述处理后的第二HTTP请求消息发送给所述服务器,请求获取所述子资源,由于无需在请求头部中包含所有的描述项,根据子资源的类型进行了相应的简化处理,减少了HTTP请求时的传输流量,避免了不必要的流量浪费。
另外,通过预先建立资源类型与描述项的对应关系,在确定当前请求的子资源的描述项时,可以查找该对应关系得到所述子资源的类型对应的描述项,容易实现,并且方便后续对请求头部进行简化处理。所述文档信息中描述有所述子资源的信息,所述子资源的信息包括子资源的类型,因此,通过解析所述文档信息可以得到所述子资源的类型,实现方便又快捷。所述第一HTTP请求消息请求的资源为当前连接下首次请求的资源,其中包括子资源,通过对请求子资源的第二HTTP请求消息的请求头的简化处理,可以减少传输流量,达到了避免不必要的流量浪费的效果。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。