基于HTTP协议的网络请求优化方法、装置、设备及介质与流程

文档序号:20488762发布日期:2020-04-21 21:52阅读:126来源:国知局
基于HTTP协议的网络请求优化方法、装置、设备及介质与流程

本发明涉及互联网技术领域,尤其涉及一种基于http协议的网络请求优化方法、装置、设备及介质。



背景技术:

基于http协议的网络请求涉及dns的解析过程,通过dns解析对域名进行ip转换以发起网络请求。当前的dns解析多是通过localdns进行,但localdns的解析结果容易受到域名劫持、dns污染等影响,导致无法解析到ip地址,或者解析到错误的ip地址而导致实际网络请求发生错误。

当通过dns解析无法获取到ip地址时,将导致当次网络请求失败;当解析到错误的ip地址时,可能会因为网络请求结果与预期不符而导致应用崩溃。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种基于http协议的网络请求优化方法,旨在通过对本地dns解析的异常请况进行再次解析,以完成网络请求的优化,增加了域名解析的成功率和正确率,从而提高网络请求的成功率。

本发明的目的之一采用以下技术方案实现:

一种基于http协议的网络请求优化方法,包括以下步骤:

接收网络请求;

解析所述网络请求的域名以获取ip地址,包括:

根据所述域名查询dns_cache,若查询成功,则返回查询到的ip地址;

若查询失败,则通过localdns解析所述域名,若所述localdns解析成功,则返回所述localdns解析到的ip地址;

若所述localdns解析失败,通过httpdns解析所述域名,若所述httpdns解析成功,则返回所述httpdns解析到的ip地址;反之,则网络请求失败,返回异常信息。

进一步地,返回所述查询到的ip地址,包括:验证所述查询到的ip地址是否超过有效时间,若未超过所述有效时间,则返回所述查询到的ip地址;反之,判定查询失败。

进一步地,若所述查询到的ip地址超过所述有效时间,则从所述dns_cache中删除所述查询到的ip地址。

进一步地,若所述localdns解析到ip地址,则向所述localdns解析到的ip地址发送http请求,若所述http请求发送成功,则判定所述localdns解析成功,返回所述localdns解析到的ip地址;反之,所述localdns解析到的ip地址无效;

若所述httpdns解析到ip地址,则向所述httpdns解析到的ip地址发送http请求,若所述http请求发送成功,则判定所述httpdns解析成功,返回所述httpdns解析到的ip地址;反之,所述httpdns解析到的ip地址无效

进一步地,所述localdns解析失败为以下任意一种:所述localdns解析所述域名超过第一预设时间;所述localdns未解析到ip;所述localdns解析到的ip无效。

进一步地,所述httpdns解析失败为以下任意一种:所述httpdns解析所述域名超过第二预设时间、所述httpdns未解析到ip、所述httpdns解析到的ip无效。

进一步地,将所述localdns解析到的ip地址或所述httpdns解析到的ip地址写入所述dns_cache;将所述httpdns解析到的ip地址写入所述dns_cache时,为所述httpdns解析到的ip地址设置有效时间。

本发明的目的之二在于提供一种基于http协议的网络请求优化装置,其通过在localdns基础上增加查询dns_cache和httpdns解析,增加域名解析的成功率和正确率,从而提高了网络请求的成功率。

本发明的目的之二采用以下技术方案实现:

请求接收模块,用于接收网络请求;

dns解析模块,用于解析所述网络请求的域名以获取ip地址,包括:

根据所述域名查询dns_cache,若查询成功,则返回查询到的ip地址;

若查询失败,则通过localdns解析所述域名,若所述localdns解析成功,则返回所述localdns解析到的ip地址;

若所述localdns解析失败,通过httpdns解析所述域名,若所述httpdns解析成功,则返回所述httpdns解析到的ip地址;反之,则网络请求失败,返回异常信息。

本发明的目的之三在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的基于http协议的网络请求优化方法。

本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于http协议的网络请求优化方法。

相比现有技术,本发明的有益效果在于:

本发明在域名解析时,通过优先获取缓存的ip地址,减少了后续解析出现错误结果的可能性,并在传统的localdns解析基础上增加了httpdns解析,实现了对网络请求过程的优化,减少了无法解析域名的情况出现,增加了域名解析的成功率和正确率,从而提高了网络请求的成功率。

附图说明

图1是实施例1的基于http协议的网络请求优化方法的流程图;

图2是实施例2的基于http协议的网络请求优化装置的结构框图;

图3是实施例3的电子设备的结构框图。

具体实施方式

以下将结合附图,对本发明进行更为详细的描述,需要说明的是,以下参照附图对本发明进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。

实施例1

