CN102882703B - 一种基于http分析的url自动分类分级的系统及方法 - Google Patents
一种基于http分析的url自动分类分级的系统及方法 Download PDFInfo
- Publication number
- CN102882703B CN102882703B CN201210320169.6A CN201210320169A CN102882703B CN 102882703 B CN102882703 B CN 102882703B CN 201210320169 A CN201210320169 A CN 201210320169A CN 102882703 B CN102882703 B CN 102882703B
- Authority
- CN
- China
- Prior art keywords
- http
- server
- client
- content
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于HTTP分析的URL自动分类分级的系统和方法,该系统包括用于分发HTTP请求/响应报文镜像数据流的HTTP请求/响应报文预处理器、用于对HTTP请求报文镜像数据流进行重组的HTTP请求报文解析服务器、用于对HTTP响应报文镜像数据流进行重组的HTTP响应报文解析服务器、交换机、用于存储报文信息的HTTP存储关联服务器和用于对URL进行自动分类分级的HTTP分级分类服务器。该方法包括以下步骤:预处理HTTP报文镜像数据流得到HTTP请求/响应报文镜像数据流,并对其进行分发;对请求/响应报文镜像数据流进行重组,将从重组数据中提取到的报文信息存储起来;对存储的信息进行关联;根据关联信息对URL分类分级。本发明能够实现对URL的高效的分类分级。
Description
技术领域
本发明涉及网络行为监控与网络行为管理技术领域,更具体地,涉及一种基于HTTP分析的URL自动分类分级的系统及方法。
背景技术
据互联网追踪机构Netcraft在2011年10月9日的统计报告显示:全球网站总量约5亿,其中真正处于活动状态的仅为1.5亿。根据数据分析:目前全球网站总数庞大,“垃圾网站”超过50%,并且处于增长态势,互联网环境有待于清理及净化。在中国社会科学院2011年发布的《新媒体蓝皮书》中显示:2010年中国互联网站总数达191万,网页数量600亿。
众所周知,互联网上的网页和所有其他资源都是通过URL标识的,而网络资源访问的一半以上是通过HTTP协议承载的。面对如此众多的URL,仅凭人工标识达到分类分级的目的显然是不现实的。
现有常用的HTTP报文的TCP分片重组算法是:将HTTP协议的TCP分片按照src_ip、dst_ip、src_port、server_ip四元组匹配,并且以SYN报文的seqno作为起始序号,以FIN报文的seqno作为结束序号,进行TCP流的跟踪和重组,得到一个完整的TCP流后,再对上层的HTTP协议进行解析。这样做的缺点是:(1)HTTP/1.1标准中,一个TCP流中可以包含多次的HTTP的Request与Response,对HTTP解析提取增加的判断复杂性。(2)HTTP Response报文可能承载着音视频数据,造成TCP流的持续时间很长,增加了系统的时间与空间的开销。
发明内容
为了解决上述现有技术存在的缺陷,本发明提出一种基于HTTP分析的URL自动分类分级的系统及方法。该方法可以独立对URL进行分类分级,也可以结合人工标识对URL进行分类分级,并且还可以作为预处理阶段的方法。
根据本发明的一方面,提出一种基于HTTP分析的URL自动分类分级系统,其特征在于,该系统包括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分类分级服务器相连,用于对HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器及运行其上的程序进行远程配置管理,同时也作为HTTP请求报文解析服务器、HTTP响应报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器之间的数据传输通道;
所述HTTP存储关联服务器与所述交换机相连,用于根据所述报文信息中的五元组信息,将所述HTTP请求文件记录与所述HTTP响应文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;
所述HTTP分类分级服务器与所述交换机相连,用于根据用户定制的策略,通过所述交换机访问所述HTTP关联存储服务器中的记录信息,对URL进行分类分级。
根据本发明的另一方面,提出一种基于HTTP分析的URL自动分类分级方法,其特征在于,该方法包括以下步骤:
步骤S1,在骨干网的路由器上获取HTTP报文镜像数据流;
步骤S2,HTTP Request/Response报文预处理器对所述HTTP报文镜像数据流进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发送给HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发送给HTTP响应报文解析服务器;
步骤S3,所述HTTP请求报文解析服务器对所接收的HTTP请求报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上;
步骤S4,所述HTTP响应报文解析服务器对所接收的HTTP响应报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上;
步骤S5,HTTP存储关联服务器根据由client_ip、server_ip、client_port、server_port、rel_seqno组成的五元组信息,将所述HTTP请求文件记录与所述HTTP响应文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;
步骤S6,HTTP分类分级服务器根据用户定制的策略,访问所述HTTP关联存储服务器中的记录信息,将URL进行分类分级。
根据上述本发明的技术方案,本发明的有益效果为:(1)只针对已识别的HTTP报文的第一个TCP分片建立流表表项,以client_ip、server_ip、client_port、server_ip、ack_seqno为索引,后续TCP分片根据索引查找对应的表项,并根据seqno进行排列重组;(2)以HTTP报首和数据的分隔符为重组结束标志,对于HTTP Response报文,由于只关注报首的重组,从而对于持续时间长的TCP流,大大地节省了系统时间与空间的开销。
附图说明
图1为本发明基于HTTP分析的URL自动分类分级系统结构图。
图2为本发明基于HTTP分析的URL自动分类分级方法流程图。
图3为本发明HTTP Request报文报首重组解析逻辑图。
图4为本发明HTTP Response报文报首重组解析逻辑图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。
图1为本发明基于HTTP分析的URL自动分类分级系统结构图,如图1所示,根据本发明的一方面,提出一种基于HTTP分析的URL自动分类分级系统,该系统包括:HTTP请求/响应Request/Response报文预处理器、HTTP请求Request报文解析服务器、HTTP响应Response报文解析服务器、交换机、HTTP存储关联服务器和HTTP分级分类服务器,其中:
所述HTTP Request/Response报文预处理器用于接收所述HTTP报文镜像数据流并对其进行预处理得到HTTP Request报文镜像数据流和HTTPResponse报文镜像数据流,并将所述HTTP Request报文镜像数据流发给HTTP Request报文解析服务器,将HTTP Response报文镜像数据流发给HTTP Response报文解析服务器。具体地,所述HTTP Request/Response报文预处理器具有4个网络接口,网络接口1用于接收HTTP报文镜像数据流,并对其进行预处理:根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP Request报文镜像数据流,将源端口号为80、8080、443的HTTP报文镜像数据流标识为HTTPResponse报文镜像数据流;网络接口2用于将所述HTTP Request报文镜像数据流发送给所述HTTP Request报文解析服务器;网络接口3用于将所述HTTP Response报文镜像数据流发送给所述HTTP Response报文解析服务器;网络接口4与所述交换机连接,用于对HTTP Request/Response报文预处理器及运行其上的程序进行配置管理。
所述HTTP Request报文解析服务器与所述HTTP Request/Response报文预处理器连接,用于对所接收的HTTP Request报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上;所述HTTPRequest报文解析服务器具有2个网络接口,网络接口1与HTTPRequest/Response报文预处理器的网络接口2相连,用于接收所述HTTPRequest报文镜像数据流,并对其进行重组处理,然后将重组处理后的所述HTTP Request报文进行解析,提取出客户端IP地址(client_ip)、服务器IP地址(server_ip)、客户端端口号(client_port)、服务器端口号(server_port)、关联序列号(rel_seqno)、主机(Host)、请求URL(Request-URL)等报文信息,并将提取出的上述报文信息以HTTP Request文件记录的形式通过与所述交换机相连的网络接口2存储到所述HTTP存储关联服务器上,另外,还可通过所述网络接口2对HTTP Request报文解析服务器及运行其上的程序进行远程配置管理;
所述HTTP Response报文解析服务器与所述HTTP Request/Response报文预处理器连接,用于对所接收的HTTP Response报文镜像数据流进行重组处理,从重组后的数据流中提取报文信息,并将所述报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上;所述HTTPResponse报文解析服务器具有2个网络接口,网络接口1与HTTPRequest/Response报文预处理器的网络接口3相连,用于接收所述HTTPResponse报文镜像数据流,并对其进行重组处理,然后将重组处理后的所述HTTP Response报文进行解析,提取出客户端IP地址(client_ip)、服务器IP地址(server_ip)、客户端端口号(client_port)、服务器端口号(server_port)、关联序列号(rel_seqno)、内容类型(Content-Type)、内容编码(Content-Encoding)、内容语言(Content-Language)、内容长度(Content-Length)等报文信息,并将提取出的上述报文信息以HTTPResponse文件记录的形式通过与所述交换机相连的网络接口2存储到所述HTTP存储关联服务器上,另外,还可通过所述网络接口2对HTTPResponse报文解析服务器及运行其上的程序进行远程配置管理;
所述交换机进一步为通讯千兆交换机,所述通讯千兆交换机与HTTPRequest/Response报文预处理器、HTTP Request报文解析服务器、HTTPResponse报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器的配置管理网络接口相连,用于使系统维护人员对HTTPRequest/Response报文预处理器、HTTP Request报文解析服务器、HTTPResponse报文解析服务器及运行其上的程序进行远程配置管理,另外也作为HTTP Request报文解析服务器、HTTP Response报文解析服务器、HTTP存储关联服务器、HTTP分类分级服务器之间的数据传输通道。
所述HTTP存储关联服务器与所述交换机相连,用于根据所述报文信息中的client_ip、server_ip、client_port、server_port、rel_seqno五元组信息,将所述HTTP Request文件记录与所述HTTP Response文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件。所述HTTP存储关联服务器具有1个网络接口,所述HTTP存储关联服务器通过该网络接口与所述交换机连接,用于与HTTP Request报文解析服务器、HTTPResponse报文解析服务器、HTTP分类分级服务器之间进行数据传输,并可通过该网络接口对HTTP存储关联服务器及运行其上的程序进行远程配置管理。
所述HTTP分类分级服务器与所述交换机相连,用于根据用户定制的策略,通过所述交换机访问所述HTTP关联存储服务器中的记录信息,对URL进行分类分级,HTTP分类分级服务器具有1个网络接口,所述HTTP分类分级服务器通过该网络接口与所述交换机连接,用于与HTTP存储关联服务器之间进行数据传输,并可通过该网络接口对HTTP分类分级服务器及运行其上的程序进行远程配置管理。
图2为本发明基于HTTP分析的URL自动分类分级方法流程图,如图2所示,根据本发明的另一方面,还提出一种基于HTTP分析的URL自动分类分级方法,该方法包括以下步骤:
步骤S1,在骨干网的路由器上获取HTTP报文镜像数据流;
步骤S2,HTTP Request/Response报文预处理器对所述HTTP报文镜像数据流进行预处理得到HTTP Request报文镜像数据流和HTTPResponse报文镜像数据流,并将所述HTTP Request报文镜像数据流发送给HTTP Request报文解析服务器,将HTTP Response报文镜像数据流发送给HTTP Response报文解析服务器;
所述预处理进一步为:根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP Request报文镜像数据流,将源端口号为80、8080、443的HTTP报文镜像数据流标识为HTTPResponse报文镜像数据流。
步骤S3,所述HTTP Request报文解析服务器对所接收的HTTPRequest报文镜像数据流进行重组处理,然后将重组处理后的所述HTTPRequest报文进行解析,提取出client_ip、server_ip、client_port、server_port、rel_seqno、Host、Request-URI等报文信息,并将提取出的上述报文信息以HTTP Request文件记录的形式存储到HTTP存储关联服务器中;
该步骤中,所述HTTP Request报文解析服务器对所述HTTP Request报文镜像数据流进行重组处理进一步包括以下步骤(如图3所示):
步骤S300,获取所述HTTP Request报文镜像数据流的当前TCP分片,进入步骤S310;
步骤S310,解析所述HTTP Request报文镜像数据流的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端口号server_port,ack序列号ack_seqno等信息,根据获取的这些信息计算出下一报文序列号next_seqno和关联序列号rel_seqno;根据HTTP Request报文的报首特征,判断该TCP分片是否为HTTP Request报文报首的第一个TCP分片,若是,则继续判断HTTPRequest报文的报首是否完整,如果完整则进入步骤S320,否则进入步骤S330;如果该TCP分片不是HTTP Request报文报首的第一个TCP分片,则以client_ip,server_ip,client_port,server_port,ack_seqno为索引查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S340,否则结束本次流程,回到步骤S300进入下一次流程;
对于HTTP报首的开始与结束的判断方法,可参考RFC2068标准文档。
其中,采用如下公式根据获取的client_ip,server_ip,client_port,server_port,ack_seqno等信息计算出next_seqno,rel_seqno:
next_seqno=seqno+payload_length,rel_seqno=next_seqno,
其中,seqno为TCP分片报首中的序列号,payload_length为TCP有效载荷长度。
所述根据HTTP Request报文的报首特征,判断该TCP分片是否为HTTP Request报文报首的第一个TCP分片进一步为:以″\r\n″为行结束符,从TCP分片的数据段中提取首行数据,将其与HTTP Requset报文的请求行的正则表达式″GET.*HTTP./.″进行匹配,若匹配成功,则判断该TCP分片是HTTP Request报文报首的第一个TCP分片;若否,则不是。
步骤S320,解析所述HTTP Request报文的报首,从中提取出HTTP版本号HTTP Version,请求URI Request-URI,主机Host等信息;将所述步骤S310得到的client_ip,server_ip,client_port,server_port,rel_seqno以及主机Host、Request-URI等信息以HTTP Request文件记录的形式写入HTTP关联存储服务器,并删除所述步骤S310中匹配的HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程;
步骤S330,以client_ip,server_ip,client_port,server_port,ack_seqno为索引,新建一个HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程;
每个HTTP流表表项包含两个数据结构:一个链表List<TcpSegment>和一个搜索二叉树Tree<seqno,TcpSegment>。所述链表用于存放已重组好的TCP分片;所述搜索二叉树用于存放未重组的TCP分片,并且以TCP分片的seqno作为搜索二叉树的键值key。
在步骤S330中,新建一个HTTP流表表项时,链表List<TcpSegment>和搜索二叉树Tree<seqno,TcpSegmet>均为空,将该TCP分片放入链表List<TcpSegment>的首部,并回到步骤S300。
步骤S340,对与所述索引匹配的HTTP流表表项进行TCP重组,重组后再判断所述HTTP Request报文的报首是否完整,若完整则返回步骤S320,否则结束本次流程,回到步骤S300进入下一次流程。
步骤S340中,对与索引匹配的HTTP流表表项进行TCP重组进一步为:
如果找到一个与该TCP分片的索引匹配的HTTP流表表项,则判断该TCP分片的seqno是否等于List<TcpSegment>链表尾部的TCP分片的下一报文序列号next_seqno:如果二者相等,那么就将该TCP分片加入List<TcpSegment>链表的尾部,并且遍历Tree<seqno,TcpSegmet>搜索二叉树,对搜索二叉树中的每一个TCP分片重复上述比较,直至遍历完整个Tree<seqno,TcpSegmet>搜索二叉树或者在相应的TCP分片的数据段中匹配到字符串″\r\n\r\n″,如果是匹配到字符串″\r\n\r\n″,那么就将链表中存储的TCP分片的数据段重组为完整的HTTP Request报文,并删除相应的HTTP流表表项,返回步骤S320;如果直至遍历完整个Tree<seqno,TcpSegmet>搜索二叉树也没有匹配到字符串″\r\n\r\n″,则直接回到步骤S300;如果二者不等,则直接回到步骤S300。
所述从重组处理后的数据流中提取出client_ip、server_ip、client_port、server_port、rel_seqno、Host、Request-URI等信息进一步为:
从重组处理后的数据流中提取出源IP地址src_ip,并进一步从src_ip中得到client_ip,提取出目的IP地址dst_ip,并进一步从dst_ip中得到server_ip,提取出源端口号src_port,并进一步从src_port中得到client_port,提取出目的端口号dst_port,并进一步从dst_port中得到server_port,将最后一个TCP分片的序列号seqno加上TCP有效载荷长度payload_length得到rel_seqno。
步骤S4,所述HTTP Response报文解析服务器对所接收的HTTPResponse报文镜像数据流进行重组处理,然后将重组处理后的所述HTTPResponse报文进行解析,并提取出client_ip、server_ip、client_port、server_port、rel_seqno、Content-Type、Content-Encoding、Content-Language、Content-Length等信息,将提取出的信息以HTTP Response文件记录的形式存储到所述HTTP存储关联服务器中;
该步骤中,所述HTTP Response报文解析服务器对所述HTTPResponse报文镜像流进行重组处理进一步包括以下步骤(如图4所示):
步骤S400,获取所述HTTP Response报文镜像数据流的当前TCP分片,进入步骤S410;
步骤S410,解析所述HTTP Response报文镜像数据流的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端口号server_port,ack序列号ack_seqno等信息,根据获取的这些信息计算下一报文序列号next_seqno和关联序列号rel_seqno;根据HTTP Response报文的报首特征,判断该TCP分片是否为HTTPResponse报文报首的第一个TCP分片,若是,则继续判断HTTP Response报文的报首是否完整,如果完整则进入步骤S420,否则进入步骤S430;如果该TCP分片不是HTTP Response报文报首的第一个TCP分片,则以client_ip,server_ip,client_port,server_port,ack_seqno为索引查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S440,否则结束本次流程,回到步骤S400进入下一次流程;
其中,计算下一报文序列号next_seqno和关联序列号rel_seqno的公式、对于第一个TCP分片的判断方法均与步骤S310类似,在此不做赘述。
步骤S420,解析所述HTTP Response报文的报首,从中提取出状态码Status-Code,内容类型Content-Type,内容长度Content-Length,内容编码Content-Encoding,内容语言Content-Language等信息,并将所述步骤S410得到的client_ip,server_ip,client_port,server_port,rel_seqno以及状态码Status-Code,内容类型Content-Type,内容长度Content-Length,内容编码Content-Encoding,内容语言Content-Language等信息以HTTPResponse文件记录的形式写入HTTP关联存储服务器,并删除所述步骤S410中匹配的HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程;
步骤S430,以client_ip,server_ip,client_port,server_port,ack_seqno为索引,新建一个HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程;
在步骤S430中,新建一个HTTP流表表项时,链表List<TcpSegment>和搜索二叉树Tree<seqno,TcpSegmet>均为空,将该TCP分片放入链表List<TcpSegment>的首部,并回到步骤S400。
步骤S440,对与所述索引匹配的HTTP流表表项进行TCP重组,重组后再判断所述HTTP Response报文的报首是否完整,若完整则返回步骤S420,否则结束本次流程,并回到步骤S400进入下一次流程。
步骤S440中,对与索引匹配的HTTP流表表项进行TCP重组进一步为:
如果找到一个与该TCP分片的索引匹配的HTTP流表表项,则判断该TCP分片的seqno是否等于List<TcpSegment>链表尾部的TCP分片的下一报文序列号next_seqno:如果二者相等,那么就将该TCP分片加入List<TcpSegment>链表的尾部,并且遍历Tree<seqno,TcpSegmet>搜索二叉树,对搜索二叉树中的每一个TCP分片重复上述比较,直至遍历完整个Tree<seqno,TcpSegmet>搜索二叉树或者在相应的TCP分片的数据段中匹配到字符串″\r\n\r\n″,如果是匹配到字符串″\r\n\r\n″,那么就将链表中存储的TCP分片的数据段重组为完整的HTTPResponse报文,并删除相应的HTTP流表表项,返回步骤S420;如果直至遍历完整个Tree<seqno,TcpSegmet>搜索二叉树也没有匹配到字符串″\r\n\r\n″,则直接回到步骤S400;如果二者不等,则直接回到步骤S400。
所述从重组处理后的数据流中提取出client_ip、server_ip、client_port、server_port、rel_seqno、Content-Type、Content-Encoding、Content-Language、Content-Length等信息进一步为:
从重组处理后的数据流中提取出目的IP地址dst_ip,并进一步从dst_ip中得到client_ip,提取出源IP地址src_ip,并进一步从src_ip中得到server_ip,提取出目的端口号dst_port,并进一步从dst_port中得到client_port,提取出源端口号src_port,并进一步从src_port中得到server_port,提取出确认序列号ack_seqno,并进一步从ack_seqno中得到rel_seqno。
步骤S5,HTTP存储关联服务器根据由client_ip、server_ip、client_port、server_port、rel_seqno组成的五元组信息,将所述HTTP Request文件记录与所述HTTP Response文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;
该步骤中,在将HTTP Request文件记录与HTTP Response文件记录进行关联时,首先过滤掉状态码Status-Code不等于200的数据,然后再将Host,Request-URI拼接成完整的URL,并将关联上的数据以记录格式按行存入存储文件,记录格式包含如下字段:client_ip,server_ip,Host,URL,Content-Type,Content-Length,Content-Encoding,Content-Language。
步骤S6,HTTP分类分级服务器根据用户定制的策略,访问所述HTTP关联存储服务器中的记录信息,将URL进行分类分级。
匹配成功的HTTP Request文件记录和HTTP Response文件记录对应一次完整的HTTP交互。从HTTP Request文件记录中可以提取出URL、Host等属性信息,从HTTP Response文件记录中可以提取出Content-Type、Content-Encoding、Content-Language、Content-Length等属性信息,通过根据Content-Type、Content-Encoding、Content-Language、Content-Length、Host等属性信息可以对URL进行分级、分类。而HTTP报文报首的解析与文件记录关联、属性提取、根据属性分级分类都可以在人为制定策略后由计算机程序完成,从而达到自动化的目的。
根据对一段时间内HTTP报文报首的解析与关联结果的数据分析,可以得到不同纬度的URL分级与分类,并对URL打上相应的标签:比如,可以根据Host将URL按照所在网站分类;根据Content-Type将URL按照内容类型分类;根据Content-Encoding将URL按压缩类型分类;根据Content-Language将URL按照语言类型分类;根据server_ip将URL按照所处网段分类;根据Content-Length将URL按照内容大小分级;根据单位时间内URL被访问次数,将URL按照热点程度分级;或结合以上的一种或多种进行多维度的分类分级。
比如URL按照网站分类的标签可能有sina.com、google.com、bupt.edu.cn等,URL按Content-Type分类的标签可能有text、video、audio、image等,URL按Content-Languague分类的标签可能有English、Chinese、Japanese等,URL按照访问次数分级的标签可能有每天被访问10次以下、10-100次、100-1000次、1000-10000次、10000次以上,当用户希望搜索热点为每天被访问10000次以上的语言为中文的热点帖子时,就可以通过定制Content-Type标签为text、Content-Languague标签为Chinese、访问次数在10000次以上,HTTP分类分级服务器就会根据这些标签条件从存储文件中搜索出符合的URL及相关信息的记录。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于HTTP分析的URL自动分类分级系统,其特征在于,该系统包括HTTP请求/响应报文预处理器、HTTP请求报文解析服务器、HTTP响应报文解析服务器、交换机、HTTP存储关联服务器和HTTP分级分类服务器,其中:
所述HTTP请求/响应报文预处理器用于接收HTTP报文镜像数据流并对其进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发给所述HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发给所述HTTP响应报文解析服务器,其中,所述预处理为:根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP请求报文镜像数据流,将源端口号为80、8080、443的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分类分级服务器与所述交换机相连,用于根据用户定制的策略,通过所述交换机访问所述HTTP关联存储服务器中的记录信息,对URL进行分类分级。
2.根据权利要求1所述的系统,其特征在于,所述五元组信息包括:客户端IP地址client_ip、服务器IP地址server_ip、客户端端口号client_port、服务器端口号server_port和关联序列号rel_seqno。
3.一种基于HTTP分析的URL自动分类分级方法,其特征在于,该方法包括以下步骤:
步骤S1,在骨干网的路由器上获取HTTP报文镜像数据流;
步骤S2,HTTP Request/Response报文预处理器对所述HTTP报文镜像数据流进行预处理得到HTTP请求报文镜像数据流和HTTP响应报文镜像数据流,并将所述HTTP请求报文镜像数据流发送给HTTP请求报文解析服务器,将HTTP响应报文镜像数据流发送给HTTP响应报文解析服务器,其中,所述预处理为:根据TCP层的端口号,将目的端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP请求报文镜像数据流,将源端口号为80、8080、443的HTTP报文镜像数据流标识为HTTP响应报文镜像数据流;
步骤S3,所述HTTP请求报文解析服务器对所接收的HTTP请求报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP请求文件记录的形式存储到所述HTTP存储关联服务器上;
步骤S4,所述HTTP响应报文解析服务器对所接收的HTTP响应报文镜像数据流进行重组处理,并将从重组后的数据流中提取到的报文信息以HTTP响应文件记录的形式存储到所述HTTP存储关联服务器上;
步骤S5,HTTP存储关联服务器根据由client_ip、server_ip、client_port、server_port、rel_seqno组成的五元组信息,将所述HTTP请求文件记录与所述HTTP响应文件记录进行关联,并将关联上的数据以记录格式按行存入存储文件;
步骤S6,HTTP分类分级服务器根据用户定制的策略,访问所述HTTP关联存储服务器中的记录信息,将URL进行分类分级。
4.根据权利要求3所述的方法,其特征在于,所述步骤S3中提取的报文信息包括:客户端IP地址client_ip、服务器IP地址server_ip、客户端端口号client_port、服务器端口号server_port、关联序列号rel_seqno、主机Host、请求URL请求-URL;所述步骤S4中提取的报文信息包括:客户端IP地址client_ip、服务器IP地址server_ip、客户端端口号client_port、服务器端口号server_port、关联序列号rel_seqno、内容类型Content-Type、内容编码Content-Encoding、内容语言Content-Language、内容长度Content-Length。
5.根据权利要求3所述的方法,其特征在于,所述步骤S3中,所述HTTP请求报文解析服务器对所述HTTP请求报文镜像数据流进行重组处理进一步包括以下步骤:
步骤S300,获取所述HTTP请求报文镜像数据流的当前TCP分片;
步骤S310,解析所述HTTP请求报文的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端口号server_port,ack序列号ack_seqno,根据获取的这些信息计算出下一报文序列号next_seqno和关联序列号rel_seqno;根据HTTP请求报文的报首特征,判断该TCP分片是否为HTTP请求报文报首的第一个TCP分片,若是,则继续判断HTTP请求报文的报首是否完整,如果完整则进入步骤S320,否则进入步骤S330;如果该TCP分片不是HTTP请求报文报首的第一个TCP分片,则以client_ip,server_ip,client_port,server_port,ack_seqno为索引查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S340,否则结束本次流程,回到步骤S300进入下一次流程;
步骤S320,解析所述HTTP请求报文的报首,从中提取出HTTP版本号HTTP Version,请求URI Request-URI,主机Host;将所述步骤S310得到的client_ip,server_ip,client_port,server_port,rel_seqno,Host,Request-URI以HTTP请求文件记录的形式写入HTTP关联存储服务器,并删除所述匹配的HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程;
步骤S330,以client_ip,server_ip,client_port,server_port,ack_seqno为索引,新建一个HTTP流表表项,结束本次流程,回到步骤S300进入下一次流程;
步骤S340,对与所述索引匹配的HTTP流表表项进行TCP重组,然后再判断所述HTTP请求报文的报首是否完整,若完整则返回步骤S320,否则结束本次流程,回到步骤S300进入下一次流程。
6.根据权利要求3所述的方法,其特征在于,所述步骤S4中,所述HTTP响应报文解析服务器对所述HTTP响应报文镜像流进行重组处理进一步包括以下步骤:
步骤S400,获取所述HTTP响应报文镜像数据流的当前TCP分片,进入步骤S410;
步骤S410,解析所述HTTP响应报文镜像数据流的IP/TCP报首,从中获取客户端IP地址client_ip,服务器IP地址server_ip,客户端端口号client_port,服务器端端口号server_port,ack序列号ack_seqno,根据获取的这些信息计算下一报文序列号next_seqno和关联序列号rel_seqno;根据HTTP响应报文的报首特征,判断该TCP分片是否为HTTP响应报文报首的第一个TCP分片,若是,则继续判断HTTP响应报文的报首是否完整,如果完整则进入步骤S420,否则进入步骤S430;如果该TCP分片不是HTTP响应报文报首的第一个TCP分片,则以client_ip,server_ip,client_port,server_port,ack_seqno为索引查找预先存储的HTTP流表,判断所述HTTP流表中是否有与所述索引匹配的流表表项,如果是则进入步骤S440,否则结束本次流程,回到步骤S400进入下一次流程;
步骤S420,解析所述HTTP响应报文的报首,从中提取出状态码Status-Code,内容类型Content-Type,内容长度Content-Length,内容编码Content-Encoding,内容语言Content-Language,并将所述步骤S410得到的client_ip,server_ip,client_port,server_port,rel_seqno,Status-Code,Content-Type,Content-Length,Content-Encoding,Content-Language以HTTP响应文件记录的形式写入HTTP关联存储服务器,并删除所述匹配的HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程;
步骤S430,以client_ip,server_ip,client_port,server_port,ack_seqno为索引,新建一个HTTP流表表项,结束本次流程,回到步骤S400进入下一次流程;
步骤S440,对与所述索引匹配的HTTP流表表项进行TCP重组,然后再判断所述HTTP响应报文的报首是否完整,若完整则返回步骤S420,否则结束本次流程,回到步骤S400进入下一次流程。
7.根据权利要求3所述的方法,其特征在于,所述记录格式包含如下字段:client_ip,server_ip,Host,URL,Content-Type,Content-Length,Content-Encoding,Content-Language。
8.根据权利要求4所述的方法,其特征在于,所述步骤S6进一步包括以下步骤:
步骤S61,从HTTP请求文件记录中提取出属性信息URL、Host;
步骤S62,从HTTP响应文件记录中提取出属性信息Content-Type、Content-Encoding、Content-Language、Content-Length;
步骤S63,根据属性信息Content-Type、Content-Encoding、Content-Language、Content-Length、Host对URL进行分级和分类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210320169.6A CN102882703B (zh) | 2012-08-31 | 2012-08-31 | 一种基于http分析的url自动分类分级的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210320169.6A CN102882703B (zh) | 2012-08-31 | 2012-08-31 | 一种基于http分析的url自动分类分级的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102882703A CN102882703A (zh) | 2013-01-16 |
CN102882703B true CN102882703B (zh) | 2015-08-19 |
Family
ID=47483857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210320169.6A Active CN102882703B (zh) | 2012-08-31 | 2012-08-31 | 一种基于http分析的url自动分类分级的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102882703B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595576B (zh) * | 2013-10-31 | 2017-05-03 | 赛尔网络有限公司 | 一种基于内容提供商标识的互联口icp流量统计系统及方法 |
CN103532796B (zh) * | 2013-10-31 | 2017-01-04 | 赛尔网络有限公司 | 大型isp间互联口统计系统及方法 |
CN104767835B (zh) * | 2014-01-03 | 2019-05-31 | 上海携程商务有限公司 | Url地址的配置系统及方法 |
CN105577620B (zh) * | 2014-10-16 | 2019-12-03 | 中兴通讯股份有限公司 | 一种超文本传输协议数据还原方法及装置 |
CN105743728A (zh) * | 2014-12-11 | 2016-07-06 | 杭州迪普科技有限公司 | 一种保证数据块顺序的方法及装置 |
CN105991369B (zh) * | 2015-03-23 | 2020-03-06 | 杭州迪普科技股份有限公司 | 报文信息提取方法及装置 |
CN106453208A (zh) * | 2015-08-07 | 2017-02-22 | 北京奇虎科技有限公司 | 广告物料数据网址验证方法和装置 |
CN106453207B (zh) * | 2015-08-07 | 2021-01-29 | 北京奇虎科技有限公司 | 广告物料数据网址验证方法和装置 |
CN107798013A (zh) * | 2016-09-05 | 2018-03-13 | 广州市动景计算机科技有限公司 | 热点内容提供方法、设备、浏览器、电子设备及服务器 |
CN106453016A (zh) * | 2016-11-11 | 2017-02-22 | 北京经纬恒润科技有限公司 | 报文匹配关系的生成方法及装置 |
CN107566453B (zh) * | 2017-08-03 | 2021-02-09 | 广州视源电子科技股份有限公司 | 服务发现方法、装置、计算机可读存储介质和计算机设备 |
CN107770188B (zh) * | 2017-10-31 | 2020-04-21 | 北京亚鸿世纪科技发展有限公司 | 一种高效的基于通用服务器的报文自动镜像的方法 |
CN108346297A (zh) * | 2018-03-30 | 2018-07-31 | 合肥城市泊车投资管理有限公司 | 一种基于智能管理系统的违章停车管理控制方法 |
CN109413114B (zh) * | 2018-12-28 | 2021-08-10 | 安徽长泰信息安全服务有限公司 | 一种网络入侵防御系统 |
CN111740996B (zh) * | 2020-06-22 | 2021-06-22 | 四川长虹电器股份有限公司 | 一种流量解析场景下快速拆分http请求与响应的方法 |
CN112311789B (zh) * | 2020-10-28 | 2023-02-28 | 北京锐安科技有限公司 | 深度报文处理方法、装置、电子设备及存储介质 |
CN113704770B (zh) * | 2021-08-27 | 2023-12-08 | 北京天融信网络安全技术有限公司 | 一种漏洞的验证方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453424A (zh) * | 2009-01-06 | 2009-06-10 | 中国人民解放军信息工程大学 | 一种网络信息资源访问控制方法和系统 |
CN101872347A (zh) * | 2009-04-22 | 2010-10-27 | 富士通株式会社 | 判断网页类型的方法和装置 |
CN102055620A (zh) * | 2009-10-27 | 2011-05-11 | 中国移动通信集团浙江有限公司 | 监控用户体验的方法和系统 |
CN102394885A (zh) * | 2011-11-09 | 2012-03-28 | 中国人民解放军信息工程大学 | 基于数据流的信息分类防护自动化核查方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002099688A1 (en) * | 2001-06-07 | 2002-12-12 | An Na Choi | System for certifying web site and method therefor |
US20060159068A1 (en) * | 2005-01-20 | 2006-07-20 | Nokia Corporation | Supporting service requests during media data transfer |
US7693865B2 (en) * | 2006-08-30 | 2010-04-06 | Yahoo! Inc. | Techniques for navigational query identification |
-
2012
- 2012-08-31 CN CN201210320169.6A patent/CN102882703B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453424A (zh) * | 2009-01-06 | 2009-06-10 | 中国人民解放军信息工程大学 | 一种网络信息资源访问控制方法和系统 |
CN101872347A (zh) * | 2009-04-22 | 2010-10-27 | 富士通株式会社 | 判断网页类型的方法和装置 |
CN102055620A (zh) * | 2009-10-27 | 2011-05-11 | 中国移动通信集团浙江有限公司 | 监控用户体验的方法和系统 |
CN102394885A (zh) * | 2011-11-09 | 2012-03-28 | 中国人民解放军信息工程大学 | 基于数据流的信息分类防护自动化核查方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102882703A (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102882703B (zh) | 一种基于http分析的url自动分类分级的系统及方法 | |
CN103281213B (zh) | 一种网络流量内容提取和分析检索方法 | |
CN103460667B (zh) | 使用字节范围请求的视频数据的网络流 | |
CN104516892B (zh) | 关联富媒体信息的用户生成内容的发布方法、系统和终端 | |
KR101764286B1 (ko) | 소셜 네트워킹 업데이트 내의 미디어 객체의 부분에 대한 링크의 실시간 제공 | |
CN103826159B (zh) | 一种m3u8格式视频的本地离线播放方法和终端 | |
CN102282825B (zh) | 内容传送网络中流媒体请求地址映射的方法及装置、缓存节点 | |
CN100595765C (zh) | 基于媒体播放器的关键词内容发布方法及系统 | |
CN104077341B (zh) | 即时通讯中生成关键词自动回复映射关系的方法和装置 | |
CN101908048B (zh) | 一种互联网影视内容搜索的方法及系统 | |
CN104580121B (zh) | 寻人/人员信息匹配推送的方法、系统、客户端和服务器 | |
CN103595576B (zh) | 一种基于内容提供商标识的互联口icp流量统计系统及方法 | |
US20110125748A1 (en) | Method and Apparatus for Real Time Identification and Recording of Artifacts | |
CN103118007B (zh) | 一种用户访问行为的获取方法和系统 | |
CN101715104B (zh) | 可进行用户及内容管理的网络交互点读系统和方法 | |
CN102740159A (zh) | 媒体文件存储格式和自适应传送系统 | |
CN104506493A (zh) | 一种实现hls内容回源和缓存的方法 | |
CN104378331A (zh) | 网络媒介信息的播放及响应处理方法、装置和系统 | |
CN102156734A (zh) | 一种基于语义隐藏标引的视频内容管理方法 | |
CN103870574A (zh) | 基于h.264密文云视频存储的标签制作及索引方法 | |
CN102523296B (zh) | 无线网页浏览资源优化方法、装置及系统 | |
CN111741338A (zh) | Hls流媒体播放方法、系统、设备及存储介质 | |
CN100466549C (zh) | 一种基于SIP协议过程特征识别VoIP流量的方法 | |
CN110572698B (zh) | 一种统计巡检和监控播放记录的方法、装置、设备、介质 | |
CN103139607B (zh) | 一种实时网络监控系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |