一种通过UDP代理HTTP请求的方法和装置与流程

文档序号:12182863阅读:1532来源:国知局
一种通过UDP代理HTTP请求的方法和装置与流程

本发明涉及计算机技术领域,特别是涉及一种通过UDP代理HTTP请求的方法和装置。



背景技术:

当访问网站时,将域名发送给DNS(Domain Name System,域名系统)去解析,DNS解析后将网站的IP(Internet Protocol,网络之间互连的协议)地址返回给客户端,通过IP地址发起HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求。在HTTP请求过程中,通过建立TCP(Transmission Control Protocol,传输控制协议)连接,客户端才能向Web服务器发送请求信息,Web服务器在接收到请求信息后,返回相应的应答信息,客户端接收到来自Web服务器的应答信息后,对这些数据进行解释执行,同时Web服务器关闭TCP连接。

但是,基于TCP传输协议的HTTP应用,在无线网络环境、跨地区运营商的网络里连接服务器时,通常要经过TCP的三次握手过程才能建立连接。三次握手即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。如果握手过程出现丢包,则连接三次握手的过程会持续数秒,这时,从客户端应用看一直没连接上,从服务器端应用看一直没有收到用户的请求内容,造成双端空等的情况,仅靠客户端设置应用层计时器来判断超时,导致请求慢,效率低。

而且,类似的DNS请求也容易被Local DNS(Local Domain Name System,本地域名系统)服务器所劫持,例如,操作系统会把这个域名发送给本地区的域名服务器,如果运营商想要劫持域名的话,就在他的本地区的域名服务器直接响应一个错误的IP给用户,导致用户按流程进一步连接该IP失败,或者虽然连接的上,但得不到正确IP地址的响应结果。



技术实现要素:

本发明实施例的目的在于提供一种通过UDP代理HTTP请求的方法和装置,解决针对请求正文较小的HTTP请求过程中,TCP的三次握手导致请求效率低的问题,以及HTTP请求过程中DNS请求被劫持问题,提高请求效率。

为达到上述目的,本发明实施例公开了一种通过UDP代理HTTP请求的方法,所述方法包括:

接收第一网络设备发送的UDP请求消息,所述UDP请求消息包括UDP请求头、统一资源标识符;

从所述UDP请求消息中解析所述UDP请求头,识别出HTTP域名,并根据所述HTTP域名及所述统一资源标识符构造HTTP请求消息,所述UDP请求头是根据所述HTTP域名构造的,所述HTTP请求消息的目的地址为第二网络设备;

向所述第二网络设备发送所述HTTP请求消息。

可选的,所述向所述第二网络设备发送所述HTTP请求消息之后,所述的方法还包括:

接收所述第二网络设备发送的HTTP响应消息,所述HTTP响应消息包括HTTP响应正文,所述HTTP响应消息用于响应所述HTTP请求消息;

构造用于解析所述HTTP响应正文的第一UDP响应头,并向所述第一网络设备发送第一UDP响应消息,所述第一UDP响应消息包括所述第一UDP响应头、所述HTTP响应正文,以使所述第一网络设备通过解析所述第一UDP响应头,读取所述HTTP响应正文,所述第一UDP响应头中包括用于读取所述HTTP响应正文的信息。

可选的,所述向所述第二网络设备发送所述HTTP请求消息之后,所述的方法还包括:

若在预设时间内未接收到所述第二网络设备发送的HTTP响应消息或者接收到所述第二网络设备发送的HTTP错误响应消息,则构造第二UDP响应头,并向所述第一网络设备发送第二UDP响应消息,所述第二UDP响应消息包括所述第二UDP响应头,所述第二UDP响应消息用于通知所述第一网络设备所述UDP请求消息失败,以使所述第一网络设备通过解析所述第二UDP响应头,读取所述UDP请求消息失败的信息。

可选的,所述从所述UDP请求消息中解析所述UDP请求头,识别出HTTP域名,包括:

从所述UDP请求消息中解析所述UDP请求头,识别出所述UDP请求头的请求业务类型;

根据所述请求业务类型预先配置的域名,识别出HTTP域名。

本发明实施例还公开了另一种通过UDP代理HTTP请求的方法,其特征在于,所述方法包括:

