CN105491094A - 处理http请求的方法及装置 - Google Patents

处理http请求的方法及装置 Download PDF

Info

Publication number
CN105491094A
CN105491094A CN201410495941.7A CN201410495941A CN105491094A CN 105491094 A CN105491094 A CN 105491094A CN 201410495941 A CN201410495941 A CN 201410495941A CN 105491094 A CN105491094 A CN 105491094A
Authority
CN
China
Prior art keywords
node
path
character
http request
access
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.)
Granted
Application number
CN201410495941.7A
Other languages
English (en)
Other versions
CN105491094B (zh
Inventor
彭贵春
张海清
苗军
马杰
董昭
郑兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410495941.7A priority Critical patent/CN105491094B/zh
Publication of CN105491094A publication Critical patent/CN105491094A/zh
Application granted granted Critical
Publication of CN105491094B publication Critical patent/CN105491094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种处理HTTP请求的方法及装置,其中,该方法包括:接收客户端发送的HTTP请求;从HTTP请求中获取由字符串表示的访问路径;在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径,其中,路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括根节点在内的多个相连的路径节点表示;若在路径节点集合中查找到与访问路径匹配的目标路径,则使用与目标路径对应的校验条件对HTTP请求进行校验;若HTTP请求满足校验条件,则执行HTTP请求所指示的请求操作。本发明解决了现有技术中在处理HTTP请求时对HTTP请求进行校验的效率较低的技术问题。

Description

处理HTTP请求的方法及装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种处理HTTP请求的方法及装置。
背景技术
目前,在很多应用场景经常需要用到“白名单”,其中,“白名单”与“黑名单”相对应。例如,若在电脑系统中设置并启用了黑名单,则被列入到黑名单的用户(或IP地址、IP包、邮件、病毒等)将不能通过校验。类似地,如果在电脑系统中设置并启用了白名单,则在白名单中的用户(或IP地址、IP包、邮件等)可以通过校验,甚至可以优先通过校验,而不会被当成非法用户(或非法IP地址、非法IP包、垃圾邮件、病毒等)无法通过校验,这样安全性和快捷性都大大提高。
在传统技术中,对“白名单”的匹配主要采用遍历全部数组的方式进行查找匹配,这样如果“白名单”数目较多,则在查找过程中则需要花费大量的时间,从而大大降低了操作效率,而且由于一些应用需要的“白名单”模式不同,采用上述方式的通用性也较低。
以对HTTP请求的校验为例,预先设置的“白名单”以数组的形式存储,其中,数组如下表所示:
数组成员 被允许访问的路径
1 www.AB.com
2 www.AC.com
3 www.ABC.com
若HTTP请求中的访问路径为:www.ABC.com,则需要依次将HTTP请求中的访问路径与上述每个数组成员中所记录的被允许访问的路径进行匹配。例如,按照字符的顺序,依次比较“www.ABC.com”和数组成员1中记录的被允许访问的路径“www.AB.com”;在发现两者不匹配时,则重新按照字符的顺序,依次比较“www.ABC.com”和数组成员2中记录的被允许访问的路径“www.AC.com”,以此类推,直到遍历完所有的数组成员。
然而,在上述匹配的过程,若发现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是根据本发明实施例的一种可选的处理HTTP请求的方法的流程图;
图3是根据本发明实施例的一种可选的具有树状结构的路径节点集合的示意图;
图4是根据本发明实施例的另一种可选的具有树状结构的路径节点集合的示意图;
图5是根据本发明实施例的一种可选的在建立具有树状结构的路径节点集合的过程中的路径节点集合的示意图;
图6是根据本发明实施例的另一种可选的在建立具有树状结构的路径节点集合的过程中的路径节点集合的示意图;
图7是根据本发明实施例的又一种可选的在建立具有树状结构的路径节点集合的过程中的路径节点集合的示意图;
图8是根据本发明实施例的一种可选的处理HTTP请求的装置的结构框图;
图9是根据本发明实施例的另一种可选的处理HTTP请求的装置的结构框图;
图10是根据本发明实施例的又一种可选的处理HTTP请求的装置的结构框图;
图11是根据本发明实施例的又一种可选的处理HTTP请求的装置的结构框图;
图12是根据本发明实施例的又一种可选的处理HTTP请求的装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,在本实施例中,上述处理HTTP请求的方法可以但不限于应用于如图1所示的网络环境中,其中,发送HTTP请求的客户端可以但不限于位于图1所示的终端102中,图1所示的服务器104将通过网络接收上述HTTP请求,其中,上述服务器104也可以用终端替换。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述服务器104将从上述HTTP请求中获取由字符串表示的访问路径,并查找与上述访问路径匹配的目标路径,并在查找到上述目标路径后,执行上述HTTP请求所指示的请求操作。可选地,在本实施例中,上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。
可选地,在本实施例中,上述处理HTTP请求的方法的流程图可以如图2所示,该方法包括:
S202,接收客户端发送的HTTP请求;可选地,上述HTTP请求可以为服务器104接收到的终端102上安装的客户端发送的用于访问网页的HTTP请求。可选地,上述HTTP请求中可以但不限于包括:访问路径,例如,上述访问路径可以但不限于为上述网页的网址,如,“Host:o.mCGI:/t”,或者为,“Host:m.o.m”。
上述HTTP请求中包括的访问路径可以包括Host字段和/或CGI(公共网关接口,CommonGatewayInterface)字段,其中,上述Host可以但不限于在互联网协议中,表示能够同其他机器互相访问的本地计算机。例如,一台本地机有唯一标志代码,同网络掩码一起组成IP地址,如果通过点到点协议通过ISP访问互联网,那么在连接期间将会拥有唯一的IP地址,在这种情况下,Host表示一个网络节点。上述CGI在物理上是运行在服务器上的一段程序,用于提供同客户端HTML页面的接口。
S204,从HTTP请求中获取由字符串表示的访问路径;
S206,在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径,其中,路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括根节点在内的多个相连的路径节点表示;
可选地,图3示出了预先建立的具有树状结构的路径节点集合的一种示意图,需要说明的是,图3所示的路径节点集合仅为一种示例,本实施例中的路径节点集合可以根据不同的场景进行配置,如图4所示。
如图3所示,具有树状结构的路径节点集合可以用于表示4条被允许访问的路径:
1)Host:o.mCGI:/t;
2)Host:m.o.mCGI:null(即,CGI为空);
3)Host:o.nCGI:/m;
4)Host:o.nCGI:/n;
具体地,如图3所示,根节点“H,root”到叶子节点“D,P,t”的路径节点子集合1表示上述路径1)。即,路径节点子集合1中的路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,t”表示上述路径1)“Host:o.mCGI:/t”;
根节点“H,root”到叶子节点“D,S,m”的路径节点子集合2表示上述路径2)。即,路径节点子集合2中的路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”,“D,S,.”,“D,S,m”表示上述路径2)“Host:m.o.mCGI:null”;
根节点“H,root”到叶子节点“D,P,m”的路径节点子集合3表示上述路径3)。即,路径节点子集合3中的路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,m”表示上述路径3)“Host:o.nCGI:/m”;
根节点“H,root”到叶子节点“D,P,n”的路径节点子集合4表示上述路径4)。即,路径节点子集合4中的路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,n”表示上述路径4)“Host:o.nCGI:/n”。
其中,上述路径1)和2)共用了路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”。也就是说,上述路径1)和2)中相同的连续字符串“Host:o.m”由上述路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”表示。
类似地,上述路径3)和4)共用了路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”。也就是说,上述路径3)和4)中相同的连续字符串“Host:o.nCGI:/”由上述路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”表示。
在图3中,路径1)-4)中的HOST字段中的字符(例如,路径1)中的“o.m”)按照“从后缀到前缀”的顺序通过路径节点来表示。以路径1为例,HOST字段中的字符为“o.m”,其中,“m”为后缀,“n”为前缀,上述“从后缀到前缀”的顺序指的是:路径节点“D,S,m”为路径节点“H,S,HOST”的子节点,路径节点“D,S,.”为路径节点“D,S,m”的子节点,“D,S,o”为路径节点“D,S,.”的子节点。换句话说,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”依次连接。
需要说明的是,上述按照“从后缀到前缀”的顺序通过路径节点来表示路径1)-4)中的HOST字段中的字符仅是一种示例,本实施例不仅限于此,例如,还可以按照“从前缀到后缀”或“从前缀开始”的顺序通过路径节点来表示路径1)-4)中的HOST字段中的字符,其中,“从前缀开始”的顺序适用于HOST字段仅包括前缀、而不包括后缀的场景。以路径1为例,HOST字段中的字符为“o.m”,其中,“m”为后缀,“n”为前缀,上述“从前缀到后缀”的顺序指的是:路径节点“D,S,o”为路径节点“H,S,HOST”的子节点,路径节点“D,S,.”为路径节点“D,S,o”的子节点,“D,S,m”为路径节点“D,S,.”的子节点。
可选地,在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径的过程中,可以从根节点开始比较访问路径中的字符与路径节点中的字符是否相同。由于路径节点集合具有树状结构,因此,在将访问路径中的字符与具有多个子节点(例如,子节点1“D,P,CGI”,子节点2“D,S,.”)的路径节点(节点“D,S,o”)进行比对之后,可以选择上述一个子节点(例如,子节点1“D,P,CGI”)所在的分支(例如,子节点1“D,P,CGI”到叶子节点“D,P,t”)继续与访问路径中剩余的字符继续比对。若该分支比对结果失败(例如,访问路径为“Host:m.o.m”,对应于图3中的路径2)),这转到路径节点(节点“D,S,o”)的其他子节点(例如,子节点2“D,S,.”)所在的分支进行比对,而不需要重新再比对路径节点(节点“D,S,o”)之前已经比对过的节点(例如,“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”),从而减少了比对的次数,即,提高了在处理HTTP请求时对HTTP请求进行校验的效率。
也就是说,不同的路径中相同的连续字符串在比对的过程中最多仅需要比对一次,即,判断出具有树状结构的路径节点集合中是否存在与访问路径匹配的目标路径。
S208,若在路径节点集合中查找到与访问路径匹配的目标路径,则使用与上述目标路径对应的校验条件对上述HTTP请求进行校验;
可选地,上述路径与校验条件之间的对应关系可以预先以映射表的方式存储在服务器上。以上述路径1)-4)为例,映射表可以如下所示:
路径 校验条件
路径1 校验条件1
路径2 校验条件2
路径3 校验条件3
路径4 校验条件4
上述映射表存储在服务器上,仅是一种示例,上述映射表还可以存储在其他设备中,上述服务器通过网络从其他设备中可以获取到上述映射表,本实施例对此不作限定。
S210,若上述HTTP请求满足上述校验条件,执行HTTP请求所指示的请求操作。
可选地,在本实施例中,上述预先建立的具有树状结构的路径节点集合可以用来表示“白名单”中记录的被允许访问的路径,例如,“白名单”中记录的每条被允许访问的路径可以由从根节点到一个叶子节点的路径节点子集合表示。换句话说,“白名单”中记录的被允许访问的路径通过树状结构来表示。可选地,在上述S208中,若在路径节点集合中查找到与访问路径匹配的目标路径,则表示HTTP请求中的访问路径为“白名单”中记录的被允许访问的路径。
在本发明实施例中,采用树状结构来表示白名单中被允许访问的路径,且对于不同的路径中相同的连续字符串,仅由相同的路径节点表示一次,而不需要如现有技术中所采用的分别通过不同的数组成员进行表示。这样,在查找的过程中不需要遍历每一条根节点到叶子节点所表示的路径,即可以判断出HTTP请求的访问路径是否为白名单中被允许访问的路径,从而提高了在处理HTTP请求时对HTTP请求进行校验的效率,进而解决了在处理HTTP请求时对HTTP请求进行校验的效率较低的技术问题。
作为一种可选的方案,在使用与所述目标路径对应的校验条件对所述HTTP请求进行校验之后,上述处理HTTP请求的方法还包括:若上述HTTP请求不满足上述校验条件,则向客户端发送用于指示拒绝访问的响应消息。
可选地,在本实施例中,在接收客户端发送的HTTP请求之前,需要预先建立上述具有树状结构的路径节点集合。以下结合具体的示例和附图来描述建立上述具有树状结构的路径节点集合的方案。需要说明的是,以下方案仅是一种示例,本实施例中建立上述具有树状结构的路径节点集合的方案不仅限于此。
可选地,在本实施例中,在接收客户端发送的HTTP请求之前,上述处理HTTP请求的方法还包括:
S1,设置根节点,如图3中的根节点“H,root”;
S2,设置根节点的子节点(例如,“H,S,HOST”),其中,每个子节点中包含的字符表示一个被允许访问的路径中的HOST字段,不同的被允许访问的路径中的相同的HOST字段由一个子节点中包含的字符表示;
S3,在每个子节点下设置多个路径节点直到叶子节点,其中,不同的被允许访问的路径中相同的连续字符串由多个路径节点中的多个相连的路径节点表示。
以被允许访问的路径包括图3中的4条路径为例,图5-图7示出了具有树状结构的路径节点集合的建立过程。
如图5所示,路径节点集合初始化为空,在此基础上,先在路径节点集合中形成路径1)“Host:o.mCGI:/t”的树状结构,即,路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,t”依次连接。
进一步,在图5的基础上,再在路径节点集合中形成路径2)“Host:m.o.mCGI:null”。由于路径1)和2)具有相同的连续字符串“Host:o.m”,因此,仅需要在图5的基础上,将路径节点“D,S,.”设置为路径节点“D,S,o”的子节点,再将路径节点“D,S,m”设置为路径节点“D,S,.”的子节点,如图6所示。在图6中,上述路径1)和2)共用了路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”。
以相同的方式,在图6的基础上,再在路径节点集合中形成路径3)“Host:o.nCGI:/m”。由于路径3)中的HOST字段中的字符“n”与路径1)和路径2)中的HOST字段中的字符“m”不同,因此,将路径节点“D,S,n”作为路径节点“H,S,HOST”的一个新的子节点,并在路径节点“D,S,n”之后依次连接路径节点“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,m”,图7所示。
进一步,在图7的基础上,再在路径节点集合中形成路径4)“Host:o.nCGI:/n”。由于上述路径3)和4)具有相同的连续字符串“Host:o.nCGI:/”,因此,仅需要在图7的基础上,将路径节点“D,P,n”设置为路径节点“D,P,/”的子节点,如图3所示。在图3中,上述路径3)和4)共用了路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”。
可选地,在树状结构中,若一个路径节点存在多个子节点,则可以按照子节点中包括的字符的顺序来设置上述子节点的遍历顺序(或称排列顺序)。例如,由于字符“m”位于字符“n”之前,因此,可以将路径节点“D,S,m”作为路径节点“H,S,HOST”的子节点排列在路径节点“D,S,n”的左侧,这样,在具有树状结构的路径节点集合中执行查找操作时,优先遍历路径节点“D,S,m”,然后再遍历路径节点“D,S,n”。
需要说明的是,上述按照子节点中包括的字符的顺序来设置上述子节点的排列顺序,这仅是一种示例,本实施例对此不作限定。
可选地,在本实施例中,上述每一个路径节点中可以包括但不限于以下至少之一:节点类型、匹配模式、节点字符,其中,上述节点类型可以包括但不限于:根节点、子节点、叶子节点,上述叶子节点指一条路径的最后一个路径节点。上述匹配模式可以包括但不限于以下至少之一:前缀匹配、后缀匹配。其中,上述前缀匹配指的是:从前往后依次读取HTTP请求中访问路径中的字符;上述后缀匹配指的是:从后往前依次读取HTTP请求中访问路径中的字符。
可选地,可以但不限于通过以下函数来设置每个路径节点。
结合上述描述以及图3中所示的路径节点可知,一个路径节点可以用3元素<QnodeType,MatchMethod,value>来表示,其中,QnodeType表示节点类型、MatchMethod表示匹配模式、value表示路径节点中包括的字符。
可选地,QnodeType用H表示T_HEAD_NODE,D表示T_DATA_NODE;MatchMethod用P表示T_PREFIX,用S表示T_SUFFIX,用E表示T_EQ;value表示该路径节点中包括的字符。
具体结合图3所示的示例进行说明,假设从终端102中的客户端ID_1,接收的HTTP请求中获取由字符串表示的访问路径为:
1)Host:o.mCGI:/t。
其中,Host为后缀匹配,CGI为前缀匹配,则对于Host字段中的字符“o.m”,可以按照“m”,“.”,“o”的顺序来在具有树状结构的路径节点集合中设置与Host字段中的字符“o.m”对应的路径节点,例如,在图3中,Host字段中的字符“o.m”对应的路径节点依次为:“D,S,m”、“D,S,.”、“D,S,o”,其中,路径节点“D,S,m”为路径节点“H,S,Host”的子节点。相似地,可以按照“/”,“t”的顺序来在具有树状结构的路径节点集合中设置与CGI字段中的字符“/t”对应的路径节点,例如,在图3中,CGI字段中的字符“/t”对应的路径节点依次为路径节点“D,P,/”、“D,P,t”,其中,路径节点“D,P,/”为路径节点“H,P,CGI”的子节点。
可选地,在本实施例中,当不同的路径中包括相同的连续字符串,则与上述相同的连续字符串对应的路径可由一个包括上述根节点在内的多个相连的路径节点构成的路径节点子集合表示。
具体结合图3所示的示例进行说明,假设从终端102中的客户端ID_1,客户端ID_2接收的HTTP请求中获取由字符串表示的访问路径为:
1)Host:o.mCGI:/t;
2)Host:m.o.mCGI:null。
其中,两个不同路径中Host包括相同的连续字符串“o.m”,则可以如图3所示,将相同的连续字符串所对应的路径节点合并,使得两条路径共用相同的路径节点子集合:“D,S,m”、“D,S,.”、“D,S,o”。
可选地,在本实施例中,在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径包括:
S1,从路径节点集合中查找是否存在由一个路径节点子集合所表示的目标路径,其中,一个路径节点子集合中从根节点到叶子节点所构成的字符串(例如,上述路径1中的字符串“Host:o.mCGI:/t”)与访问路径中的字符串(例如,“Host:o.mCGI:/t”)相同。
可选地,在本实施例中,上述路径节点中可以包括但不限于一个节点字符,则一个路径节点子集合中从根节点到叶子节点所构成的字符串与访问路径中的字符串相同可以包括但不限于:上述路径中的多个连续路径节点中的字符分别与HTTP请求中获取的访问路径中的字符相同。
具体结合以下示例进行说明,假设从HTTP请求中获取的由字符串标识的访问路径为HOST:QQ.COM,则在预先建立的具有树状集合的路径节点集合中查找各个路径中路径节点中的节点字符是否与访问路径中的字符依次相同,若相同,则表示上述路径节点子集合中从根节点到叶子节点所构成的字符串与访问路径中的字符串相同,进而可以判断出在所述路径节点集合中查找到与所述访问路径匹配的所述目标路径。
通过本申请提供的实施例,通过在预先建立的具有树状结构的路径节点集合中查找从HTTP请求中获取的与访问路径匹配的目标路径,其中,上述路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括根节点在内的多个相连的路径节点表示,克服了现有技术通过遍历所有数组以实现对白名单的匹配所导致的校验效率较低的问题,通过将路径中相同的路径节点合并,实现了缩短校验时间,进而提高执行HTTP请求所指示的请求操作的效率。
作为一种可选的方案,从路径节点集合中查找是否存在由一个路径节点子集合所表示的目标路径包括:
S1,重复执行以下操作,直到生成查找结果,其中,当前节点初始化为根节点,当前字符初始化为HTTP请求中用于表示访问路径的字符串中的校验起始字符:
S10,判断当前节点是否为根节点“H,root”;
S12,若当前节点为根节点,则将当前节点设置为根节点的子节点,例如,图3所示的路径节点“H,S,HOST”;
S14,若当前节点不为根节点,则判断当前节点中包含的字符是否为当前字符;
S16,若当前节点中包含的字符为当前字符,则判断当前节点是否为叶子节点,若当前节点为叶子节点,则将根节点到当前节点所表示的路径作为目标路径,并生成由第一查找信息表示的查找结果,其中,第一查找信息用于表示在路径节点集合中查找到与访问路径匹配的目标路径;若当前节点不为叶子节点,则将当前节点的子节点中选择一个子节点,其中,一个子节点中包含的字符为当前字符的下一个字符,将一个子节点设置为当前节点,并将当前字符的下一个字符设置为当前字符;
例如,以字符串为“Host:o.mCGI:/t”为例,假设上述字符串中HOST字段采用“从后缀到前缀”的顺序排列,CGI字段采用“从前缀到后缀”或“从前缀开始”的顺序排列,则字符串中字符的顺序为:“Host”,“m”,“.”,“o”,“CGI”,“/”,“t”,即,“Host”的下一个字符为“m”,“m”的下一个字符为“.”,“.”的下一个字符为“o”,“o”的下一个字符为“CGI”,“CGI”的下一个字符为“/”,“/”的下一个字符为“t”。
也就是说,上述当前字符的下一个字符可以为HTTP请求中用于表示访问路径的字符串中当前字符的下一个字符,其中,上述字符串中的字符按照与匹配模式对应的排列顺序排列。
S18,若当前节点中包含的字符不为当前字符,则生成由第二查找信息表示的查找结果,其中,第二查找信息用于表示在路径节点集合中未查找到与访问路径匹配的目标路径。
可选地,在本实施例中,上述校验起始字符包括但不限于以下之一:
1)HTTP请求中用于表示访问路径的字符串中的HOST字段中的第一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,HOST字段中的第一个字符为“m”或“HOST”;
2)HTTP请求中用于表示访问路径的字符串中的HOST字段中的最后一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,HOST字段中的最后一个字符为“o”;
3)HTTP请求中用于表示访问路径的字符串中的CGI字段中的第一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,CGI字段中的第一个字符为“/”或“CGI”;
4)HTTP请求中用于表示访问路径的字符串中的CGI字段中的最后一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,CGI字段中的最后一个字符为“t”;
5)HTTP请求中用于表示访问路径的字符串中的第一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,第一个字符为“m”或“HOST”;
6)HTTP请求中用于表示访问路径的字符串中的最后一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,最后一个字符为“t”;
具体结合图3所示的示例进行描述,假设当前节点为访问路径(例如,“Host:o.mCGI:/t”)中HOST字段对应的路径节点“H,S,HOST”、且路径节点“H,S,HOST”中的字符“Host”与当前字符“Host”相同,则将该路径节点“H,S,HOST”的子节点“D,S,m”设置为当前节点,并将访问路径中的HOST字段中当前字符的下一个字符“m”设置为当前字符。然后,判断当前节点“D,S,m”中的字符是否为当前字符“m”。由于当前节点中的字符与当前字符相同,因此,继续将路径节点“D,S,m”的子节点“D,S,.”设置为当前节点,并将访问路径中的HOST字段中位于当前字符之后的下一个字符“.”设置为当前字符,以此类推。
若当前节点为叶子节点“D,P,t”、且路径节点“H,S,HOST”中的字符“t”与当前字符“t”相同,则将上述根节点“H,root”到叶子节点“D,P,t”所表示的路径作为目标路径,并生成查找结果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种处理HTTP请求的装置可以但不限于位于如图1所示的网络环境中,其中,发送HTTP请求的客户端可以但不限于位于图1所示的终端102中,图1所示的服务器104将通过网络接收上述HTTP请求,其中,上述服务器104也可以用终端替换。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述服务器104将从上述HTTP请求中获取由字符串表示的访问路径,并查找与上述访问路径匹配的目标路径,并在查找到上述目标路径后,执行上述HTTP请求所指示的请求操作。可选地,在本实施例中,上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。
可选地,在本实施例中,上述处理HTTP请求的装置可以如图8所示,该装置包括:
1)接收单元802,用于接收客户端发送的HTTP请求;可选地,上述HTTP请求可以为终端102上安装的客户端发送的用于访问网页的HTTP请求。可选地,上述HTTP请求中可以但不限于包括:访问路径,例如,上述访问路径可以但不限于为上述网页的网址,如,“Host:o.mCGI:/t”,或者为,“Host:m.o.m”。
2)获取单元804,用于从HTTP请求中获取由字符串表示的访问路径;
3)查找单元806,用于在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径,其中,路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括根节点在内的多个相连的路径节点表示;
可选地,图3示出了预先建立的具有树状结构的路径节点集合的一种示意图,需要说明的是,图3所示的路径节点集合仅为一种示例,本实施例中的路径节点集合可以根据不同的场景进行配置,如图4所示。
如图3所示,具有树状结构的路径节点集合可以用于表示4条被允许访问的路径:
1)Host:o.mCGI:/t;
2)Host:m.o.mCGI:null(即,CGI为空);
3)Host:o.nCGI:/m;
4)Host:o.nCGI:/n;
具体地,如图3所示,根节点“H,root”到叶子节点“D,P,t”的路径节点子集合1表示上述路径1)。即,路径节点子集合1中的路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,t”表示上述路径1)“Host:o.mCGI:/t”;
根节点“H,root”到叶子节点“D,S,m”的路径节点子集合2表示上述路径2)。即,路径节点子集合2中的路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”,“D,S,.”,“D,S,m”表示上述路径2)“Host:m.o.mCGI:null”;
根节点“H,root”到叶子节点“D,P,m”的路径节点子集合3表示上述路径3)。即,路径节点子集合3中的路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,m”表示上述路径3)“Host:o.nCGI:/m”;
根节点“H,root”到叶子节点“D,P,n”的路径节点子集合4表示上述路径4)。即,路径节点子集合4中的路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,n”表示上述路径4)“Host:o.nCGI:/n”。
其中,上述路径1)和2)共用了路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”。也就是说,上述路径1)和2)中相同的连续字符串“Host:o.m”由上述路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”表示。
类似地,上述路径3)和4)共用了路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”。也就是说,上述路径3)和4)中相同的连续字符串“Host:o.nCGI:/”由上述路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”表示。
在图3中,路径1)-4)中的HOST字段中的字符(例如,路径1)中的“o.m”)按照“从后缀到前缀”的顺序通过路径节点来表示。以路径1为例,HOST字段中的字符为“o.m”,其中,“m”为后缀,“n”为前缀,上述“从后缀到前缀”的顺序指的是:路径节点“D,S,m”为路径节点“H,S,HOST”的子节点,路径节点“D,S,.”为路径节点“D,S,m”的子节点,“D,S,o”为路径节点“D,S,.”的子节点。换句话说,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”依次连接。
需要说明的是,上述按照“从后缀到前缀”的顺序通过路径节点来表示路径1)-4)中的HOST字段中的字符仅是一种示例,本实施例不仅限于此,例如,还可以按照“从前缀到后缀”或“从前缀开始”的顺序通过路径节点来表示路径1)-4)中的HOST字段中的字符,其中,“从前缀开始”的顺序适用于HOST字段仅包括前缀、而不包括后缀的场景。以路径1为例,HOST字段中的字符为“o.m”,其中,“m”为后缀,“n”为前缀,上述“从前缀到后缀”的顺序指的是:路径节点“D,S,o”为路径节点“H,S,HOST”的子节点,路径节点“D,S,.”为路径节点“D,S,o”的子节点,“D,S,m”为路径节点“D,S,.”的子节点。
可选地,在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径的过程中,可以从根节点开始比较访问路径中的字符与路径节点中的字符是否相同。由于路径节点集合具有树状结构,因此,在将访问路径中的字符与具有多个子节点(例如,子节点1“D,P,CGI”,子节点2“D,S,.”)的路径节点(节点“D,S,o”)进行比对之后,可以选择上述一个子节点(例如,子节点1“D,P,CGI”)所在的分支(例如,子节点1“D,P,CGI”到叶子节点“D,P,t”)继续与访问路径中剩余的字符继续比对。若该分支比对结果失败(例如,访问路径为“Host:m.o.m”,对应于图3中的路径2)),这转到路径节点(节点“D,S,o”)的其他子节点(例如,子节点2“D,S,.”)所在的分支进行比对,而不需要重新再比对路径节点(节点“D,S,o”)之前已经比对过的节点(例如,“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”),从而减少了比对的次数,即,提高了在处理HTTP请求时对HTTP请求进行校验的效率。
也就是说,不同的路径中相同的连续字符串在比对的过程中最多仅需要比对一次,即,判断出具有树状结构的路径节点集合中是否存在与访问路径匹配的目标路径。
4)校验单元808,用于在上述路径节点集合中查找到与上述访问路径匹配的上述目标路径时,使用与上述目标路径对应的校验条件对上述HTTP请求进行校验;
可选地,上述路径与校验条件之间的对应关系可以预先以映射表的方式存储在服务器上。以上述路径1)-4)为例,映射表可以如下所示:
路径 校验条件
路径1 校验条件1
路径2 校验条件2
路径3 校验条件3
路径4 校验条件4
上述映射表存储在服务器上,仅是一种示例,上述映射表还可以存储在其他设备中,上述服务器通过网络从其他设备中可以获取到上述映射表,本实施例对此不作限定。
5)执行单元810,用于在上述HTTP请求满足上述校验条件时,执行HTTP请求所指示的请求操作。
可选地,上述预先建立的具有树状结构的路径节点集合可以用来表示“白名单”中记录的被允许访问的路径,例如,“白名单”中记录的每条被允许访问的路径可以由从根节点到一个叶子节点的路径节点子集合表示。换句话说,“白名单”中记录的被允许访问的路径通过树状结构来表示。可选地,若在路径节点集合中查找到与访问路径匹配的目标路径,则表示HTTP请求中的访问路径为“白名单”中记录的被允许访问的路径。
在本发明实施例中,采用树状结构来表示白名单中被允许访问的路径,且对于不同的路径中相同的连续字符串,仅由相同的路径节点表示一次,而不需要如现有技术中所采用的分别通过不同的数组成员进行表示。这样,在查找的过程中不需要遍历每一条根节点到叶子节点所表示的路径,即可以判断出HTTP请求的访问路径是否为白名单中被允许访问的路径,从而提高了在处理HTTP请求时对HTTP请求进行校验的效率,进而解决了在处理HTTP请求时对HTTP请求进行校验的效率较低的技术问题。
作为一种可选的方案,如图11所示,本实施例中的处理HTTP请求的装置还包括:发送单元1102,用于在使用与上述目标路径对应的校验条件对上述HTTP请求进行校验之后,若上述HTTP请求不满足上述校验条件,则向上述客户端发送用于指示拒绝访问的响应消息。
可选地,在本实施例中,在接收客户端发送的HTTP请求之前,需要预先建立上述具有树状结构的路径节点集合。以下结合具体的示例和附图来描述建立上述具有树状结构的路径节点集合的方案。需要说明的是,以下方案仅是一种示例,本实施例中建立上述具有树状结构的路径节点集合的方案不仅限于此。
作为一种可选的方案,如图10所示,本实施例中的处理HTTP请求的装置还包括:
1)第一设置单元1002,用于在接收客户端发送的HTTP请求之前,设置根节点,如图3中的根节点“H,root”;
2)第二设置单元1004,用于设置根节点的子节点(例如,“H,S,HOST”),其中,每个子节点中包含的字符表示一个被允许访问的路径中的HOST字段,不同的被允许访问的路径中的相同的HOST字段由一个子节点中包含的字符表示;
3)第三设置单元1006,用于在每个子节点下设置多个路径节点直到叶子节点,其中,不同的被允许访问的路径中相同的连续字符串由多个路径节点中的多个相连的路径节点表示。
以被允许访问的路径包括图3中的4条路径为例,图5-图7示出了具有树状结构的路径节点集合的建立过程。
如图5所示,路径节点集合初始化为空,在此基础上,先在路径节点集合中形成路径1)“Host:o.mCGI:/t”的树状结构,即,路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,t”依次连接。
进一步,在图5的基础上,再在路径节点集合中形成路径2)“Host:m.o.mCGI:null”。由于路径1)和2)具有相同的连续字符串“Host:o.m”,因此,仅需要在图5的基础上,将路径节点“D,S,.”设置为路径节点“D,S,o”的子节点,再将路径节点“D,S,m”设置为路径节点“D,S,.”的子节点,如图6所示。在图6中,上述路径1)和2)共用了路径节点“H,root”,“H,S,HOST”,“D,S,m”,“D,S,.”,“D,S,o”。
以相同的方式,在图6的基础上,再在路径节点集合中形成路径3)“Host:o.nCGI:/m”。由于路径3)中的HOST字段中的字符“n”与路径1)和路径2)中的HOST字段中的字符“m”不同,因此,将路径节点“D,S,n”作为路径节点“H,S,HOST”的一个新的子节点,并在路径节点“D,S,n”之后依次连接路径节点“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”,“D,P,m”,图7所示。
进一步,在图7的基础上,再在路径节点集合中形成路径4)“Host:o.nCGI:/n”。由于上述路径3)和4)具有相同的连续字符串“Host:o.nCGI:/”,因此,仅需要在图7的基础上,将路径节点“D,P,n”设置为路径节点“D,P,/”的子节点,如图3所示。在图3中,上述路径3)和4)共用了路径节点“H,root”,“H,S,HOST”,“D,S,n”,“D,S,.”,“D,S,o”,“D,P,CGI”,“D,P,/”。
可选地,在树状结构中,若一个路径节点存在多个子节点,则可以按照子节点中包括的字符的顺序来设置上述子节点的遍历顺序(或称排列顺序)。例如,由于字符“m”位于字符“n”之前,因此,可以将路径节点“D,S,m”作为路径节点“H,S,HOST”的子节点排列在路径节点“D,S,n”的左侧,这样,在具有树状结构的路径节点集合中执行查找操作时,优先遍历路径节点“D,S,m”,然后再遍历路径节点“D,S,n”。
需要说明的是,上述按照子节点中包括的字符的顺序来设置上述子节点的排列顺序,这仅是一种示例,本实施例对此不作限定。
可选地,在本实施例中,上述每一个路径节点中可以包括但不限于以下至少之一:节点类型、匹配模式、节点字符,其中,上述节点类型可以包括但不限于:根节点、子节点、叶子节点,上述叶子节点指一条路径的最后一个路径节点。上述匹配模式可以包括但不限于以下至少之一:前缀匹配、后缀匹配。其中,上述前缀匹配指的是:从前往后依次读取HTTP请求中访问路径中的字符;上述后缀匹配指的是:从后往前依次读取HTTP请求中访问路径中的字符。
可选地,可以但不限于通过以下函数来设置每个路径节点。
结合上述描述以及图3中所示的路径节点可知,一个路径节点可以用3元素<QnodeType,MatchMethod,value>来表示,其中,QnodeType表示节点类型、MatchMethod表示匹配模式、value表示路径节点中包括的字符。
可选地,QnodeType用H表示T_HEAD_NODE,D表示T_DATA_NODE;MatchMethod用P表示T_PREFIX,用S表示T_SUFFIX,用E表示T_EQ;value表示该路径节点中包括的字符。
具体结合图3所示的示例进行说明,假设从终端102中的客户端ID_1,接收的HTTP请求中获取由字符串表示的访问路径为:
1)Host:o.mCGI:/t。
其中,Host为后缀匹配,CGI为前缀匹配,则对于Host字段中的字符“o.m”,可以按照“m”,“.”,“o”的顺序来在具有树状结构的路径节点集合中设置与Host字段中的字符“o.m”对应的路径节点,例如,在图3中,Host字段中的字符“o.m”对应的路径节点依次为:“D,S,m”、“D,S,.”、“D,S,o”,其中,路径节点“D,S,m”为路径节点“H,S,Host”的子节点。相似地,可以按照“/”,“t”的顺序来在具有树状结构的路径节点集合中设置与CGI字段中的字符“/t”对应的路径节点,例如,在图3中,CGI字段中的字符“/t”对应的路径节点依次为路径节点“D,P,/”、“D,P,t”,其中,路径节点“D,P,/”为路径节点“H,P,CGI”的子节点。
可选地,在本实施例中,当不同的路径中包括相同的连续字符串,则与上述相同的连续字符串对应的路径可由一个包括上述根节点在内的多个相连的路径节点构成的路径节点子集合表示。
具体结合图3所示的示例进行说明,假设从终端102中的客户端ID_1,客户端ID_2接收的HTTP请求中获取由字符串表示的访问路径为:
1)Host:o.mCGI:/t;
2)Host:m.o.mCGI:null。
其中,两个不同路径中HOST包括相同的连续字符串“o.m”,则可以如图3所示,将相同的连续字符串所对应的路径节点合并,使得两条路径共用相同的路径节点子集合:“D,S,m”、“D,S,.”、“D,S,o”。
作为一种可选的方案,如图9所示,查找单元806包括:
1)查找模块902,用于从路径节点集合中查找是否存在由一个路径节点子集合所表示的目标路径,其中,一个路径节点子集合中从根节点到叶子节点所构成的字符串(例如,上述路径1中的字符串“Host:o.mCGI:/t”)与访问路径中的字符串(例如,“Host:o.mCGI:/t”)相同。
可选地,在本实施例中,上述路径节点中可以包括但不限于一个节点字符,则一个路径节点子集合中从根节点到叶子节点所构成的字符串与访问路径中的字符串相同可以包括但不限于:上述路径中的多个连续路径节点中的字符分别与HTTP请求中获取的访问路径中的字符相同。
具体结合以下示例进行说明,假设从HTTP请求中获取的由字符串标识的访问路径为HOST:QQ.COM,则在预先建立的具有树状集合的路径节点集合中查找各个路径中路径节点中的节点字符是否与访问路径中的字符依次相同,若相同,则表示上述路径节点子集合中从根节点到叶子节点所构成的字符串与访问路径中的字符串相同,进而可以判断出在所述路径节点集合中查找到与所述访问路径匹配的所述目标路径。
通过本申请提供的实施例,通过在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径,从而减少了对所有路径的遍历,进而实现了缩短对HTTP请求的校验时间,提高了执行HTTP请求所指示的请求操作的效率。
作为一种可选的方案,查找模块902包括:
1)生成子模块,用于重复执行以下操作,直到生成查找结果,其中,当前节点初始化为根节点,当前字符初始化为HTTP请求中用于表示访问路径的字符串中的校验起始字符:
S1,判断当前节点是否为根节点“H,root”;
S2,若当前节点为根节点,则将当前节点设置为根节点的子节点,例如,图3所示的路径节点“H,S,HOST”;
S3,若当前节点不为根节点,则判断当前节点中包含的字符是否为当前字符;
S4,若当前节点中包含的字符为当前字符,则判断当前节点是否为叶子节点,若当前节点为叶子节点,则将根节点到当前节点所表示的路径作为目标路径,并生成由第一查找信息表示的查找结果,其中,第一查找信息用于表示在路径节点集合中查找到与访问路径匹配的目标路径;若当前节点不为叶子节点,则将当前节点的子节点中选择一个子节点,其中,一个子节点中包含的字符为当前字符的下一个字符,将一个子节点设置为当前节点,并将当前字符的下一个字符设置为当前字符;
例如,以字符串为“Host:o.mCGI:/t”为例,假设上述字符串中HOST字段采用“从后缀到前缀”的顺序排列,CGI字段采用“从前缀到后缀”或“从前缀开始”的顺序排列,则字符串中字符的顺序为:“Host”,“m”,“.”,“o”,“CGI”,“/”,“t”,即,“Host”的下一个字符为“m”,“m”的下一个字符为“.”,“.”的下一个字符为“o”,“o”的下一个字符为“CGI”,“CGI”的下一个字符为“/”,“/”的下一个字符为“t”。
也就是说,上述当前字符的下一个字符可以为HTTP请求中用于表示访问路径的字符串中当前字符的下一个字符,其中,上述字符串中的字符按照与匹配模式对应的排列顺序排列。
S5,若当前节点中包含的字符不为当前字符,则生成由第二查找信息表示的查找结果,其中,第二查找信息用于表示在路径节点集合中未查找到与访问路径匹配的目标路径。
可选地,在本实施例中,上述校验起始字符包括但不限于以下之一:
1)HTTP请求中用于表示访问路径的字符串中的HOST字段中的第一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,HOST字段中的第一个字符为“m”或“HOST”;
2)HTTP请求中用于表示访问路径的字符串中的HOST字段中的最后一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,HOST字段中的最后一个字符为“o”;
3)HTTP请求中用于表示访问路径的字符串中的CGI字段中的第一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,CGI字段中的第一个字符为“/”或“CGI”;
4)HTTP请求中用于表示访问路径的字符串中的CGI字段中的最后一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,CGI字段中的最后一个字符为“t”;
5)HTTP请求中用于表示访问路径的字符串中的第一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,第一个字符为“m”或“HOST”;
6)HTTP请求中用于表示访问路径的字符串中的最后一个字符,例如,当访问路径为“Host:o.mCGI:/t”时,最后一个字符为“t”;
具体结合图3所示的示例进行描述,假设当前节点为访问路径(例如,“Host:o.mCGI:/t”)中HOST字段对应的路径节点“H,S,HOST”、且路径节点“H,S,HOST”中的字符“Host”与当前字符“Host”相同,则将该路径节点“H,S,HOST”的子节点“D,S,m”设置为当前节点,并将访问路径中的HOST字段中当前字符的下一个字符“m”设置为当前字符。然后,判断当前节点“D,S,m”中的字符是否为当前字符“m”。由于当前节点中的字符与当前字符相同,因此,继续将路径节点“D,S,m”的子节点“D,S,.”设置为当前节点,并将访问路径中的HOST字段中位于当前字符之后的下一个字符“.”设置为当前字符,以此类推。
若当前节点为叶子节点“D,P,t”、且路径节点“H,S,HOST”中的字符“t”与当前字符“t”相同,则将上述根节点“H,root”到叶子节点“D,P,t”所表示的路径作为目标路径,并生成查找结果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例3
本发明的实施例还提供了一种用于实施处理HTTP请求的方法的服务器,如图1所示的服务器104。可选地,在本实施例中,上述服务器可以为如图1所示的网络环境中的服务器,其中,发送HTTP请求的客户端可以但不限于位于图1所示的终端102中,图1所示的服务器104将通过网络接收上述HTTP请求,其中,上述服务器104也可以用终端替换。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述服务器104将从上述HTTP请求中获取由字符串表示的访问路径,并查找与上述访问路径匹配的目标路径,并在查找到上述目标路径后,执行上述HTTP请求所指示的请求操作。可选地,在本实施例中,上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。
可选地,在本实施例中,如图12所示,上述一种用于实施处理HTTP请求的方法的服务器包括:
1)通讯接口;例如,IEEE802.11网络接口1202,以及,IEEE802.16网络接口1204,用于接收客户端发送的HTTP请求;可选地,上述IEEE802.11网络接口1202以及IEEE802.16网络接口1204仅为一种示例,本实施例中的通讯接口可以仅包括IEEE802.11网络接口1202以及IEEE802.16网络接口1204中的一个,或者,包括其他接口,本实施例对此不作限定。
2)处理器1206,被设置为:从HTTP请求中获取由字符串表示的访问路径;在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径,其中,路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括根节点在内的多个相连的路径节点表示;在路径节点集合中查找到与访问路径匹配的目标路径时,使用与上述目标路径对应的校验条件对上述HTTP请求进行校验;若上述HTTP请求满足上述校验条件,则执行HTTP请求所指示的请求操作。
3)存储器1208,被设置存储HTTP请求中获取的由字符串表示的访问路径,以及在预先建立的具有树状结构的路径节点集合。
可选地,在本实施例中,上述服务器还可以包括键盘1212和显示器1214,其中,键盘1212和显示器1214通过设备接口1210与处理器1206连接。需要说明的是,上述键盘1212和显示器1214仅是一种示例,本实施例中的服务器可以包括键盘1212和显示器1214中的一个,或者,包括其他外围设备,或者不包括这些外围设备,本实施例对此不作限定。
可选地,在本实施例中,上述存储器中存储的内容也可以从除服务器104之外的其他服务器获取,本实施例对此不做任何限定。
可选地,在本实施例中,上述存储器还可以用于存储上述实施例1中的处理HTTP请求的方法中所存储的其他数据。
可选地,本实施例中的各个部件(例如,处理器1206)所执行的具体操作可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
实施例4
本发明的实施例还提供了一种用于实施处理HTTP请求的方法的存储介质。可选地,在本实施例中,上述存储介质可以应用于如图1所示的网络环境中的一个终端或服务器中,其中,发送HTTP请求的客户端可以但不限于位于图1所示的终端102中,图1所示的服务器104将通过网络接收上述HTTP请求,其中,上述服务器104也可以用终端替换。可选地,在本实施例中,上述网络可以包括但不限于:广域网、城域网、局域网。上述服务器104将从上述HTTP请求中获取由字符串表示的访问路径,并查找与上述访问路径匹配的目标路径,并在查找到上述目标路径后,执行上述HTTP请求所指示的请求操作。可选地,在本实施例中,上述终端可以包括但不限于:手机、平板电脑、笔记本电脑、PC机。
可选地,在本实施例中,上述存储介质被设置为存储用于执行以下步骤的程序代码:
S1,接收客户端发送的HTTP请求;
S2,从HTTP请求中获取由字符串表示的访问路径;
S3,在预先建立的具有树状结构的路径节点集合中查找与访问路径匹配的目标路径,其中,路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的路径中相同的连续字符串由一个路径节点子集合中包括根节点在内的多个相连的路径节点表示;
S4,若在路径节点集合中查找到与访问路径匹配的目标路径,则使用与上述目标路径对应的校验条件对上述HTTP请求进行校验;若上述HTTP请求满足上述校验条件,则执行HTTP请求所指示的请求操作。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的存储介质还可以存储用于执行上述实施例1和实施例2中的各个示例中的步骤的程序代码,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种处理HTTP请求的方法,其特征在于,包括:
接收客户端发送的HTTP请求;
从所述HTTP请求中获取由字符串表示的访问路径;
在预先建立的具有树状结构的路径节点集合中查找与所述访问路径匹配的目标路径,其中,所述路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的所述路径中相同的连续字符串由一个所述路径节点子集合中包括所述根节点在内的多个相连的路径节点表示;
若在所述路径节点集合中查找到与所述访问路径匹配的所述目标路径,则使用与所述目标路径对应的校验条件对所述HTTP请求进行校验;
若所述HTTP请求满足所述校验条件,则执行HTTP请求所指示的请求操作。
2.根据权利要求1所述的方法,其特征在于,所述在预先建立的具有树状结构的路径节点集合中查找与所述访问路径匹配的目标路径包括:
从所述路径节点集合中查找是否存在由一个所述路径节点子集合所表示的所述目标路径,其中,所述一个所述路径节点子集合中从所述根节点到所述叶子节点所构成的字符串与所述HTTP请求中用于表示所述访问路径的字符串相同。
3.根据权利要求2所述的方法,其特征在于,所述从所述路径节点集合中查找是否存在由一个所述路径节点子集合所表示的所述目标路径包括:
重复执行以下操作,直到生成查找结果,其中,当前节点初始化为所述根节点,当前字符初始化为所述HTTP请求中用于表示所述访问路径的字符串中的校验起始字符:
判断所述当前节点是否为所述根节点;
若所述当前节点为所述根节点,则将所述当前节点设置为所述根节点的子节点;
若所述当前节点不为所述根节点,则判断所述当前节点中包含的字符是否为所述当前字符;
若所述当前节点中包含的字符为所述当前字符,则判断所述当前节点是否为所述叶子节点,若所述当前节点为所述叶子节点,则将所述根节点到所述当前节点所表示的路径作为所述目标路径,并生成由第一查找信息表示的所述查找结果,其中,所述第一查找信息用于表示在所述路径节点集合中查找到与所述访问路径匹配的所述目标路径;若所述当前节点不为所述叶子节点,则将所述当前节点的子节点中选择一个子节点,其中,所述一个子节点中包含的字符为所述当前字符的下一个字符,将所述一个子节点设置为所述当前节点,并将所述当前字符的下一个字符设置为所述当前字符;
若所述当前节点中包含的字符不为所述当前字符,则生成由第二查找信息表示的所述查找结果,其中,所述第二查找信息用于表示在所述路径节点集合中未查找到与所述访问路径匹配的所述目标路径。
4.根据权利要求3所述的方法,其特征在于,所述校验起始字符为以下之一:
所述HTTP请求中用于表示所述访问路径的字符串中的HOST字段中的第一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的HOST字段中的最后一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的CGI字段中的第一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的CGI字段中的最后一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的第一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的最后一个字符。
5.根据权利要求1所述的方法,其特征在于,在所述接收客户端发送的HTTP请求之前,还包括:
设置所述根节点;
设置所述根节点的子节点,其中,每个所述子节点中包含的字符表示一个所述被允许访问的路径中的HOST字段,不同的所述被允许访问的路径中的相同的所述HOST字段由一个所述子节点中包含的字符表示;
在每个所述子节点下设置多个路径节点直到叶子节点,其中,不同的所述被允许访问的路径中相同的连续字符串由所述多个路径节点中的多个相连的路径节点表示。
6.根据权利要求1所述的方法,其特征在于,在使用与所述目标路径对应的校验条件对所述HTTP请求进行校验之后,还包括:
若所述HTTP请求不满足所述校验条件,则向所述客户端发送用于指示拒绝访问的响应消息。
7.一种处理HTTP请求的装置,其特征在于,包括:
接收单元,用于接收客户端发送的HTTP请求;
获取单元,用于从所述HTTP请求中获取由字符串表示的访问路径;
查找单元,用于在预先建立的具有树状结构的路径节点集合中查找与所述访问路径匹配的目标路径,其中,所述路径节点集合中从根节点到每个叶子节点的路径节点子集合表示一条被允许访问的路径,不同的所述路径中相同的连续字符串由一个所述路径节点子集合中包括所述根节点在内的多个相连的路径节点表示;
校验单元,用于在所述路径节点集合中查找到与所述访问路径匹配的所述目标路径时,使用与所述目标路径对应的校验条件对所述HTTP请求进行校验;
执行单元,用于在所述HTTP请求满足所述校验条件时,执行所述HTTP请求所指示的请求操作。
8.根据权利要求7所述的装置,其特征在于,所述查找单元包括:
查找模块,用于从所述路径节点集合中查找是否存在由一个所述路径节点子集合所表示的所述目标路径,其中,所述一个所述路径节点子集合中从所述根节点到所述叶子节点所构成的字符串与所述HTTP请求中用于表示所述访问路径的字符串相同。
9.根据权利要求8所述的装置,其特征在于,所述查找模块包括:
生成子模块,用于重复执行以下操作,直到生成查找结果,其中,当前节点初始化为所述根节点,当前字符初始化为所述HTTP请求中用于表示所述访问路径的字符串中的校验起始字符:
判断所述当前节点是否为所述根节点;
若所述当前节点为所述根节点,则将所述当前节点设置为所述根节点的子节点;
若所述当前节点不为所述根节点,则判断所述当前节点中包含的字符是否为所述当前字符;
若所述当前节点中包含的字符为所述当前字符,则判断所述当前节点是否为所述叶子节点,若所述当前节点为所述叶子节点,则将所述根节点到所述当前节点所表示的路径作为所述目标路径,并生成由第一查找信息表示的所述查找结果,其中,所述第一查找信息用于表示在所述路径节点集合中查找到与所述访问路径匹配的所述目标路径;若所述当前节点不为所述叶子节点,则将所述当前节点的子节点中选择一个子节点,其中,所述一个子节点中包含的字符为所述当前字符的下一个字符,将所述一个子节点设置为所述当前节点,并将所述当前字符的下一个字符设置为所述当前字符;
若所述当前节点中包含的字符不为所述当前字符,则生成由第二查找信息表示的所述查找结果,其中,所述第二查找信息用于表示在所述路径节点集合中未查找到与所述访问路径匹配的所述目标路径。
10.根据权利要求9所述的装置,其特征在于,所述校验起始字符为以下之一:
所述HTTP请求中用于表示所述访问路径的字符串中的HOST字段中的第一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的最后一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的CGI字段中的第一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的CGI字段中的最后一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的第一个字符;
所述HTTP请求中用于表示所述访问路径的字符串中的最后一个字符。
11.根据权利要求7所述的装置,其特征在于,还包括:
第一设置单元,用于在所述接收客户端发送的HTTP请求之前,设置所述根节点;
第二设置单元,用于设置所述根节点的子节点,其中,每个所述子节点中包含的字符表示一个所述被允许访问的路径中的HOST字段,不同的所述被允许访问的路径中的相同的所述HOST字段由一个所述子节点中包含的字符表示;
第三设置单元,用于在每个所述子节点下设置多个路径节点直到叶子节点,其中,不同的所述被允许访问的路径中相同的连续字符串由所述多个路径节点中的多个相连的路径节点表示。
12.根据权利要求7所述的装置,其特征在于,还包括:
发送单元,用于在使用与所述目标路径对应的校验条件对所述HTTP请求进行校验之后,若所述HTTP请求不满足所述校验条件,则向所述客户端发送用于指示拒绝访问的响应消息。
CN201410495941.7A 2014-09-24 2014-09-24 处理http请求的方法及装置 Active CN105491094B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410495941.7A CN105491094B (zh) 2014-09-24 2014-09-24 处理http请求的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410495941.7A CN105491094B (zh) 2014-09-24 2014-09-24 处理http请求的方法及装置