本实施例提供了一种基于http协议的网络请求优化方法,旨在通过优化网络请求过程中的域名解析过程,实现对网络请求过程的优化,其在传统localdns解析基础上,增加了dns_cache查询和httpdns解析,在localdns解析失败后,继续使用httpdns解析,避免因localdns解析失败直接造成unknownhostexception,因此增加了域名解析的成功率和准确率。

根据上述原理,对基于http协议的网络请求优化方法进行介绍,如图1所示,基于http协议的网络请求优化方法,具体包括以下步骤:

接收网络请求;

解析所述网络请求的域名以获取ip地址,包括:

根据所述域名查询dns_cache,若查询成功,则返回查询到的ip地址;

若查询失败,则通过localdns解析所述域名,若所述localdns解析成功,则返回所述localdns解析到的ip地址;

若所述localdns解析失败,通过httpdns解析所述域名,若所述httpdns解析成功,则返回所述httpdns解析到的ip地址;反之,则网络请求失败,返回异常信息。

在应用程序发起网络请求时,需要先对网络请求进行域名解析,即通过dns将目标主机名转换为ip地址(目标ip),通过目标ip地址,本实施例通过localdns和httpdns进行域名解析,上述localdns为本地(运营商)域名服务器,应用程序基于dns协议向运营商localdns发起解析请求,而httpdns为设置在云服务器上的域名服务器,应用程序基于http协议向httpdns发送域名解析请求,httpdns可以避免localdns造成的域名劫持和跨网访问问题,从而避免域名解析异常,进而增加域名解析的成功率和正确率。

而上述dns_cache是一个局域网快取服务器,其接受应用程序发送的dns查询要求,且会存储dns服务器所响应的dns数据,即dns服务器解析到的ip地址,然后将ip地址储存起来用于dns查询。

优选地,返回所述查询到的ip地址,包括:验证所述查询到的ip地址是否超过有效时间,若未超过所述有效时间,则返回所述查询到的ip地址;反之,判定查询失败。本实施例中提及的有效时间为将历史解析成功的ip地址写入dns_cache时设置的,可根据实际情况设置,在此不限定具体的有效时间。

在本发明的其中一个实施例中,若查询到ip地址未超过有效时间,则向该ip地址发送http请求,若所述http请求发送成功,则返回查询到的ip地址;反之,判定查询失败。

优选地,若所述查询到的ip地址超过有效时间,则从所述dns_cache中删除所述查询到的ip地址。若所述查询到的ip地址超过有效时间,则说明ip地址失效,无法继续复用,因此删除所述查询到的ip地址,以更新dns_cache中的缓存信息。

优选地,当所述localdns解析到的ip地址时,还包括以下步骤:

向所述localdns解析到的ip地址发送http请求,若所述http请求发送成功,则判定localdns解析成功,返回所述localdns解析到的ip地址;反之,所述localdns解析到的ip地址无效。

优选地,所述localdns解析失败为以下任意一种:所述localdns解析所述域名超过第一预设时间;所述localdns未解析到ip;所述localdns解析到的ip无效。

当所述httpdns解析到的ip地址时,还包括以下步骤:

向所述httpdns解析到的ip地址发送http请求,若所述http请求发送成功,则判定httpdns解析成功,返回所述httpdns解析到的ip地址;反之,所述httpdns解析到的ip地址无效。

优选地,所述httpdns解析失败为以下任意一种:所述httpdns解析所述域名超过第二预设时间;所述httpdns未解析到ip;所述httpdns解析到的ip无效。

所述第一预设时间和第二预设时间为预先设置,分别规定执行localdns解析和httpdns解析的时间,避免localdns解析或httpdns解析一直执行,导致长时间等待,占用系统资源。

所述第一预设时间和第二预设时间可以为相同时长或不同时长,且在本实施例中第一预设时间和第二预设时间的具体数值不会对本发明的实现造成限制,因此不对第一预设时间和第二预设时间作出规定。需要注意的是,在设置第一预设时间和第二预设时间时,可通过声明connecttimeout、sockettimeout、connectionrequesttimeout等变量并赋值,实现域名解析的超时时间设置。

优选地,将所述localdns解析到的ip地址或所述httpdns解析到的ip地址写入所述dns_cache,并为所述httpdns解析到的ip地址设置有效时间。

在本发明的其他实施例中,在进行localdns解析或httpdns解析前可以对旧缓存信息(如dns_cache中的缓存信息)进行清除。