根据第一网络设备中待访问的HTTP域名构造UDP请求头;

向UDP代理服务器发送UDP请求消息,所述UDP请求消息包括所述UDP请求头、统一资源标识符,以使所述UDP代理服务器从所述UDP请求消息中解析所述UDP请求头,识别出所述HTTP域名,并根据所述HTTP域名及所述统一资源标识符构造HTTP请求消息,发给第二网络设备。

可选的,所述向UDP代理服务器发送UDP请求消息之后,所述的方法还包括:

接收所述UDP代理服务器发送的第一UDP响应消息,所述第一UDP响应消息包括第一UDP响应头、HTTP响应正文,所述HTTP响应正文用于响应所述HTTP请求消息;

从所述第一UDP响应消息中解析所述第一UDP响应头,读取所述HTTP响应正文,所述第一UDP响应头中包括用于读取所述HTTP响应正文的信息。

可选的,所述向UDP代理服务器发送UDP请求消息之后,所述的方法还包括:

接收所述UDP代理服务器发送的第二UDP响应消息,所述第二UDP响应消息包括第二UDP响应头,所述第二UDP响应消息用于通知所述第一网络设备所述UDP请求消息失败,所述第二UDP响应头是根据所述UDP代理服务器在预设时间内未接收到所述第二网络设备发送的HTTP响应消息或者接收到所述第二网络设备发送的HTTP错误响应消息构造的;

从所述第二UDP响应消息中解析所述第二UDP响应头,读取所述UDP请求消息失败的信息。

本发明实施例还公开了一种通过UDP代理HTTP请求的装置,所述装置包括:

第一接收模块,用于接收第一网络设备发送的UDP请求消息,所述UDP请求消息包括UDP请求头、统一资源标识符;

第一处理模块,用于从所述UDP请求消息中解析所述UDP请求头,识别出HTTP域名,并根据所述HTTP域名及所述统一资源标识符构造HTTP请求消息,所述UDP请求头是根据所述HTTP域名构造的,所述HTTP请求消息的目的地址为第二网络设备;

第一发送模块,用于向所述第二网络设备发送所述HTTP请求消息。

可选的,所述第一接收模块,还用于:

接收所述第二网络设备发送的HTTP响应消息,所述HTTP响应消息包括HTTP响应正文,所述HTTP响应消息用于响应所述HTTP请求消息;

相应的,所述第一处理模块,还用于构造用于解析所述HTTP响应正文的第一UDP响应头;

所述第一发送模块,还用于向所述第一网络设备发送第一UDP响应消息,所述第一UDP响应消息包括所述第一UDP响应头、所述HTTP响应正文,以使所述第一网络设备通过解析所述第一UDP响应头,读取所述HTTP响应正文,所述第一UDP响应头中包括用于读取所述HTTP响应正文的信息。

可选的,所述第一处理模块,还用于:

若在预设时间内未接收到所述第二网络设备发送的HTTP响应消息或者接收到所述第二网络设备发送的HTTP错误响应消息,构造第二UDP响应头;

相应的,所述第一发送模块,还用于向所述第一网络设备发送第二UDP响应消息,所述第二UDP响应消息包括所述第二UDP响应头,所述第二UDP响应消息用于通知所述第一网络设备所述UDP请求消息失败,以使所述第一网络设备通过解析所述第二UDP响应头,读取所述UDP请求消息失败的信息。

可选的,所述第一处理模块,还用于:

从所述UDP请求消息中解析所述UDP请求头,识别出所述UDP请求头的请求业务类型;

根据所述请求业务类型预先配置的域名,识别出HTTP域名。

本发明实施例还公开了另一种通过UDP代理HTTP请求的装置,所述装置包括:

第二处理模块,用于根据第一网络设备中的HTTP域名构造UDP请求头;

第二发送模块,用于向UDP代理服务器发送UDP请求消息,所述UDP请求消息包括所述UDP请求头、统一资源标识符,以使所述UDP代理服务器从所述UDP请求消息中解析所述UDP请求头,识别出所述HTTP域名,并根据所述HTTP域名及所述统一资源标识符构造HTTP请求消息,发给第二网络设备。

可选的,所述装置还包括:

