发明内容
为解决现有技术中的上述技术问题,本发明提出了一种域名预解析方法及装置,以缩短用户打开网页的等待时间,提升用户体验。
根据本发明一方面,其提供了一种域名预解析方法,包括:
接收网页访问请求;
获取所请求的网页,识别出所述网页中嵌入的域名;
根据预设规则确定在所述网页中需要进行预解析的域名,并在所述网页中嵌入域名解析标签,所述域名解析标签对应所述网页中需要进行预解析的域名;
将所述嵌入域名解析标签的网页发送给请求所述网页的客户端浏览器;
所述客户端浏览器根据所述域名解析标签对所述域名进行预解析。
可选地,其中,所述域名解析标签包括域名解析标识和所对应的域名链接。
可选地,其中,在所述网页中嵌入域名解析标签包括:将所述域名解析标签嵌入所述网页的头标签。
可选地,其中,根据预设规则确定所述网页中需要进行预解析的域名包括:若所述域名对应的网页排名和/或网站排名达到预设阈值,则确定所述域名需要进行预解析。
可选地,其中,根据预设规则确定所述网页中需要进行预解析的域名包括:若所述域名位于所述网页的特定位置处,则确定所述域名需要进行预解析。
可选地,其中,若所述域名位于所述网页中的菜单栏中,则确定所述域名需要进行预解析。
根据本发明另一方面,其提供了一种域名预解析装置,包括:
接收模块,用于接收网页访问请求;
识别模块,用于获取所请求的网页,识别出所述网页中嵌入的域名;
嵌入模块,用于根据预设规则确定在所述网页中需要进行预解析的域名,并在所述网页中嵌入域名解析标签,所述域名解析标签对应所述网页中需要进行预解析的域名;
发射模块,用于将所述嵌入域名解析标签的网页发送给请求所述网页的客户端浏览器;
浏览器模块,用于根据所述域名解析标签对所述域名进行预解析。
可选地,其中,所述域名解析标签包括域名解析标识和所对应的域名链接。
可选地,其中,所述嵌入模块在所述网页中嵌入域名解析标签包括:将所述域名解析标签嵌入所述网页的头标签。
可选地,其中,所述嵌入模块根据预设规则确定所述网页中需要进行预解析的域名包括:若所述域名对应的网页排名和/或网站排名达到预设阈值,则确定所述域名需要进行预解析。
可选地,其中,所述嵌入模块根据预设规则确定所述网页中需要进行预解析的域名包括:若所述域名位于所述网页的特定位置处,则确定所述域名需要进行预解析。
可选地,其中,若所述域名位于所述网页中的菜单栏中,则所述嵌入模块确定所述域名需要进行预解析。
本发明提出的上述域名预解析方法及装置,通过拦截用户请求访问的网页,遍历用户请求访问的网页内容并对其中包含的域名添加预解析标签,浏览器解析网页时根据所述预解析标签进行域名预解析。用户在打开网页中某个域名时,直接根据预解析结果访问相应的网站,而无需花费时间等待域名解析。本发明提出的上述方案在很大程度上缩短了用户访问网页的等待时间,提升了用户体验。
为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式详细说明。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
图1示出了本发明提出的一种域名预解析方法的流程图。如图1所示,该方法包括:
步骤101:接收网页访问请求;
步骤102:获取所请求的网页,识别出所述网页中嵌入的域名;
步骤103:根据预设规则确定在所述网页中需要进行预解析的域名,并在所述网页中嵌入域名解析标签,所述域名解析标签对应所述网页中需要进行预解析的域名;
步骤104:将所述嵌入域名解析标签的网页发送给请求所述网页的客户端浏览器;
步骤105:所述客户端浏览器根据所述域名解析标签对所述域名进行预解析。
本发明提出的上述域名预解析方法中域名解析标签可以由Web服务器嵌入,也可以由代理服务器或其他服务器来实现。下面以Web服务器为例详细说明本发明提出的上述域名预解析方法的各个步骤。
Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。当Web浏览器(客户端)连到服务器上并发出一个HTTP请求时,Web服务器将处理该请求并返回一个HTTP响应,以将客户端请求的文件如一个HTML页面反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。
因此,本发明的步骤101中,用户通过客户浏览器端向Web服务器发送网页请求,Web服务器接收所述网页请求。
在步骤102中,所述Web服务器根据用户的网页请求获取用户所请求的网页内容。所述Web服务器对所获取的网页内容进行解析,并识别其中嵌入的域名。一个HTML网页中经常会包含很多指向其他网页的域名,例如一个新闻主页,其上的菜单栏位置会包括很多指向各个新闻分类的域名,而一个新闻网页也会包括很多与该新闻相关的新闻网页的域名。
Web服务器可以将获取的网页解析成DOM树的形式,通过识别其中的对象元素“<a>”后面的URL获取网页中的域名。DOM是Document Object Model(文档对象模型)的缩写。HTML DOM则是专门适用于HTML/XHTML的文档对象模型,其将网页中的各个元素都看作一个对象,从而使网页中的元素可以被计算机语言获取或者编辑。HTML网页中域名对应元素“<a>”,Web服务器可以通过识别对象元素“<a>”获取网页中所有的域名。
Web服务器还可以直接遍历网页的HTML内容,通过查找标记“<ahref=”http://……”>”中对应的内容,识别出网页中的所有域名。
步骤103中,Web服务器识别出网页内容中嵌入的域名后,根据预设规则确定在所述网页中需要进行预解析的域名,并在所述网页中嵌入域名解析标签,所述域名解析标签对应所述网页中需要进行预解析的域名。
所述域名解析标签包括域名解析标识和所对应的域名链接。例如:域名解析标签可以如下表示:
<link rel="dns-prefetch"href="//www.XXX.com">
其中,域名解析标识位“dns-prefetch”,其所对应的域名链接为www.XXX.com。
Web服务器可以将上述域名解析标签嵌入到网页的HTML头标签中。嵌入域名解析标签的网页HTML头标签如下所示:
<html xmlns=“http://www.YYY.com”>
<head>
……
<link rel="dns-prefetch"href="//www.XXX.com">
</head>
以上仅仅是示例性说明,本发明不对域名解析标签的具体形式以及嵌入位置做限定。任何能够识别域名解析标签且能预先根据所嵌入的域名解析标签进行DNS解析的嵌入形式均适用于本发明提出的上述方案。
一个网页中可能包含各种各样且为数不少的域名,然而用户在浏览该网页时,大多数情况下不会点击访问其中包含的所有域名,甚至不会点击访问其中的任何一个域名。Web服务器如果在网页中嵌入从网页中识别出的所有域名对应的域名解析标签,且浏览器在解析网页向用户展示网页的同时一一对其进行预解析,显然这种方式相当不经济,且会给DNS服务器造成严重的负担。
因此,本发明中根据预设规则先确定所述网页中包含的域名中哪些需要进行预解析,对于需要进行预解析的域名添加相应的域名解析标签。所述预设规则可以事先通过统计用户对一个网页中包含的域名进行点击访问的概率来实现。而经验表明,用户对网页排名和/或网站排名较高的域名进行访问的几率较大。因此,可选地,本发明中根据预设规则确定所述网页中需要进行预解析的域名包括:若所述域名对应的网页排名和/或网站排名达到预设阈值,则确定所述域名需要进行预解析。
另外,还可以通过现有的PageRank算法衡量出网页的重要程度,并根据衡量出的重要程度得到网页或网站排名。Google会发布网页的PageRank值,Web服务器可以直接使用Google所发布的PageRank值确定网页排名。
此外,Web服务器还可以通过Alexa排名确定网页和/或网站的排名。Alexa排名提供了包括综合排名、到访流量排名、页面访问量排名等多个评价信息,Web服务器可以直接使用Alexa提供的这些排名。
例如,用户浏览网页时,如果该网页中嵌入的域名对应的网页和/或网站比较出名和/或流行,则用户点击访问这个域名的几率比点击访问用户不知道的网页和/或网站对应的域名的几率大很多,而通常这种比较出名和/或流行的网页和/或网站的排名通常较靠前,因此,Web服务器在识别出网页中的所有域名后,可以根据域名对应的网站或网页排名确定是否进行预解析。如果确定域名对应的网站和/或网页排名超过预设的排名,则在网页头标签中嵌入该域名对应的域名解析标签。例如,Web服务器从一个网页中识别出的一个域名为www.google.com,则添加google对应的域名解析标签。
此外,一个网页特定位置处的域名,往往是用户经常点击访问的域名。例如,对于一个网页,网站制作人通常在其上方和/或右边的特定位置处设置该网站的主要网页对应的域名,用户常常会点击这些域名以查看该网站中的各个主要网页信息。
通常情况下,网页上会设置相应的菜单栏,而菜单栏上的域名也是用户经常点击的对象。因此,可选地,Web服务器根据域名所嵌入的位置确定是否为菜单栏域名,如果是则确定该域名为需要预解析的域名,并为其添加对应的域名解析标签。
菜单栏的识别在本领域中也是公知技术。Web服务器可以通过识别HTML内容中<nav>菜单栏容器标签来识别哪些属于菜单栏上的域名。例如,Web服务器解析所述网页内容,获取<nav>标签对应的内容,并从其后面解析获取标签“href”后面的域名链接得到网页中的菜单栏域名。
可选地,Web服务器还可以针对不同类型的网页应用不同的预设规则。例如,对于一个新闻网站的主页,由于主页上展示的都是主要的新闻连接,因此Web服务器可以为从中识别出的所有域名添加对应的域名解析标签。当然,为了考虑效率问题,也可以仅针对新闻主分类下的域名添加域名解析标签。而对于一个论坛上打开的帖子页面,由于其中的域名有可能多半都是广告,用户点击的可能性不大,可以不对其中任何域名添加域名解析标签。
此外,Web服务器还可以根据预先注册的事件确定所述网页是否需要添加域名解析标签。如果用户通过客户端浏览器请求一个网页,Web服务器查看该网页是否注册过添加域名解析标签的事件,如果注册了,则Web服务器对该网页利用本发明提出的上述方法进行识别,并针对识别出的域名添加域名解析标签。如果该网页并没有注册,则不对其进行处理,而直接将其返回给请求网页的客户端浏览器。
可选地,Web服务器还可以针对每个网页进行预处理,即预先识别出网页中包含的域名,并针对所识别的域名应用不同的预设规则添加域名解析标签,并将所述域名解析标签缓存起来,当用户请求该网页时,直接将所述域名解析标签嵌入头标签后返回给客户端浏览器,而不需要对网页内容进行识别,以节省时间,缩短用户等待网页打开的时间。可选地,Web服务器可以选择排名较高的网页进行预处理。
上述网页排名和/或网站排名可以通过点击率的高低来衡量,而通过点击率对网页和/或网站进行排名是现有技术常见的一种排名方式,在此不进行详细说明。
步骤104中,Web服务器完成域名解析标签的嵌入工作后,将嵌入有域名解析标签的网页发送给请求所述网页的客户端浏览器。
步骤105中,客户端浏览器接收到Web服务器发送的网页后,对其进行解析并展示给用户。客户端浏览器在解析完网页中的HTML内容后,通过网页的形式展示给用户,而解析完毕用户浏览的过程中,客户端浏览器开始解析该HTML内容的头标签,在识别出头标签中的域名解析标签后,浏览器根据域名解析标签对其包含的域名进行DNS解析。
一个HTML网页包括<head>标签限定的头部和<body>限定的主体部分,头部分提供关于网页的信息,而主题部分提供网页的具体内容。头部中包含的标记是页面的标题、序言、说明等内容,其本身不作为内容来显示,但影响网页显示的效果。头部分也通常会添加一些扩展标签,如域名预解析标签。浏览器通过识别HTML网页中的标记限定的内容进行显示,通常浏览器解析完成一个网页后,开始解析头部分中添加的扩展标签,其识别扩展的标签并根据扩展标签的内容进行动作,如对于域名解析标签进行域名预解析等。
互联网上的每一台电脑都被分配一个IP地址,数据的传输实际上是在不同IP地址之间进行的。网页存储于网站服务器上,而用户请求访问一个网页时需要从网站服务器获取其所请求的网页。网站服务器本质上也是台连上网的电脑,只不过配置上更适合作为服务器,并且放在数据中心,保持低温,低尘环境,同时有安全保卫。这些服务器使用固定IP地址连入互联网。一个域名解析到某一台服务器上,并且把网页文件放到这台服务器上,用户浏览器才知道去哪一台服务器获取这个域名的网页信息。这是通过域名服务器来实现的。
DNS服务器中保留有域名的DNS记录,该记录用来指定域名对应的IP地址。当一个浏览者在浏览器地址框中输入某一个域名,或者从其他网页点击链接来到了这个域名,则浏览器向这个用户的上网接入商发出域名请求,接入商的DNS服务器查询域名数据库,获取这个域名指向哪一个IP地址。在获得这个IP信息后,接入商的服务器就去这个IP地址所对应的服务器上抓取网页内容,然后传输给发出请求的浏览器。
本发明中,浏览器识别网页头标签中的域名解析标签,并对其所对应的域名进行预解析。预解析是指在用户浏览网页的同时,将域名对应的IP地址解析出来并进行缓存,用户点击相应域名访问其他网页时,直接从缓存中取出其对应的IP地址进行访问,而不需花费域名解析的时间。
本发明中,浏览器根据域名解析标签中的域名解析标识获取对应的域名,并将该域名发送至DNS服务器,DNS服务器接收到所述域名后,同查询域名数据库获取该域名对应的IP地址,并将其返回给浏览器。浏览器获得所有域名解析标签中的域名对应的IP地址后,将其缓存起来,当用户点击相应的域名后,根据所述域名查询缓存中对应的IP地址,并直接根据该IP地址访问所述网页。
上述说明仅以Web服务器为例示意说明本发明提出的上述方法的具体实现过程。而本发明提出的上述方法中域名解析标签的嵌入还可以由其它服务器来实现,如代理服务器等。本发明对此并不做限定。
本发明提出的上述域名解析方法通过预先为网页中添加域名解析标签,浏览器根据所述域名解析标签对相应的域名进行预解析,其在服务器端实现域名解析标签的添加,大大缩短了用户打开网页的等待时间,提升了用户的体验。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
图2示出了本发明提出的一种域名预解析装置的功能模块图。如图2所示,所述装置包括:
接收模块201:用于接收网页访问请求;
识别模块202:用于获取所请求的网页,识别出所述网页中嵌入的域名;
嵌入模块203:用于根据预设规则确定在所述网页中需要进行预解析的域名,并在所述网页中嵌入域名解析标签,所述域名解析标签对应所述网页中需要进行预解析的域名;
发送模块204:用于将所述嵌入域名解析标签的网页发送给请求所述网页的客户端浏览器;
浏览器模块205:用于根据所述域名解析标签对所述域名进行预解析。
所述识别模块202根据用户的网页请求获取用户所请求的网页内容。所述识别模块202对所获取的网页内容进行解析,并识别其中嵌入的域名。
一个HTML网页中经常会包含很多指向其他网页的域名,例如一个新闻主页,其上的菜单栏位置会包括很多指向各个新闻分类的域名,而一个新闻网页也会包括很多与该新闻相关的新闻网页的域名。
Web服务器可以将获取的网页解析成DOM树的形式,通过识别其中的对象元素“<a>”后面的URL获取网页中的域名。DOM是Document Object Model(文档对象模型)的缩写。HTML DOM则是专门适用于HTML/XHTML的文档对象模型,其将网页中的各个元素都看作一个对象,从而使网页中的元素可以被计算机语言获取或者编辑。HTML网页中域名对应元素“<a>”,Web服务器可以通过识别对象元素“<a>”获取网页中所有的域名。
Web服务器还可以直接遍历网页的HTML内容,通过查找标记“<ahref=”http://……”>”中对应的内容,识别出网页中的所有域名。
所述嵌入模块203识别出网页内容中嵌入的域名后,根据预设规则确定在所述网页中需要进行预解析的域名,并在所述网页中嵌入域名解析标签,所述域名解析标签对应所述网页中需要进行预解析的域名。所述域名解析标签包括域名解析标识和所对应的域名链接。
一个网页中可能包含各种各样且为数不少的域名,然而用户在浏览该网页时,大多数情况下不会点击访问其中包含的所有域名,甚至不会点击访问其中的任何一个域名。如果在网页中嵌入从网页中识别出的所有域名对应的域名解析标签,且浏览器在解析网页向用户展示网页的同时一一对其进行预解析,显然这种方式相当不经济,且会给DNS服务器造成严重的负担。
因此,本发明中所述嵌入模块203根据预设规则先确定所述网页中包含的域名中哪些需要进行预解析,对于需要进行预解析的域名添加相应的域名解析标签。所述预设规则可以事先通过统计用户对一个网页中包含的域名进行点击访问的概率来实现。而经验表明,用户对网页排名和/或网站排名较高的域名进行访问的几率较大。因此,可选地,本发明中根据预设规则确定所述网页中需要进行预解析的域名包括:若所述域名对应的网页排名和/或网站排名达到预设阈值,则确定所述域名需要进行预解析。
此外,一个网页特定位置处的域名,往往是用户经常点击访问的域名。例如,对于一个网页,网站制作人通常在其上方和/或右边的特定位置处设置该网站的主要网页对应的域名,用户常常会点击这些域名以查看该网站中的各个主要网页信息。
通常情况下,网页上会设置相应的菜单栏,而菜单栏上的域名也是用户经常点击的对象。因此,可选地,所述嵌入模块203根据域名所嵌入的位置确定是否为菜单栏域名,如果是则确定该域名为需要预解析的域名,并为其添加对应的域名解析标签。
可选地,所述嵌入模块203还可以针对不同类型的网页应用不同的预设规则。例如,对于一个新闻网站的主页,由于主页上展示的都是主要的新闻连接,因此所述嵌入模块203可以为从中识别出的所有域名添加对应的域名解析标签。当然,为了考虑效率问题,也可以仅针对新闻主分类下的域名添加域名解析标签。而对于一个论坛上打开的帖子页面,由于其中的域名有可能多半都是广告,用户点击的可能性不大,可以不对其中任何域名添加域名解析标签。
此外,本发明公开的域名预解析装置还可以根据预先注册的事件确定所述网页是否需要添加域名解析标签。如果用户通过客户端浏览器请求一个网页,所述接收模块201查看该网页是否注册过添加域名解析标签的事件,如果注册了,则将所接收的请求发送给识别模块进行识别,并针对识别出的域名添加域名解析标签。如果该网页并没有注册,则不对其进行处理,而直接将其返回给请求网页的客户端浏览器。
可选地,域名预解析装置还可以针对每个网页进行预处理,即预先识别出网页中包含的域名,并针对所识别的域名应用不同的预设规则添加域名解析标签,并将所述域名解析标签缓存起来,当用户请求该网页时,直接将所述域名解析标签嵌入头标签后返回给客户端浏览器,而不需要对网页内容进行识别,以节省时间,缩短用户等待网页打开的时间。可选地,域名预解析模块可以选择排名较高的网页进行预处理。
上述网页排名和/或网站排名可以通过点击率的高低来衡量,而通过点击率对网页和/或网站进行排名是现有技术常见的一种排名方式,在此不进行详细说明。
所述发送模块204在识别模块203完成域名解析标签的嵌入工作后,将嵌入有域名解析标签的网页发送给请求所述网页的客户端浏览器。
所述浏览器模块205接收到发送模块204发送的网页后,对其进行解析并展示给用户。浏览器模块205在解析完网页中的HTML内容后,通过网页的形式展示给用户,而解析完毕用户浏览的过程中,客户端浏览器开始解析该HTML内容的头标签,在识别出头标签中的域名解析标签后,浏览器根据域名解析标签对其包含的域名进行DNS解析。
本发明中,浏览器模块205识别网页头标签中的域名解析标签,并对其所对应的域名进行预解析。预解析是指在用户浏览网页的同时,将域名对应的IP地址解析出来并进行缓存,用户点击相应域名访问其他网页时,直接从缓存中取出其对应的IP地址进行访问,而不需花费域名解析的时间。
本发明中,浏览器模块205根据域名解析标签中的域名解析标识获取对应的域名,并将该域名发送至DNS服务器,DNS服务器接收到所述域名后,同查询域名数据库获取该域名对应的IP地址,并将其返回给浏览器。浏览器获得所有域名解析标签中的域名对应的IP地址后,将其缓存起来,当用户点击相应的域名后,根据所述域名查询缓存中对应的IP地址,并直接根据该IP地址访问所述网页。
由于所述装置实施例基本相应于前述图1所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本发明提出的上述方案可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。