本发明涉及网络通信
技术领域:
,尤其涉及一种报文的传输方法及装置。
背景技术:
:随着互联网数据通信技术的高速发展,用户对网页的安全问题越来越重视。通常利用客户端与服务器之间建立的网络防护设备对超文本传输协议(HyperTextTransferProtocol,HTTP)响应报文是否存在异常进行检测,当网络防护设备检测到HTTP响应报文存在异常时,网络防护设备向客户端发送重定向报文。现有技术方案中,网络防护设备采用分段传输方式对HTTP响应报文进行传输,由于HTTP响应报文指定了后续报文数据大小,因此当重定向报文的大小超过HTTP响应报文指定的后续报文大小时,多余的数据无法被网络防护设备正常传输,从而导致客户端无法正常进行重定向。技术实现要素:有鉴于此,本发明提供一种报文的传输方法及装置,网络防护设备可以正常向客户端传输重定向报文,以解决现有技术中客户端无法正常进行重定向的问题。为实现上述目的,本发明提供技术方案如下:根据本发明的第一方面,提出了一种报文的传输方法,应用在网络防护设备中,所述方法包括:接收客户端发送的HTTP请求报文;将与所述HTTP请求报文对应的HTTP响应报文的传输方式确定为分块传输方式,所述HTTP响应报文为服务器根据所述HTTP请求报文返回给所述网络防护设备的报文;基于所述HTTP响应报文与预设检测条件,确定是否需要对所述HTTP响应报文建立重定向报文;当确定需要对所述HTTP响应报文建立重定向报文时,基于所述HTTP响应报文建立与所述HTTP响应报文对应的重定向报文;以所述分块传输方式向所述客户端发送所述重定向报文,以使所述客户端根据所述重定向报文进行重定向。根据本发明的第二方面,提出了一种报文的传输装置,包括:HTTP请求报文接收模块,用于接收客户端发送的HTTP请求报文;第一确定模块,用于将与所述HTTP请求报文接收模块中接收的所述HTTP请求报文对应的HTTP响应报文的传输方式确定为分块传输方式,所述HTTP响应报文为服务器根据所述HTTP请求报文返回给所述网络防护设备的报文;预设检测条件匹配模块,用于基于所述第一确定模块中的所述HTTP响应报文,与预设检测条件,确定是否需要对所述HTTP响应报文建立重定向报文;重定向报文建立模块,用于当所述预设检测条件匹配模块中确定需要对所述第一确定模块中的所述HTTP响应报文建立重定向报文时,基于所述HTTP响应报文建立与所述HTTP响应报文对应的重定向报文;重定向报文发送模块,用于以所述分块传输方式向所述客户端发送所述重定向报文建立模块中建立的所述重定向报文,以使所述客户端根据所述重定向报文进行重定向。由以上技术方案可见,网络防护设备以分块传输方式将重定向报文发送到客户端,当重定向报文的大小超过HTTP响应报文指定的后续报文大小时,由于分块传输方式不限定重定向报文的大小,因此网络防护设备可以正常向客户端传输重定向报文,解决了现有技术中客户端无法正常进行重定向的问题。附图说明图1是应用本发明实施例报文的传输的一个应用场景示意图;图2是本发明提供的一个报文的传输方法的实施例流程图;图3是本发明提供的另一个报文的传输方法的实施例流程图;图4是本发明提供的再一个报文的传输方法的实施例流程图;图5是本发明提供的一种网络防护设备的硬件结构图;图6是本发明提供的一个报文的传输装置的实施例框图;图7是本发明提供的另一个报文的传输装置的实施例框图;图8是本发明提供的再一个报文的传输装置的实施例框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1是应用本发明实施例报文的传输的一个应用场景示意图,如图1所示,报文的传输系统包括:安装在个人计算机(PersonalComputer,PC)上的客户端11、WEB应用防火墙12、WEB服务器13,其中,WEB应用防火墙12是一种集WEB防护、网页保护、负载均衡、应用交付于一体的网络防护设备。本领域技术人员可以理解的是,上述的报文的传输系统中的客户端11、WEB应用防火墙12、WEB服务器13仅为示例性说明,其并不能形成对本发明的限制,客户端11还可以安装在手机、平板电脑、智能手表等终端设备上;WEB应用防火墙12还可以为入侵防御系统(IntrusionPreventionSystem,IPS)、安全网关(UnifiedThreatManagement,UTM)等网络防护设备;WEB服务器13还可以为FTP服务器、数据库服务器等设备。通常WEB应用防火墙12向WEB服务器13转发客户端11发送的HTTP请求报文,当WEB应用防火墙12接收到WEB服务器13针对HTTP请求报文返回的HTTP响应报文时,WEB应用防火墙12将HTTP响应报文的传输方式确定为分块传输方式。WEB应用防火墙12对HTTP响应报文进行异常检测,当检测到HTTP响应报文存在异常时,WEB应用防火墙12针对该HTTP响应报文建立重定向报文并通过分块传输方式将重定向报文发送到客户端上,使客户端根据该重定向报文进行重定向。本发明实施例,网络防护设备可以正常向客户端传输重定向报文,从而解决了现有技术中客户端无法正常进行重定向的问题。为对本发明进行进一步说明,提供下列实施例:图2是本发明提供的一个报文的传输方法的实施例流程图,本发明实施例结合图1、图2进行示例性说明,如图2所示,包括步骤如下:步骤201:接收客户端发送的HTTP请求报文。步骤202:将与HTTP请求报文对应的HTTP响应报文的传输方式确定为分块传输方式,HTTP响应报文为服务器根据HTTP请求报文返回给网络防护设备的报文。步骤203:基于HTTP响应报文与预设检测条件,确定是否需要对HTTP响应报文建立重定向报文。步骤204:当确定需要对HTTP响应报文建立重定向报文时,基于HTTP响应报文建立与HTTP响应报文对应的重定向报文。步骤205:以分块传输方式向客户端发送重定向报文,以使客户端根据重定向报文进行重定向。下面结合图1,以客户端为客户端11、网络防护设备为WEB应用防火墙12、服务器为WEB服务器13为例进行示例性说明:在步骤201中,在一实施例中,WEB应用防火墙12接收到客户端11发送的HTTP请求报文。在步骤202中,在一实施例中,WEB服务器13根据HTTP请求报文向WEB应用防火墙12返回一个HTTP响应报文,WEB应用防火墙12将HTTP响应报文的传输方式确定为分块传输方式。如下表1所示,为HTTP请求报文的结构示意图:表1表1中的第一行为请求行;第二行至第四行为请求头部,请求头部中包括的行数由客户端11根据不同的需求而设定;第六行为请求正文。当WEB应用防火墙12接收到客户端11发送的HTTP请求报文时,WEB应用防火墙12基于HTTP请求报文中的URI地址以及头部字段名中存在的域名确定第一URL,此处第一URL的确定过程为现有技术,故不作详述。如下表2所示,为HTTP响应报文的结构示意图:表2表2中的第一行为状态行;第二行至第四行为响应头部,响应头部中包括的行数由客户端11根据不同的需求而设定;第六行为响应正文。响应头部由“头部字段名:值”对组成,每行一对,名和值之间使用冒号分隔。例如,“头部字段名:值”可以为“Content-Length:500”、“Transfer-Encoding:chunked”,Content-Length为第一字段名;Transfer-Encoding为第二字段名。其中,“Content-Length:500”表示WEB应用防火墙12采用Content-Length的传输方式对HTTP响应报文进行传输,其中Content-Length的传输方式为分段传输方式;HTTP响应报文的长度为500字节;“Transfer-Encoding:chunked”表示WEB应用防火墙12采用Transfer-Encoding的传输方式对HTTP响应报文进行传输,其中Transfer-Encoding的传输方式为分块传输方式;分块传输方式对应的值为chunked。同一个HTTP响应报文中分段传输方式与分块传输方式不能同时存在。本领域技术人员可以理解的是,表1和表2的结构示意图为现有技术,此处对表1和表2进行描述的目的是为了让本领域技术人员更好地理解本发明的实施例,表1和表2仅为示例性说明,其并不能形成对本发明的限制,在步骤203中,在一实施例中,WEB应用防火墙12获取检测条件列表,检测条件列表可以为WEB应用防火墙12建立的列表,也可以为客户端11建立后发送给WEB应用防火墙12的列表。检测条件列表如表3所示,以包含2条预设检测条件为例进行说明:表3序列号预设检测条件1Trojan2>512字节在上述表3中,检测条件列表所包含的预设检测条件可以为一串字符,或者为报文大小的阈值等条件。WEB应用防火墙12将HTTP响应报文与检测条件列表中的至少一条预设检测条件逐一进行匹配。例如,一条预设检测条件为“Trojan”,若HTTP响应报文中存在“Trojan”字符,则该HTTP响应报文与检测条件列表中记录的该条预设检测条件匹配成功,则HTTP响应报文被判断为异常,即确定需要对HTTP响应报文建立重定向报文。在步骤204中,当HTTP响应报文与WEB应用防火墙12中建立的检测条件列表中的一条预设检测条件匹配成功时,该HTTP响应报文被判断为异常,WEB应用防火墙12确定需要对HTTP响应报文建立重定向报文,基于该HTTP响应报文建立与该HTTP响应报文对应的重定向报文。在步骤205中,在一实施例中,WEB应用防火墙12以分块传输方式向客户端11发送重定向报文,以使客户端11根据该重定向报文进行重定向。本发明实施例中,网络防护设备以分块传输方式将重定向报文发送到客户端,当重定向报文的大小超过HTTP响应报文指定的后续报文大小时,由于分块传输方式不限定重定向报文的大小,因此网络防护设备可以正常向客户端传输重定向报文,解决了现有技术中客户端无法正常进行重定向的问题。图3是本发明提供的另一个报文的传输方法的实施例流程图,本发明实施例结合图1、图2进行示例性说明,如图3所示,包括步骤如下:步骤301:网络防护设备获取检测条件列表,检测条件列表中包括至少一条预设检测条件,预设检测条件可以为报文大小的阈值或一串字符。步骤302:客户端向网络防护设备发送HTTP请求报文。步骤303:网络防护设备基于HTTP请求报文确定第一URL。步骤304:网络防护设备向服务器发送HTTP请求报文。步骤305:服务器根据HTTP请求报文向网络防护设备返回HTTP响应报文。步骤306:网络防护设备将HTTP响应报文的传输方式确定为分块传输方式。步骤307:网络防护设备将HTTP响应报文与网络防护设备中建立的检测条件列表中的至少一条预设检测条件逐一进行匹配,确定是否需要对HTTP响应报文建立重定向报文。步骤308:当确定需要对HTTP响应报文建立重定向报文,网络防护设备将第一URL与预设的重定向列表中各条重定向表项记录的URL地址逐一进行匹配。步骤309:当第一URL与预设的重定向列表中一条重定向表项记录的URL地址匹配成功时,网络防护设备将一条重定向表项记录的URL地址确定为第二URL。步骤310:网络防护设备根据第二URL建立重定向报文。步骤311:网络防护设备以分块传输方式向客户端发送重定向报文。步骤312:客户端根据重定向报文进行重定向。下面结合图1,以客户端为客户端11、网络防护设备为WEB应用防火墙12、服务器为WEB服务器13为例进行示例性说明:在步骤301中,WEB应用防火墙12获取检测条件列表,检测条件列表中包括至少一条预设检测条件,预设检测条件可以为报文大小的阈值或一串字符,例如:“Trojan”、“512字节”。本领域技术人员可以理解的是,步骤301和步骤302-步骤306并无时序上的先后关系,在执行步骤307之前的任一步骤,都可以执行步骤301。在步骤302中,客户端11向WEB应用防火墙12发送HTTP请求报文。在步骤303中,WEB应用防火墙12基于HTTP请求报文确定第一URL,例如,第一URL为http://www.sohu.com/domain/HXWZ。在步骤304中,WEB应用防火墙12向WEB服务器13发送HTTP请求报文。在步骤305中,WEB服务器13根据HTTP请求报文向WEB应用防火墙12返回HTTP响应报文。在步骤306中,在一实施例中,WEB应用防火墙12将HTTP响应报文的传输方式确定为分块传输方式。WEB应用防火墙12查找HTTP响应报文的响应头部中的头部字段名是否存在第一字段名,当HTTP响应报文的响应头部中的头部字段名存在第一字段名时,WEB应用防火墙12将该头部字段名中的第一字段名变更为第二字段名,并将头部字段名对应的值变更为与第二字段名对应的值。具体的,WEB应用防火墙12查找HTTP响应报文中的头部字段名是否存在Content-Length,若存在,WEB应用防火墙12将该头部字段名变更为Transfer-Encoding,头部字段名对应的值变更为chunked。可选的,当WEB应用防火墙12查找HTTP响应报文的响应头部中的头部字段名不存在第一字段名时,WEB应用防火墙12查找HTTP响应报文的响应头部中的头部字段名是否存在第二字段名,若存在,WEB应用防火墙12将HTTP响应报文的传输方式确定为分块传输方式。具体的,当WEB应用防火墙12查找HTTP响应报文的响应头部中的头部字段名不存在Content-Length时,WEB应用防火墙12查找HTTP响应报文的响应头部中的头部字段名是否存在Transfer-Encoding,若存在,WEB应用防火墙12将HTTP响应报文的传输方式确定为分块传输方式。在步骤307中,在一实施例中,WEB应用防火墙12将HTTP响应报文与检测条件列表中的至少一条预设检测条件逐一进行匹配,若匹配成功即为确定需要对HTTP响应报文建立重定向报文,若未成功即为确定不需要对HTTP响应报文建立重定向报文。在步骤308中,当HTTP响应报文与WEB应用防火墙12中建立的检测条件列表中的一条预设检测条件匹配成功时,WEB应用防火墙12将第一URL与WEB应用防火墙12中预设的重定向列表进行匹配,其中,预设的重定向列表中记录多条重定向表项,每条重定向表项中记录了一组URL地址的对应关系。例如,WEB应用防火墙12中建立的检测条件列表中的一条预设检测条件设定的判断条件为“Trojan”,若HTTP响应报文中存在“Trojan”字符,则该HTTP响应报文与该表项中的“Trojan”匹配成功,WEB应用防火墙12确定需要对该HTTP响应报文建立重定向报文。若WEB服务器13中预设的重定向列表中的一条重定向表项中记录了http://www.sohu.com/domain/HXWZ与http://www.sohu.com的对应关系,WEB应用防火墙12将http://www.sohu.com/domain/HXWZ与重定向列表中的该条重定向表项匹配成功。在步骤309中,当第一URL与预设的重定向列表中一条重定向表项记录的URL地址匹配成功时,WEB应用防火墙12将一条重定向表项记录的URL地址确定为第二URL。例如,结合步骤308,http://www.sohu.com被确定为第二URL。在步骤310中,WEB应用防火墙12根据第二URL建立重定向报文,此处WEB应用防火墙12根据第二URL建立重定向报文的方法为现有技术,故不作详述。在步骤311中,WEB应用防火墙12以分块传输方式向客户端11发送重定向报文。在步骤312中,客户端11根据重定向报文进行重定向,此处客户端11根据重定向报文进行重定向的方法为现有技术,故不作详述。本发明实施例中,WEB应用防火墙12以分块传输方式将重定向报文发送到客户端11,WEB应用防火墙12可以正常向客户端11传输重定向报文,解决了现有技术中客户端11无法正常进行重定向的问题。图4是本发明报文的传输方法的另一个实施例流程图,本发明实施例结合图1、图2、图3进行示例性说明,如图4所示,包括如下步骤:步骤401:客户端向网络防护设备发送HTTP请求报文。步骤402:网络防护设备基于HTTP请求报文确定第一URL。步骤403:网络防护设备向服务器发送HTTP请求报文。步骤404:服务器根据HTTP请求报文向网络防护设备返回HTTP响应报文。步骤405:网络防护设备将HTTP响应报文的传输方式确定为分块传输方式。步骤406:网络防护设备将HTTP响应报文与网络防护设备中建立的检测条件列表中的至少一条预设检测条件逐一进行匹配。步骤407:当网络防护设备确定不需要对HTTP响应报文建立重定向报文时,网络防护设备以分块传输方式向客户端发送HTTP响应报文。下面结合图1,以客户端为客户端11、网络防护设备为WEB应用防火墙12、服务器为WEB服务器13为例进行示例性说明:步骤401-步骤406,此处描述可以参见图3所示步骤302至步骤307的相关描述,在此不再详述。在步骤407中,当HTTP响应报文与WEB应用防火墙12中建立的检测条件列表中的至少一条预设检测条件均未匹配成功时,表示该HTTP响应报文不存在异常,WEB应用防火墙12确定不需要对HTTP响应报文建立重定向报文。WEB应用防火墙12以分块传输方式向客户端11发送HTTP响应报文。本发明实施例中,WEB应用防火墙12将HTTP响应报文的传输方式确定为分块传输方式,WEB应用防火墙12以分块传输方式向客户端11发送HTTP响应报文,解决了当HTTP响应报文指定后续报文数据长度小于实际长度时,客户端11无法正常接收HTTP响应报文的问题。对应于上述报文的传输方法,本发明还提出了图5所示的网络防护设备的硬件结构图。请参考图5,在硬件层面,该网络防护设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成报文的传输装置。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。图6是本发明提供的一个报文的传输装置的实施例框图,如图6所示,该报文的传输装置可以包括:HTTP请求报文接收模块61、第一确定模块62、预设检测条件匹配模块63、重定向报文建立模块64、重定向报文发送模块65,其中:HTTP请求报文接收模块61,用于接收客户端发送的HTTP请求报文;第一确定模块62,用于将与HTTP请求报文接收模块61中接收的HTTP请求报文对应的HTTP响应报文的传输方式确定为分块传输方式,HTTP响应报文为服务器根据HTTP请求报文返回给网络防护设备的报文;预设检测条件匹配模块63,用于基于第一确定模块62中的HTTP响应报文,与预设检测条件,确定是否需要对HTTP响应报文建立重定向报文;重定向报文建立模块64,用于当预设检测条件匹配模块63中确定需要对第一确定模块62中的HTTP响应报文建立重定向报文时,基于HTTP响应报文建立与HTTP响应报文对应的重定向报文;重定向报文发送模块65,用于以分块传输方式向客户端发送重定向报文建立模块64中建立的重定向报文,以使客户端根据重定向报文进行重定向。图7是本发明提供的另一个报文的传输装置的实施例框图,如图7所示,在上述图6所示实施例的基础上,第一确定模块62包括:第一字段名查找单元621,用于查找第一确定模块62中的HTTP响应报文的响应头部中的头部字段名是否存在第一字段名;第二字段名变更单元622,用于当第一确定模块62中的HTTP响应报文的响应头部中的头部字段名存在第一字段名查找单元621中的第一字段名时,将头部字段名中的第一字段名变更为第二字段名,并将头部字段名对应的值变更为与第二字段名对应的值。在一实施例中,报文的转发装置还包括:第二字段名查找模块66,用于当第一确定模块62中的HTTP响应报文的响应头部中的头部字段名不存在第一字段名查找单元621中的第一字段名时,查找响应头部中的头部字段名是否存在第二字段名变更单元622中的第二字段名;第二确定模块67,用于当响应头部中的头部字段名存在第二字段名时,将HTTP响应报文的传输方式确定为分块传输方式。图8是本发明提供的另一个报文的传输装置的实施例框图,如图8所示,在上述图7所示实施例的基础上,报文的转发装置还包括:检测条件列表获取模块68,用于获取检测条件列表,检测条件列表中包括至少一条预设检测条件匹配模块63中的预设检测条件,预设检测条件为报文大小的阈值或一串字符。在一实施例中,预设检测条件匹配模块63包括:预设检测条件匹配单元631,用于将第一确定模块62中的HTTP响应报文与检测条件列表获取模块68中获取的检测条件列表中的至少一条预设检测条件逐一进行匹配,若匹配成功即为确定需要对HTTP响应报文建立重定向报文,若未成功即为确定不需要对HTTP响应报文建立重定向报文。在一实施例中,报文的转发装置还包括:HTTP响应报文发送模块69,用于当预设检测条件匹配模块63中确定不需要对HTTP响应报文建立重定向报文时,以分块传输方式将HTTP响应报文发送到客户端。在一实施例中,重定向报文建立模块64包括:第一URL确定单元641,用于当预设检测条件匹配模块63中确定需要对HTTP响应报文建立重定向报文时,基于HTTP请求报文确定第一URL,第一URL为接收到客户端发送的HTTP请求报文时基于HTTP请求报文确定的URL地址;重定向列表匹配单元642,用于将第一URL确定单元641中确定的第一URL与预设的重定向列表中各条重定向表项记录的URL地址逐一进行匹配;第二URL确定单元643,用于当重定向列表匹配单元642中第一URL与预设的重定向列表中一条重定向表项记录的URL地址匹配成功时,将一条重定向表项记录的URL地址确定为第二URL;重定向报文建立单元644,用于根据第二URL确定单元643中确定的第二URL建立重定向报文。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例可见,网络防护设备以分块传输方式将重定向报文发送到客户端,当重定向报文的大小超过HTTP响应报文指定的后续报文大小时,由于分块传输方式不限定重定向报文的大小,因此网络防护设备可以正常向客户端传输重定向报文,解决了现有技术中客户端无法正常进行重定向的问题。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本
技术领域:
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3