第二接收模块,用于接收所述UDP代理服务器发送的第一UDP响应消息,所述第一UDP响应消息包括第一UDP响应头、HTTP响应正文,所述HTTP响应正文用于响应所述HTTP请求消息;

相应的,所述第二处理模块,还用于从所述第一UDP响应消息中解析所述第一UDP响应头,读取所述HTTP响应正文,所述第一UDP响应头中包括用于读取所述HTTP响应正文的信息。

可选的,第二接收模块,还用于:

接收所述UDP代理服务器发送的第二UDP响应消息,所述第二UDP响应消息包括第二UDP响应头,所述第二UDP响应消息用于通知所述第一网络设备所述UDP请求消息失败,所述第二UDP响应头是根据所述UDP代理服务器在预设时间内未接收到所述第二网络设备发送的HTTP响应消息或者接收到所述第二网络设备发送的HTTP错误响应消息构造的;

相应的,所述第二处理模块,还用于从所述第二UDP响应消息中解析所述第二UDP响应头,读取所述UDP请求消息失败的信息。

由上述的技术方案可见,本发明实施例提供的一种通过UDP代理HTTP请求的方法和装置,通过UDP代理服务器接收第一网络设备发送的UDP请求消息,然后根据该UDP请求消息构造标准的HTTP请求消息,最后将HTTP请求消息转发给第二网络设备。这种通过UDP代理转发HTTP请求的方法,避免了TCP的三次握手和DNS请求,有效解决针对请求正文较小的HTTP请求过程中,TCP的三次握手导致请求效率低的问题,以及HTTP请求过程中DNS请求被劫持问题,提高了请求效率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种通过UDP代理HTTP请求的方法的一种流程示意图;

图2为本发明实施例提供的一种通过UDP代理HTTP请求的方法的另一种流程示意图;

图3为本发明实施例提供的一种通过UDP代理HTTP请求的方法的基本流程图;

图4为本发明实施例提供的一种通过UDP代理HTTP请求的方法的架构示意图;

图5为本发明实施例提供的一种通过UDP代理HTTP请求的装置的一种结构示意图;

图6为本发明实施例提供的一种通过UDP代理HTTP请求的装置的另一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有的HTTP请求过程中,通过建立TCP连接,客户端才能向Web服务器发送请求信息。由于建立多次TCP连接耗费大量的资源开销,所以在允许和可能的情况下,通过代理服务器代理转发HTTP请求。代理服务器的功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,使用网络浏览器直接去连接其他因特网站点取得网络信息时,须送出请求信号来得到回答,然后对方再把信息以字节方式传送回来。

代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,请求信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的高速缓冲存储器,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。更重要的是:代理服务器是因特网链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联模型的对话层。

基于此,本发明实施例提供了一种通过UDP代理HTTP请求的方法和装置,具体过程如下:

参见图1,图1为本发明实施例提供的一种通过UDP代理HTTP请求的方法的一种流程示意图,包括如下步骤:

S101,接收第一网络设备发送的UDP请求消息,UDP请求消息包括UDP请求头、统一资源标识符;

具体的,UDP代理服务器接收第一网络设备发送的UDP请求消息,该UDP请求消息包括UDP请求头、统一资源标识符。这里,UDP请求头是根据第一网络设备准备向UDP代理服务器发起的HTTP请求中HTTP域名构造的,该HTTP域名是HTTP请求中HTTP统一资源标识符的一部分,因此在UDP请求消息中的统一资源标识不包括HTTP域名。通过将第一网络设备发起的HTTP请求,构造成UDP请求消息,从而向UDP代理服务器发送该UDP请求,完成了UDP代理HTTP请求的过程。

另外,需要说明的是,在本发明实施例中所提到的第一网络设备和第二网络设备,分别指的是发送HTTP请求的原始发送方和接收HTTP请求接收方,例如,第一网络设备可以是客户端,第二网络设备可以是服务器端,对于满足所有网络设备条件的,均属于本发明实施例的保护范围,在此不一一举例。

S102,从UDP请求消息中解析UDP请求头,识别出HTTP域名,并根据HTTP域名及统一资源标识符构造HTTP请求消息,UDP请求头是根据HTTP域名构造的,HTTP请求消息的目的地址为第二网络设备;