Publications (2)

Publication Number Publication Date
CN105491094A true CN105491094A (zh) 2016-04-13
CN105491094B CN105491094B (zh) 2019-12-17

Family

ID=55677804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410495941.7A Active CN105491094B (zh) 2014-09-24 2014-09-24 处理http请求的方法及装置

Country Status (1)

Country Link
CN (1) CN105491094B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404515A (zh) * 2017-06-21 2017-11-28 武汉斗鱼网络科技有限公司 异步http请求的处理方法及装置
CN110889022A (zh) * 2018-08-17 2020-03-17 迈普通信技术股份有限公司 数据查询方法、装置及电子设备
CN111259296A (zh) * 2020-01-14 2020-06-09 武汉极意网络科技有限公司 一种保证Web资源请求有序性的方法及系统
CN111835710A (zh) * 2020-05-29 2020-10-27 中国平安财产保险股份有限公司 校验请求体的方法、装置、计算机设备和存储介质
CN115567444A (zh) * 2022-09-23 2023-01-03 北京香哈网络股份有限公司 一种控制器路由地址查找调用方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080222244A1 (en) * 2007-03-09 2008-09-11 Riverbed Technology, Inc. Method and apparatus for acceleration by prefetching associated objects
CN102882987A (zh) * 2011-07-12 2013-01-16 阿里巴巴集团控股有限公司 域名过滤名单存储、匹配方法及装置
CN103353867A (zh) * 2005-12-29 2013-10-16 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
CN103377259A (zh) * 2012-04-28 2013-10-30 北京新媒传信科技有限公司 一种多模式字符串匹配方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103353867A (zh) * 2005-12-29 2013-10-16 亚马逊科技公司 具有网络服务客户接口的分布式存储系统
US20080222244A1 (en) * 2007-03-09 2008-09-11 Riverbed Technology, Inc. Method and apparatus for acceleration by prefetching associated objects
CN102882987A (zh) * 2011-07-12 2013-01-16 阿里巴巴集团控股有限公司 域名过滤名单存储、匹配方法及装置
CN103377259A (zh) * 2012-04-28 2013-10-30 北京新媒传信科技有限公司 一种多模式字符串匹配方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404515A (zh) * 2017-06-21 2017-11-28 武汉斗鱼网络科技有限公司 异步http请求的处理方法及装置
CN110889022A (zh) * 2018-08-17 2020-03-17 迈普通信技术股份有限公司 数据查询方法、装置及电子设备
CN111259296A (zh) * 2020-01-14 2020-06-09 武汉极意网络科技有限公司 一种保证Web资源请求有序性的方法及系统
CN111259296B (zh) * 2020-01-14 2023-03-10 武汉极意网络科技有限公司 一种保证Web资源请求有序性的方法及系统
CN111835710A (zh) * 2020-05-29 2020-10-27 中国平安财产保险股份有限公司 校验请求体的方法、装置、计算机设备和存储介质
CN111835710B (zh) * 2020-05-29 2023-08-15 中国平安财产保险股份有限公司 校验请求体的方法、装置、计算机设备和存储介质
CN115567444A (zh) * 2022-09-23 2023-01-03 北京香哈网络股份有限公司 一种控制器路由地址查找调用方法及系统
CN115567444B (zh) * 2022-09-23 2024-02-27 北京香哈网络股份有限公司 一种控制器路由地址查找调用方法及系统

