一种基于模式匹配的HTTP请求报文识别方法技术

技术编号:13957540 阅读:57 留言:0更新日期:2016-11-02 16:07
本发明专利技术提供了一种基于模式匹配的HTTP请求报文识别方法,该方法将HTTP请求报文进行分类,利用表达式组对HTTP请求报文包含的3个重要字段:GET、Host、Referer分别GET、Host、Referer算法匹配,当GET、Host、Referer三个字段都成功匹配后,认为HTTP请求报文匹配成功,并将其识别为一种分类。该方法专用于HTTP请求报文的识别,充分考虑程序处理效率的情况下,满足“HTTP请求报文识别”的灵活性,识别精确,如果需要提高精确性,可将GET匹配算法应用到其它字段。

【技术实现步骤摘要】

本专利技术属于数据包识别领域,尤其涉及到一种基于模式匹配的HTTP请求报文识别方法
技术介绍
在项目应用环境下,技术人员需要对流经设备的HTTP报文中的请求报文进行快速的识别、查询。同时,必须注意到以下几点:1.由于请求报文的多样性,识别方法必须具有一定的灵活性。2.为提高系统处理能力,识别效率必须尽量提升。3.为提高系统处理能力,查询必须高效。常规的方法是使用正规表达式来进行匹配,但正规表达式存在过于庞大、效率较低的情况,所以并不适用于要求效率的项目环境。
技术实现思路
为解决上述问题,本专利技术提出了一种基于模式匹配的HTTP请求报文识别方法,所述HTTP请求报文包括GET、Host、Referer三个字段,所述方法包括如下步骤:步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组,每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式。步骤二:选中一条待识别HTTP请求报文,进行如下操作:S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组。S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1。S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1。S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1。S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文。步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。2. 如权利要求1所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,GET匹配算法包括的逻辑操作有or、^、and。3. 如权利要求1或2所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,每个表达式组还包括HASH运算表达式,HASH运算算法具有三种操作符,分别为>、<、FileName,分别用于从左到右边截取GET字段字符串、从右到左边截取GET字段字符串、截取GET字段中的文件名。4.如权利要求3所述的基于模式匹配的HTTP请求报文识别方法,其特征在于,在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值。附图说明图1为实例举例列表。具体实施方式本专利技术的设计构思为:将HTTP请求报文进行分类,利用表达式组对HTTP请求报文包含的3个重要字段:GET、Host、Referer分别GET、Host、Referer算法匹配,当GET、Host、Referer三个字段都成功匹配后,认为HTTP请求报文匹配成功,并将其识别为一种分类。在对详细步骤进行说明前,对本专利技术涉及到的算法进行说明。1. GET匹配算法GET匹配为多模匹配,其分为操作逻辑、模式串两部份。操作逻辑有两种:与(and)、或(or),表明了模式串的操作逻辑。模式串:以空格为分隔的几个字符串,字符串前的非(^)符号,表示不能匹配该串。下面对不同操作逻辑的情况进行说明。a.操作逻辑是or(或)时:没有^(非)逻辑的:字符串A 字符串B 字符串CGET字段中,包含A或包含B或包含C,匹配成功。包括^(非)逻辑的:^字符串A 字符串B 字符串CGET字段中,不包含A,但包含B或包含C,匹配成功。b.操作逻辑是and(与)的:没有^(非)逻辑的:字符串A 字符串B 字符串CGET字段中,包含A且包含B且包含C,匹配成功。c.包括^(非)逻辑的:^字符串A 字符串B 字符串CGET字段中,不包含A,但包含B且包含C,匹配成功。2. Referer匹配算法Referer匹配算法用于对Referer字段进行单模匹配。3. Host匹配算法Host匹配算法用于对Host字段进行单模匹配。4. HASH算法用于从GET字段中截取关键字符串,作为进行HASH运算的部分字段,HASH运算具有三种操作符,分别为>、<、FileName,作用分别如下:>:从左至右运算,截取从左边字符串到右边字符串之间的内容,作为备HASH字符串。<:从右至左运算,截取从右边字符串到左边字符串之间的内容,作为备HASH字符串。FileName:截取GET字段中包含的文件名,作为备HASH字符串。HASH算法将取到的“分类名”和“备HASH字符串”进行字符串拼接,之后进行HASH化,计算为HASH值,备后期查询。下面对本专利技术的工作步骤进行说明。本专利技术包括如下步骤:步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组(可为多个,因为一种分类下很可能含有若干种同源但不相同的HTTP请求包,需要分别有对应的表达式组进行匹配),每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式。步骤二:选中一条待识别HTTP请求报文,进行如下操作:S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组;S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1;S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1;S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1;S2.5:重复执行步骤S2.1- S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文;步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。在上述方法的基础上,本专利技术还有进一步的优化方案。即每个表达式组还包括HASH运算表达式,在S2.5中,如果遇到匹配的表达式组,则根据需要截取GET字段的字符串,将其与步骤S2.4对应的分类名进行字符串拼接,之后进行HASH运算得到HASH值,备后期查询。下面结合图1的应用实例对本专利技术进行说明。步骤一:接收到一个淘宝jpg图片的HTTP请求报文,该报文Host: www.tbcdn.cn。步骤二:先将请求报文解释为HTTP字段,包括:Host、Referer、GET。步骤三:用Host匹配算法,对Host字段进行匹配,如匹配失败则继续匹配下一条接收到的请求报文。如匹配成功则执行步骤四。步骤四:用Referer匹配算法,对Referer字段进行匹配。匹配规则为空,视为匹配成功:进入下一步。步骤五:用Get匹配算法,匹配GET字段。GET中,包含.jpg或者.png字符串的,视为匹配成功,进入步骤六。步骤六:将该请求报文识别为分类“taobao”。步骤七:根据HASH算法,将该请求报文中的请求文件名提取出来。步骤八:根据六、步骤七的结果生成“taobao>文件名”的字符串,然后将该本文档来自技高网...

【技术保护点】
一种基于模式匹配的HTTP请求报文识别方法,所述HTTP请求报文包括GET、Host、Referer三个字段,其特征在于,所述方法包括如下步骤:步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组,每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式;步骤二:选中一条待识别HTTP请求报文,进行如下操作:S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组;S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1;S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1;S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,否则返回S2.1;S2.5:重复执行步骤S2.1‑ S2.4,直到遇到匹配的表达式组,如遍历完所有表达式组后不能匹配,则丢弃该HTTP请求报文;步骤三:重复步骤二,直到遍历完所有待识别的HTTP请求报文。...

【技术特征摘要】
1.一种基于模式匹配的HTTP请求报文识别方法,所述HTTP请求报文包括GET、Host、Referer三个字段,其特征在于,所述方法包括如下步骤:步骤一:预先定义HTTP请求报文的分类及其对应的分类名,每个分类下有至少一条表达式组,每个表达式组包括Host匹配算法表达式、Referer匹配算法表达式、GET匹配算法表达式;步骤二:选中一条待识别HTTP请求报文,进行如下操作:S2.1:选择一个没有对所述HTTP请求报文进行过匹配计算的表达式组;S2.2:利用S2.1选择的表达式组对HTTP请求报文的Host字段进行Host匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.3,否则返回S2.1;S2.3:对HTTP请求报文的Referer字段进行匹配运算,如果匹配算法字段为空或匹配成功则进行步骤S2.4,否则返回S2.1;S2.4:对HTTP请求报文的GET字段进行匹配运算,如果匹配成功则识别出HTTP请求报文对应的分类名,...

【专利技术属性】
技术研发人员:钟昊华
申请(专利权)人:成都广达新网科技股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1