具体的,由于UDP请求消息中的UDP请求头是通过第一网络设备中的HTTP域名构造的,因此解析该UDP请求头,就可以识别出该UDP请求头所对应的HTTP域名。另外,由于UDP请求消息中的统一资源标识符中没有HTTP域名,因此将已经识别出的HTTP域名和统一资源标识符共同来构造HTTP请求消息,这里构造的HTTP请求消息是标准的HTTP请求消息,同时,该HTTP请求消息的目的地址为第二网络设备。

S103,向第二网络设备发送HTTP请求消息。

具体的,通过UDP代理服务器向第二网络设备发送HTTP请求消息,由于该HTTP请求消息是通过HTTP域名和统一资源标识符构造的,因此该HTTP请求消息包括由HTTP域名和统一资源标识符组成的HTTP统一资源标识符,即向第二网络设备发送一个包括HTTP统一资源标识符的请求消息,从而完成了通过UDP代理转发HTTP请求的过程。

需要说明的是,在本实施例中,由于一个UDP请求仅能传送请求正文较小的请求消息,因此,可以采用本实施例的方法代理转发请求响应正文较小的HTTP请求。例如,如果一个UDP包大小上限为1.5KB,如果HTTP请求的请求正文大于1.5KB时,便无法通过UDP代理服务器代理转发该请求,如果HTTP响应正文大于1.5KB时,可以把该HTTP响应正文拆解成几个1.5KB,UDP代理服务器会将这几个1.5KB的响应正文编上序号分别发送给第一网络设备,第一网络将其组合起来,读取完整的响应正文。

由此可见,本发明提供的一种通过UDP代理HTTP请求的方法,通过UDP代理服务器先接收第一网络设备发送的UDP请求消息,然后根据该UDP请求消息构造标准的HTTP请求消息,最后将HTTP请求消息发给第二网络设备。这种通过UDP代理转发HTTP请求的方法,避免了TCP的三次握手和DNS请求,有效的解决了针对请求正文较小的HTTP请求过程中,TCP的三次握手导致请求效率低的问题,以及HTTP请求过程中DNS请求被劫持问题,提高了请求效率。

在本发明实施例中,向第二网络设备发送HTTP请求消息之后,通过UDP代理HTTP请求的方法还包括:

接收第二网络设备发送的HTTP响应消息,HTTP响应消息包括HTTP响应正文,HTTP响应消息用于响应HTTP请求消息;

具体的,UDP代理服务器接收第二网络设备发送的HTTP响应消息,该HTTP响应消息用于响应UDP代理服务器发送的HTTP请求消息。然后对该HTTP响应消息进行处理,将HTTP响应消息转化为UDP响应消息,再将UDP响应消息发送给第一网络设备,完成了整个HTTP请求和响应的转发过程。

构造用于解析HTTP响应正文的第一UDP响应头,并向第一网络设备发送第一UDP响应消息,第一UDP响应消息包括第一UDP响应头、HTTP响应正文,以使第一网络设备通过解析第一UDP响应头,读取HTTP响应正文,第一UDP响应头中包括用于读取HTTP响应正文的信息。

这里,本发明中构造的第一UDP响应消息,是为了区分和没有接收到响应时所发送的第二UDP响应消息的不同,同样,本发明中构造的第一UDP响应头,是为了区分和没有接收到响应时所构造的第二UDP响应头的不同。如果第二网络设备有响应,则构造用于解析HTTP响应正文的第一UDP响应头,将响应状态码填入该UDP响应头中。然后,向第一网络设备发送第一UDP响应消息,第一UDP响应消息包括第一UDP响应头、HTTP响应正文,以使第一网络设备通过解析第一UDP响应头,读取HTTP响应正文,第一UDP响应头中包括用于读取HTTP响应正文的信息。

构造的第一UDP响应头,例如,第一UDP响应头是由magic(1字节)、opcode(1字节)、compress(1字节)、total(1字节)、subidx(1字节)、status(1字节)、reserved1(1字节)、reserved2(1字节)、sequence(4字节)、bodylen(4字节)构成,其中,magic是识别、标识的意思,是定义协议时的术语;opcode与请求域名对应,代理服务器根据opcode来选择业务服务器的配置域名;compress标示内容压缩方式;total表示该完整响应会被分割成多少个UDP包;subidx表示当前是第几个响应;status填入业务服务器响应的HTTP状态码;reserve1、reserve2都是保留字段。

