处理http请求的方法及装置的制造方法

文档序号:9238205阅读:425来源:国知局
处理http请求的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机领域,具体而言,涉及一种处理HTTP请求的方法及装置。
【背景技术】
[0002] 目前,在很多应用场景经常需要用到"白名单",其中,"白名单"与"黑名单"相对 应。例如,若在电脑系统中设置并启用了黑名单,则被列入到黑名单的用户(或IP地址、IP 包、邮件、病毒等)将不能通过校验。类似地,如果在电脑系统中设置并启用了白名单,则在 白名单中的用户(或IP地址、IP包、邮件等)可以通过校验,甚至可以优先通过校验,而不 会被当成非法用户(或非法IP地址、非法IP包、垃圾邮件、病毒等)无法通过校验,这样安 全性和快捷性都大大提高。
[0003] 在传统技术中,对"白名单"的匹配主要采用遍历全部数组的方式进行查找匹配, 这样如果"白名单"数目较多,则在查找过程中则需要花费大量的时间,从而大大降低了操 作效率,而且由于一些应用需要的"白名单"模式不同,采用上述方式的通用性也较低。
[0004] 以对HTTP请求的校验为例,预先设置的"白名单"以数组的形式存储,其中,数组 如下表所示:
[0005]
[0006]若HTTP请求中的访问路径为ABC.com,则需要依次将HTTP请求中的访问路 径与上述每个数组成员中所记录的被允许访问的路径进行匹配。例如,按照字符的顺序,依 次比较"WWW.ABC.com"和数组成员1中记录的被允许访问的路径"WWW.AB.com";在发现两 者不匹配时,则重新按照字符的顺序,依次比较"www.ABC.com"和数组成员2中记录的被允 许访问的路径"www.AC.com",以此类推,直到遍历完所有的数组成员。
[0007] 然而,在上述匹配的过程,若发现HTTP请求中的访问路径与一个数组成员中记录 的被允许访问的路径不匹配,则需要从另一个数组成员中记录的被允许访问的路径中的第 一个字符开始再次判断是否与HTTP请求中的访问路径,这样导致了在处理HTTP请求时对 HTTP请求进行校验的效率较低。
[0008] 针对上述的问题,目前尚未提出有效的解决方案。

【发明内容】