Also Published As

Publication number Publication date
CN105491094B (zh) 2019-12-17

Similar Documents

Publication Publication Date Title
US11403284B2 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
CN110290117B (zh) 一种匹配ip地址的方法及装置
CN105491094A (zh) 处理http请求的方法及装置
WO2018149292A1 (zh) 一种对象聚类方法和装置
US7774380B2 (en) Technique for finding rest resources using an n-ary tree structure navigated using a collision free progressive hash
CN105141605A (zh) 会话方法、网站服务器及浏览器
CN104954415A (zh) 处理http请求的方法及装置
JP6557334B2 (ja) アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム
CN103067919B (zh) 计算设备和移动设备之间的连接建立方法和认证方法
CN111553670B (zh) 一种交易处理方法、装置及计算机可读存储介质
CN102752275B (zh) 签名库的匹配路径生成方法及相关装置
CN110933032B (zh) 一种ssh路径追踪方法、系统及介质
US8095677B1 (en) Configuration rule generation with compressed address sets
CN104518968A (zh) 一种报文处理的方法和透明代理服务器
US9628368B2 (en) Method and apparatus for compressing content name
US10897483B2 (en) Intrusion detection system for automated determination of IP addresses
US9654334B2 (en) System and method for fast compatibility verification of REST API based on REST Chart
CN104579939A (zh) 网关的保护方法和装置
CN107807976A (zh) Ip归属地查询方法和装置
CN105227599A (zh) Web应用的识别方法和装置
US10212036B2 (en) Performance testing method, performance testing apparatus performing the same and storage medium storing the same
CN111385360A (zh) 终端设备的识别方法、装置及计算机可读存储介质
CN112187743B (zh) 一种基于ip地址最长前缀的网络策略匹配方法及系统
US20160301658A1 (en) Method, apparatus, and computer-readable medium for efficient subnet identification
CN115828803A (zh) 网表缩减方法、芯片验证方法及计算机存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240104

Address after: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.