在本发明一个可选的实施例中,若在预设时间内未接收到第二网络设备发送的HTTP响应消息,或者接收到第二网络设备发送的HTTP错误响应消息,则构造第二UDP响应头,并向第一网络设备发送第二UDP响应消息,第二UDP响应消息包括第二UDP响应头,第二UDP响应消息用于通知第一网络设备UDP请求消息失败,以使第一网络设备通过解析第二UDP响应头,读取UDP请求消息失败的信息。

具体的,构造的第二UDP响应头中包含用于通知第一网络设备UDP请求消息失败的信息,当在预设时间内未接收到第二网络设备发送的HTTP响应消息,或者接收到第二网络设备发送的HTTP错误响应消息时,就可以直接向第一网络设备发送包含UDP响应头的响应消息,以使第一网络设备通过解析第二UDP响应头,读取UDP请求消息失败的信息。

在本发明实施例中,从UDP请求消息中解析UDP请求头,识别出HTTP域名,包括:

从UDP请求消息中解析UDP请求头,识别出UDP请求头的请求业务类型;

根据请求业务类型预先配置的域名,识别出HTTP域名。

具体的,UDP代理服务器从UDP请求消息中解析UDP请求头,由于该UDP请求头是由待访问的HTTP域名构造的,所以可以识别出HTTP域名,具体过程先通过识别出该请求的业务类型,再根据请求业务类型预先配置的域名,识别出HTTP域名。

本发明中通过UDP代理请求较小的HTTP,这里的HTTP请求是针对特定的场景才能使用的,比如一个特定公司的特定业务,通过这种UDP代理服务器来压缩和代理,一个代理服务器只需要代理几个或者规定的多少个不同域名即可,所以这里可以使用1个字节的opcode表示一种业务类型,先通过将不同的域名压缩成1个字节的业务类型,然后找出这种业务类型所对应的配置域名,再根据配置的域名和URI构造标准的HTTP请求。

参见图2,图2为本发明实施例提供的一种通过UDP代理HTTP请求的方法的另一种流程示意图,包括如下步骤:

S201,根据第一网络设备中待访问的HTTP域名构造UDP请求头;

具体的,第一网络设备根据其待访问的HTTP域名构造UDP请求头,即UDP请求头中包含HTTP域名,这里构造UDP请求头主要是为了发往UDP代理服务器,由于UDP代理服务器只能接收识别UDP请求消息,因此将待发送的HTTP请求通过UDP代理来转发,实现快速的小型HTTP的请求和响应过程。

这里,构造的UDP请求头,例如,UDP请求头是由magic(1字节)、opcode(1字节)、compress(1字节)、reserved(1字节)、sequence(4字节)、bodylen(4字节)构成;其中,magic是识别、标识的意思,是定义协议时的术语;opcode与请求域名对应,代理服务器根据opcode来选择业务服务器的配置域名;compress标示内容压缩方式;reserved是保留字段;sequence是请求标识字段,客户端构造并填充该字段,代理服务器只需要将请求里的sequence值填入响应头,便于客户端识别具体响应;bodylen在请求里表示统一资源标识符的长度,在响应里表示响应正文的长度。

另外,需要说明的是,在本发明实施例中所提到的第一网络设备和第二网络设备,分别指的是发送HTTP请求的原始发送方和接收HTTP请求接收方,例如,第一网络设备可以是客户端,第二网络设备可以是服务器端,对于满足所有网络设备条件的,均属于本发明实施例的保护范围,在此不一一举例。

S202,向UDP代理服务器发送UDP请求消息,UDP请求消息包括UDP请求头、统一资源标识符,以使UDP代理服务器从UDP请求消息中解析UDP请求头,识别出HTTP域名,并根据HTTP域名及统一资源标识符构造HTTP请求消息,发给第二网络设备。