[0009] 本发明实施例提供了一种处理HTTP请求的方法及装置,以至少解决现有技术中 在处理HTTP请求时对HTTP请求进行校验的效率较低的技术问题。
[0010] 根据本发明实施例的一个方面,提供了一种处理HTTP请求的方法,包括:接收客 户端发送的HTTP请求;从HTTP请求中获取由字符串表示的访问路径;在预先建立的具有 树状结构的路径节点集合中查找与访问路径匹配的目标路径,其中,路径节点集合中从根 节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的路径中相同的 连续字符串由一个路径节点子集合中包括根节点在内的多个相连的路径节点表示;若在路 径节点集合中查找到与访问路径匹配的目标路径,则执行HTTP请求所指示的请求操作。 [0011] 根据本发明实施例的另一方面,还提供了一种处理HTTP请求的装置,包括:接收 单元,用于接收客户端发送的HTTP请求;获取单元,用于从HTTP请求中获取由字符串表示 的访问路径;查找单元,用于在预先建立的具有树状结构的路径节点集合中查找与访问路 径匹配的目标路径,其中,路径节点集合中从根节点到每个叶子节点的路径节点子集合表 示一条被允许访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括 根节点在内的多个相连的路径节点表示;执行单元,用于在路径节点集合中查找到与访问 路径匹配的目标路径时,执行HTTP请求所指示的请求操作。
[0012] 在本发明实施例中,采用树状结构来表示白名单中被允许访问的路径,且对于不 同的路径中相同的连续字符串,仅由相同的路径节点表示一次,而不需要如现有技术中所 采用的分别通过不同的数组成员进行表示。这样,在查找的过程中不需要遍历每一条根节 点到叶子节点所表示的路径,即可以判断出HTTP请求的访问路径是否为白名单中被允许 访问的路径,从而提高了在处理HTTP请求时对HTTP请求进行校验的效率,进而解决了在处 理HTTP请求时对HTTP请求进行校验的效率较低的技术问题。
【附图说明】
[0013] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0014] 图1是根据本发明实施例的一种可选的网络环境的示意图;
[0015] 图2是根据本发明实施例的一种可选的处理HTTP请求的方法的流程图;
[0016] 图3是根据本发明实施例的一种可选的具有树状结构的路径节点集合的示意图;
[0017] 图4是根据本发明实施例的另一种可选的具有树状结构的路径节点集合的示意 图;
[0018] 图5是根据本发明实施例的一种可选的在建立具有树状结构的路径节点集合的 过程中的路径节点集合的示意图;
[0019] 图6是根据本发明实施例的另一种可选的在建立具有树状结构的路径节点集合 的过程中的路径节点集合的示意图;
[0020] 图7是根据本发明实施例的又一种可选的在建立具有树状结构的路径节点集合 的过程中的路径节点集合的示意图;
[0021] 图8是根据本发明实施例的一种可选的处理HTTP请求的装置的结构框图;
[0022] 图9是根据本发明实施例的另一种可选的处理HTTP请求的装置的结构框图;
[0023] 图10是根据本发明实施例的又一种可选的处理HTTP请求的装置的结构框图;
[0024] 图11是根据本发明实施例的又一种可选的处理HTTP请求的装置的结构框图;
[0025] 图12是根据本发明实施例的又一种可选的处理HTTP请求的装置的结构框图。
【具体实施方式】
[0026] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0027] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用 的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限 于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产 品或设备固有的其它步骤或单元。
[0028] 实施例1
[0029] 在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中 执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺 序执行所示出或描述的步骤。
[0030] 可选地,在本实施例中,上述处理HTTP请求的方法可以但不限于应用于如图1所 示的网络环境中,其中,发送HTTP请求的客户端可以但不限于位于图1所示的终端102中, 图1所示的服务器104将通过网络接收上述HTTP请求,其中,上述服务器104也可以用终 端替换。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上 述服务器104将从上述HTTP请求中获取由字符串表示的访问路径,并查找与上述访问路径 匹配的目标路径,并在查找到上述目标路径后,执行上述HTTP请求所指示的请求操作。可 选地,在本实施例中,上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。
[0031] 可选地,在本实施例中,上述处理HTTP请求的方法的流程图可以如图2所示,该方 法包括:
[0032]S202,接收客户端发送的HTTP请求;可选地,上述HTTP请求可以为服务器104接 收到的终端102上安装的客户端发送的用于访问网页的HTTP请求。可选地,上述HTTP请求 中可以但不限于包括:访问路径,例如,上述访问路径可以但不限于为上述网页的网址,如, "Host:o.mCGI:/t,',或者为,"Host:m. 〇?m,'。
[0033] 上述HTTP请求中包括的访问路径可以包括Host字段和/或CGI(公共网关接口, CommonGatewayInterface)字段,其中,上述Host可以但不限于在互联网协议中,表示能 够同其他机器互相访问的本地计算机。例如,一台本地机有唯一标志代码,同网络掩码一起 组成IP地址,如果通过点到点协议通过ISP访问互联网,那么在连接期间将会拥有唯一的 IP地址,在这种情况下,Host表示一个网络节点。上述CGI在物理上是运行在服务器上的 一段程序,用于提供同客户端HTML页面的接口。
[0034]S204,从HTTP请求中获取由字符串表示的访问路径;
[0035] S206,在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标 路径,其中,路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许 访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括根节点在内的 多个相连的路径节点表示;
[0036] 可选地,图3示出了预先建立的具有树状结构的路径节点集合的一种示意图,需 要说明的是,图3所示的路径节点集合仅为一种示例,本实施例中的路径节点集合可以根 据不同的场景进行配置,如图4所示。
[0037] 如图3所示,具有树状结构的路径节点集合可以用于表示4条被允许访问的路 径:
[0038]
[0039] 具体地,如图3所示,根节点"H,r〇〇t"到叶子节点"D,P,t"的路径节点子集 合1表示上述路径1)。即,路径节点子集合1中的路径节点"H,root","H,S,HOST", "D,S,m","D,S, ? ","D,S, 〇","D,P,CGI","D,P, /","D,P,t" 表示上述路径 1) "Host: 〇?m CGI:/t";
[0040] 根节点"H,root"到叶子节点"D,S,m"的路径节点子集合2表示上述路径2)。即, 路径节点子集合 2 中的路径节点 "H,root","H,S,HOST","D,S,m","D,S,? ","D,S,〇", "D,S,. ","D,S,m" 表示上述路径 2) "Hostio.mCGI:null";
[0041] 根节点"H,root"到叶子节点"D,P,m"的路径节点子集合3表示上述路径3)。即, 路径节点子集合 3 中的路径节点 "H,root","H,S,HOST","D,S,n","D,S,? ","D,S,〇", "0,?,〇61","0,?,/","0,卩,111"表示上述路径3)"11〇8七:〇.11〇61:/111" ;
[0042] 根节点"H,root"到叶子节点"D,P,n"的路径节点子集合4表示上述路径4)。即, 路径节点子集合 4 中的路径节点 "H,root","H,S,HOST","D,S,n","D,S,? ","D,S,〇", "0,?,〇61","0,?,/","0,卩,11"表示上述路径4)"11〇8七:〇.11〇61:/11"。
[0043] 其中,上述路径1)和2)共用了路径节点"H,root","H,S,H0ST", "D,S,m","D,S,.","D,S,o"。也就
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1