通过本实施例的基于http协议的网络请求优化方法进行网络请求时,对网络请求中的域名(host)进行域名解析:首先在dns_cache(缓存)中根据域名查询是否有该域名对应的ip地址(历史解析结果),若查询到,则判断查询到的ip地址是否有效,若有效,则返回查询到的ip地址,若无效,则将查询到的ip地址从dns_cache中删除。若从dns_cache中没有查询到域名对应的ip地址或查询到的ip地址无效,则调用localdns解析域名,若解析到的ip地址,则向解析到的ip地址发起http请求,若请求成功,则解析到的ip地址有效,返回解析到的ip地址,并将解析到的ip地址写入dns_cache中,以便下次解析时复用;反之,解析到的ip地址无效,判定localdns解析失败。若所述localdns未解析到ip地址或localdns解析超时,则localdns解析失败。继续调用httpdns解析域名,若解析到的ip地址,则向解析到的ip地址发起http请求,若请求成功,则解析到的ip地址有效,返回解析到的ip地址,并将解析到的ip地址写入dns_cache中,并为所述httpdns解析到的ip地址设置有效时间,以便下次解析时复用;反之,解析到的ip地址无效,判定httpdns解析失败。若所述httpdns未解析到ip地址或httpdns解析超时,则httpdns解析失败。若httpdns解析失败,则判定网络请求失败,返回异常信息。

本实施例通过对域名解析过程进行优化,增加了域名解析的成功率和正确流程,从而实现了对基于http协议的网络请求过程进行优化,增加了网络请求的成功率。

实施例2

本实施例公开了一种对应上述实施例的基于http协议的网络请求优化方法的基于http协议的网络请求优化装置,为虚拟结构装置,如图2所示,包括:

请求接收模块210,用于接收网络请求;

dns解析模块220,用于解析所述网络请求的域名以获取ip地址,包括:

根据所述域名查询dns_cache,若查询成功,则返回查询到的ip地址;

若查询失败,则通过localdns解析所述域名,若所述localdns解析成功,则返回所述localdns解析到的ip地址;

若所述localdns解析失败,通过httpdns解析所述域名,若所述httpdns解析成功,则返回所述httpdns解析到的ip地址;反之,则网络请求失败,返回异常信息。

优选地,dns解析模块220返回所述查询到的ip地址时,还将验证所述查询到的ip地址是否超过有效时间,若未超过所述有效时间,则返回所述查询到的ip地址;反之,判定查询失败,从所述dns_cache中删除所述查询到的ip地址。

优选地,当dns解析模块220通过所述localdns解析到的ip地址时,还包括以下步骤:

向所述localdns解析到的ip地址发送http请求,若所述http请求发送成功,则判定localdns解析成功,返回所述localdns解析到的ip地址;反之,所述localdns解析到的ip地址无效,判定所述localdns解析失败。

当dns解析模块220通过所述httpdns解析到的ip地址时,还包括以下步骤:

向所述httpdns解析到的ip地址发送http请求,若所述http请求发送成功,则判定所述httpdns解析成功,返回所述httpdns解析到的ip地址;反之,所述httpdns解析到的ip地址无效,判定所述httpdns解析失败。

优选地,所述dns解析模块220根据以下条件的任意一种,判定所述localdns解析失败,具体条件为:所述localdns解析所述域名超过第一预设时间;所述localdns未解析到ip;所述localdns解析到的ip无效。

优选地,所述dns解析模块220根据以下条件的任意一种,判定所述httpdns解析失败,具体条件为:所述httpdns解析所述域名超过第二预设时间;所述httpdns未解析到ip;所述httpdns解析到的ip无效。

优选地,dns解析模块220通过localdns或httpdns解析到的ip地址(有效),将写入dns_cache中,以便下次复用,且httpdns解析到的ip地址写入dns_cache时将为该ip地址设置有效时间。

实施例3

图3为本发明实施例3提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器310、存储器320、输入装置330和输出装置340;计算机设备中处理器310的数量可以是一个或多个,图3中以一个处理器310为例;电子设备中的处理器310、存储器320、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线连接为例。

存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于http协议的网络请求优化方法对应的程序指令/模块(例如,基于http协议的网络请求优化装置中的dns解析模块220)。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现实施例1的基于http协议的网络请求优化方法。

存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置330可用于接收网络请求。输出装置340用于输出解析到的ip地址或异常信息。

实施例4

本发明实施例4还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现基于http协议的网络请求优化方法,该方法包括:

接收网络请求;

解析所述网络请求的域名以获取ip地址,包括:

根据所述域名查询dns_cache,若查询成功,则返回查询到的ip地址;

若查询失败,则通过localdns解析所述域名,若所述localdns解析成功,则返回所述localdns解析到的ip地址;

若所述localdns解析失败,通过httpdns解析所述域名,若所述httpdns解析成功,则返回所述httpdns解析到的ip地址;反之,则网络请求失败,返回异常信息。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于http协议的网络请求优化方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述基于http协议的网络请求优化方法或装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

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