具体的,第一网络设备向UDP代理服务器发送UDP请求消息,UDP代理服务器通过处理该UDP请求消息,并构造用于请求第二网络设备的HTTP请求消息,完成对待访问的HTTP请求的代理转发。这里的HTTP请求是标准的HTTP请求,也是第一网络设备待向UDP代理服务器发起的HTTP请求,这里只是将HTTP请求通过UDP代理服务器转发,跳过了TCP的三次握手过程,同时也避免了DNS请求,使得请求效率更高。

由此可见,本发明提供的一种通过UDP代理HTTP请求的方法,通过根据第一网络设备中待访问的HTTP域名构造UDP请求头,并将包括UDP请求头、统一资源标识符的UDP请求消息发给UDP代理服务器,通过UDP代理服务器处理该UDP请求消息,实现UDP代理HTTP请求的目的。这种通过UDP代理转发HTTP请求的方法,避免了TCP的三次握手和DNS请求,有效的解决了针对请求正文较小的HTTP请求过程中,TCP的三次握手导致请求效率低的问题,以及HTTP请求过程中DNS请求被劫持问题,提高了请求效率。

本发明实施例提供的一种通过UDP代理HTTP请求的方法还包括:

接收UDP代理服务器发送的第一UDP响应消息,第一UDP响应消息包括第一UDP响应头、HTTP响应正文,HTTP响应正文用于响应HTTP请求消息;

具体的,第一网络设备接收UDP代理服务器发送的第一UDP响应消息,该第一UDP响应消息主要是为了响应UDP请求消息,第一UDP响应消息包括第一UDP响应头、HTTP响应正文,HTTP响应正文用于响应HTTP请求消息。这里,本发明中构造的第一UDP响应消息,是为了区分和没有接收到响应时所发送的第二UDP响应消息的不同。同样,本发明中构造的第一UDP响应头,是为了区分和没有接收到响应时所构造的第二UDP响应头的不同。

从第一UDP响应消息中解析第一UDP响应头,读取HTTP响应正文,第一UDP响应头中包括用于读取HTTP响应正文的信息。

具体的,第一网络设备从第一UDP响应消息中解析第一UDP响应头,读取第一UDP响应头中包括用于读取HTTP响应正文的信息,完成了整个HTTP请求和响应的转发过程。

在本发明实施例中,向UDP代理服务器发送UDP请求消息之后,一种通过UDP代理HTTP请求的方法还包括:

接收UDP代理服务器发送的第二UDP响应消息,第二UDP响应消息包括第二UDP响应头,第二UDP响应消息用于通知第一网络设备UDP请求消息失败,第二UDP响应头是根据UDP代理服务器在预设时间内未接收到第二网络设备发送的HTTP响应消息或者接收到第二网络设备发送的HTTP错误响应消息构造的。

具体的,UDP代理服务器如果在预设时间内未接收到第二网络设备发送的HTTP响应消息,或者接收到第二网络设备发送的HTTP错误响应消息,第一网络设备就会接收到UDP代理服务器发送的第二UDP响应消息,第二UDP响应消息包括第二UDP响应头,第二UDP响应消息用于通知第一网络设备UDP请求消息失败。

从第二UDP响应消息中解析第二UDP响应头,读取UDP请求消息失败的信息。

由于第二UDP响应头中包含UDP请求消息失败的信息,因此解析第二UDP响应头就可以读取UDP请求消息失败的信息。

参见图3,图3为本发明实施例提供的一种通过UDP代理HTTP请求的方法的基本流程图,包括如下步骤:

S301,构造UDP请求头。

这里,根据第一网络设备中待访问的HTTP域名构造UDP请求头。

S302,将UDP请求头和统一资源标识符发给UDP代理服务器。

第一网络设备向UDP代理服务器发送的是UDP请求消息,UDP代理服务器才能识别接收该请求,而UDP请求消息包括UDP请求头、统一资源标识符,所以将UDP请求头和统一资源标识符发给UDP代理服务器。

S303,UDP代理服务器接收UDP请求消息。

UDP代理服务器接收第一网络设备发送的UDP请求消息,包括UDP请求头、统一资源标识符,然后对该UDP请求消息进行处理。

S304,解析UDP请求头。

第二网络设备从UDP请求消息中解析UDP请求头,识别出该请求的业务类型。

S305,构造HTTP请求消息并发给目标服务器。

根据UDP请求头中的业务所配置的域名,以及用获取到的统一资源标识符共同来构造HTTP请求消息,这里所构造的HTTP请求消息是标准的HTTP请求消息。将HTTP请求消息发送给目标服务器,这里的目标服务器即第二网络设备。

S306,读取HTTP响应消息。

通过UDP代理服务器读取目标服务器所发送的HTTP响应消息,该HTTP响应消息用于响应HTTP请求消息。

S307,判断是否有响应。

通过UDP代理服务器判断第二网络设备在预设的时间内有没有发回HTTP响应消息。

S308,若有响应,则构造UDP响应头,将响应状态码填入。

这里,构造的UDP响应头即本发明中的第一UDP响应头,是为了区分和没有接收到响应时所构造的UDP响应头。如果有响应,则构造用于解析HTTP响应正文的第一UDP响应头,并将响应状态码填入该UDP响应头中。

S309,将UDP响应头和HTTP响应正文发给客户端。

这里,客户端即本发明所提到的第一网络设备,UDP代理服务器向第一网络设备发送UDP响应消息,该UDP响应消息包括UDP响应头和HTTP响应正文,该HTTP响应正文用于响应HTTP请求消息,以使第一网络设备通过解析第一UDP响应头,读取HTTP响应正文,第一UDP响应头中包括用于读取第一UDP响应头之后的HTTP响应正文的信息。

S310,若没有响应,则构造UDP响应头,通知客户端错误。

同样,这里构造的UDP响应头即本发明中的第二UDP响应头。若在预设时间内未接收到第二网络设备发送的HTTP响应消息,或者接收到第二网络设备发送的HTTP错误响应消息,构造第二UDP响应头,并向第一网络设备发送第二UDP响应消息,第二UDP响应消息包括第二UDP响应头,第二UDP响应消息用于通知第一网络设备UDP请求消息失败,以使第一网络设备通过解析第二UDP响应头,读取UDP请求消息失败的信息。

参见图4,图4为本发明实施例提供的一种通过UDP代理HTTP请求的方法的架构示意图;

由图4可以看出,对于PC端APP、Android系统端APP或者iOS系统端APP的HTTP请求,都可以将其先转换成UDP模块的形式,即UDP请求消息,然后将UDP请求消息通过UDP连接发给UDP代理服务器,通过UDP代理服务器的处理,再通过TCP连接,发给相对应的业务服务器。其中,UDP代理服务器可以服务多个不同类型业务的代理,图4中仅仅示出两种不同类型的HTTP业务类型,对于业务类型的个数根据实际所需来确定。这种通过UDP代理服务器代理转发HTTP请求的过程,避免了TCP连接的三次握手过程,同时也无需经过DNS请求,极大的提高了请求效率。

参见图5,图5为本发明实施例提供的一种通过UDP代理HTTP请求的装置的一种结构示意图,包括:

第一接收模块501,用于接收第一网络设备发送的UDP请求消息,UDP请求消息包括UDP请求头、统一资源标识符;

第一处理模块502,用于从UDP请求消息中解析UDP请求头,识别出HTTP域名,并根据HTTP域名及统一资源标识符构造HTTP请求消息,UDP请求头是根据HTTP域名构造的,HTTP请求消息的目的地址为第二网络设备;

这里,第一处理模块指的是UDP代理服务器处理第一网络设备发送的HTTP请求消息。

第一发送模块503,用于向第二网络设备发送HTTP请求消息。

这里的第一发送模块指的是UDP代理服务器向第二网络设备发送HTTP请求消息。

需要说明的是,在本装置实施例中,第一发送模块仅仅指的是逻辑上的传输关系,并不是指物理上符合UDP协议的端口的相互发送过程。例如第一发送模块可以是UDP代理服务器将请求消息发给第二网络设备,也可以将响应消息发给第一网络设备,而并不仅仅是指将符合UDP请求协议的请求消息发给第二网络设备或者将符合UDP响应协议的响应消息发给第二网络设备中的一种。

进一步的,第一接收模块501,还用于:

接收第二网络设备发送的HTTP响应消息,HTTP响应消息包括HTTP响应正文,HTTP响应消息用于响应HTTP请求消息;

相应的,第一处理模块502,还用于构造用于解析HTTP响应正文的第一UDP响应头;

这里,第一处理模块指的是UDP代理服务器处理第二网络设备发送的第一UDP响应消息。

第一发送模块503,还用于向第一网络设备发送第一UDP响应消息,第一UDP响应消息包括第一UDP响应头、HTTP响应正文,以使第一网络设备通过解析第一UDP响应头,读取HTTP响应正文,第一UDP响应头中包括用于读取HTTP响应正文的信息。

这里的第一发送模块指的是UDP代理服务器向第一网络设备发送第一UDP响应消息。

进一步的,第一处理模块501,还用于:

若在预设时间内未接收到第二网络设备发送的HTTP响应消息或者接收到第二网络设备发送的HTTP错误响应消息,构造第二UDP响应头;

这里,第一处理模块指的是UDP代理服务器处理第二网络设备发送的第二UDP响应消息。

第一发送模块,还用于向第一网络设备发送第二UDP响应消息,第二UDP响应消息包括第二UDP响应头,第二UDP响应消息用于通知第一网络设备UDP请求消息失败,以使第一网络设备通过解析第二UDP响应头,读取UDP请求消息失败的信息。

这里的第一发送模块指的是UDP代理服务器向第一网络设备发送第二UDP响应消息。

进一步的,第一处理模块502,还用于:

从UDP请求消息中解析UDP请求头,识别出UDP请求头的请求业务类型;

根据请求业务类型预先配置的域名,识别出HTTP域名。

参见图6,图6为本发明实施例提供的一种通过UDP代理HTTP请求的装置的另一种结构示意图,包括:

第二处理模块601,用于根据第一网络设备中的HTTP域名构造UDP请求头;

这里,第二处理模块指的是第一网络设备处理待发送的HTTP请求消息。

第二发送模块602,用于向UDP代理服务器发送UDP请求消息,UDP请求消息包括UDP请求头、统一资源标识符,以使UDP代理服务器从UDP请求消息中解析UDP请求头,识别出HTTP域名,并根据HTTP域名及统一资源标识符构造HTTP请求消息,发给第二网络设备。

本实施例中,一种通过UDP代理HTTP请求的装置还包括:

第二接收模块603,用于接收UDP代理服务器发送的第一UDP响应消息,第一UDP响应消息包括第一UDP响应头、HTTP响应正文,HTTP响应正文用于响应HTTP请求消息;

相应的,第二处理模块601,还用于从第一UDP响应消息中解析第一UDP响应头,读取HTTP响应正文,第一UDP响应头中包括用于读取HTTP响应正文的信息。

这里,第二处理模块指的是第一网络设备处理UDP代理服务器发送第一UDP响应消息。

进一步的,第二接收模块603,还用于:

接收UDP代理服务器发送的第二UDP响应消息,第二UDP响应消息包括第二UDP响应头,第二UDP响应消息用于通知第一网络设备UDP请求消息失败,第二UDP响应头是根据UDP代理服务器在预设时间内未接收到第二网络设备发送的HTTP响应消息或者接收到第二网络设备发送的HTTP错误响应消息构造的;

相应的,第二处理模块601,还用于从第二UDP响应消息中解析第二UDP响应头,读取UDP请求消息失败的信息。

这里,第二处理模块指的是第一网络设备处理UDP代理服务器发送第二UDP响应消息。

由此可见,本发明提供的一种通过UDP代理HTTP请求的方法和装置,通过UDP代理服务器先接收第一网络设备发送的UDP请求消息,然后根据该UDP请求消息构造标准的HTTP请求消息,最后将HTTP请求消息发给第二网络设备。这种通过UDP代理转发HTTP请求的方法,避免了TCP的三次握手和DNS请求,由于现有的DNS请求的消息格式是公开的规范,而且一定是从用户端发送到Local DNS服务器端;如果采用本发明的方法,则是私有的密文消息,且消息发往到配置在客户端的私有服务IP,并非Local DNS的IP,所以不被Local DNS劫持掉DNS查询请求。通过本发明实施例,有效的解决了针对请求正文较小的HTTP请求过程中,TCP的三次握手导致请求效率低的问题,以及HTTP请求过程中DNS请求被劫持问题,提高了请求效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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