掌桥专利:专业的专利平台
掌桥专利
首页

信息提取方法及装置、电子设备、计算机可读存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及信息处理技术领域,具体而言,涉及一种信息提取方法及装置、电子设备、计算机可读存储介质。

背景技术

相关技术中,在通过互联网进行搜索时,一般是通过超文本传输协议HTTP向指定的地址发送请求,以获取请求数据,该指定的地址所对应的服务器或者处理终端在接收到请求后,需要对请求数据包进行解析,得到关于HTTP的头部信息,对于HTTP的头部信息处理时间较长,或者处理不准确,很容易造成请求响应的返回时间较长,导致返回报错或者用户的等待时间较长,客户使用兴趣降低,提供搜索服务的搜索引擎或者服务器需要进一步提高响应速度。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种信息提取方法及装置、电子设备、计算机可读存储介质,以至少解决相关技术中在解析请求数据包时,对于HTTP的头部信息处理时间较长,容易造成请求响应的返回时间较长的技术问题。

根据本发明实施例的一个方面,提供了一种信息提取方法,应用于请求处理服务器,包括:接收数据调用请求,其中,所述数据调用请求中至少携带有消息头;采用预先配置的头部拦截器读取所述消息头中的头部信息;将读取到的所述头部信息缓存至内存中,其中,在所述内存中缓存的所述头部信息被远程过程调用服务请求读取。

可选地,采用预先配置的头部拦截器读取所述消息头中的头部信息的步骤,包括:获取消息头的多个信息标识;采用所述头部拦截器基于每个所述信息标识匹配所述消息头中的目标信息,以得到所述头部信息。

可选地,在采用预先配置的头部拦截器读取所述消息头中的头部信息之后,还包括:按照预设信息模板,分析所述头部信息中的每个信息数据是否符合预设信息格式;在所述头部信息中的信息数据符合预设信息格式的情况下,确认信息验证通过。

可选地,所述头部拦截器设置在所述请求处理服务器的消息处理链中。

可选地,所述头部拦截器的类型为组件。

可选地,所述头部信息所包含的信息类型包括下述至少之一:认证信息、域址、客户端信息和语言类型。

根据本发明实施例的另一方面,还提供了一种信息提取装置,应用于请求处理服务器,包括:接收单元,用于接收数据调用请求,其中,所述数据调用请求中至少携带有消息头;读取单元,用于采用预先配置的头部拦截器读取所述消息头中的头部信息;缓存单元,用于将读取到的所述头部信息缓存至内存中,其中,在所述内存中缓存的所述头部信息被远程过程调用服务请求读取。

可选地,所述读取单元包括:第一获取模块,用于获取消息头的多个信息标识;匹配模块,用于采用所述头部拦截器基于每个所述信息标识匹配所述消息头中的目标信息,以得到所述头部信息。

可选地,信息提取装置还包括:分析单元,用于在采用预先配置的头部拦截器读取所述消息头中的头部信息之后,按照预设信息模板,分析所述头部信息中的每个信息数据是否符合预设信息格式;确认单元,用于在所述头部信息中的信息数据符合预设信息格式的情况下,确认信息验证通过。

可选地,所述头部拦截器设置在所述请求处理服务器的消息处理链中。

可选地,所述头部拦截器的类型为组件。

可选地,所述头部信息所包含的信息类型包括下述至少之一:认证信息、域址、客户端信息和语言类型。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的信息提取方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的信息提取方法。

本发明实施例中,采用接收数据调用请求,其中,数据调用请求中至少携带有消息头,采用预先配置的头部拦截器读取消息头中的头部信息,将读取到的头部信息缓存至内存中,其中,在内存中缓存的头部信息被远程过程调用服务请求读取。在该实施例中,在请求消息的消息处理链中添加一个头部拦截器,通过该头部拦截器读取消息头中的头部信息,后续远程过程调用的请求服务可以从内存中读取这些头部信息,这样能够节省对HTTP头部的处理和关注,保持服务间的头部处理统一性,同时可降低请求响应的处理时长,从而解决相关技术中在解析请求数据包时,对于HTTP的头部信息处理时间较长,容易造成请求响应的返回时间较长的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的信息提取方法的流程图;

图2是根据本发明实施例的一种可选的信息提取装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于本领域技术人员理解本申请,下面对本申请各实施例中所涉及的技术术语和名称进行解释:

超文本传输协议,Hyper Text Transfer Protocol,简称HTTP,是一种请求-响应协议,可以运行在TCP上。

gRPC,即gRPC Remote Procedure Calls,为谷歌公司发起的一个开源远程过程调用系统,可以基于HTTP协议传输。

Metadata:gRPC的元数据。

ProtoBuf,是一种用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,类型于常用的XML及JSON,适用于数据存储、网络数据传输。

Methodoptions,指示HTTP协议中的协议处理方法。

本申请可以应用于各种请求处理系统或者搜索处理系统中,对于请求内容并不做限定,可以包括但不限于:网页请求、传输资料请求、视频请求、图像请求,支持各种远程过程调用处理请求,例如支持通用的处理gRPC中来自HTTP头部的Metadata的逻辑,gRPC接收的HTTP头部数据会放入Metadata结构中(包括Cookies、User-Agent等等所有可以在HTTP头部写入的数据),可以方便的获取诸如认证信息、客户端信息和语言信息等。

本申请中,以支持gRPC请求为示例(也可以为其它请求,例如Restful请求),对本申请进行示意性说明,本申请可以通过扩展protobuf.MethodOptions,来增加了头部过滤器,通过将Header转换为元数据,能够解析头部信息,可以自定义需要过滤的头部并处理这些头部内容。下面结合各个实施例来说明本申请。

实施例一

根据本发明实施例,提供了一种信息提取方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明实施例提供了一种信息提取方法,应用于请求处理服务器。在本实施例中,该头部拦截器可以设置在请求处理服务器的消息处理链中。

一种可选的,本实施例中可以通过扩展protobuf.MethodOptions增加了头部过滤器标识HeadersFilter来记录需要过滤的头部数据名称。可选的,头部拦截器的类型为组件。

图1是根据本发明实施例的一种可选的信息提取方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,接收数据调用请求,其中,数据调用请求中至少携带有消息头;

步骤S104,采用预先配置的头部拦截器读取消息头中的头部信息;

步骤S106,将读取到的头部信息缓存至内存中,其中,在内存中缓存的头部信息被远程过程调用服务请求读取。

通过上述步骤,可以接收数据调用请求,其中,数据调用请求中至少携带有消息头,采用预先配置的头部拦截器读取消息头中的头部信息,将读取到的头部信息缓存至内存中,其中,在内存中缓存的头部信息被远程过程调用服务请求读取。在该实施例中,在请求消息的消息处理链中添加一个头部拦截器,通过该头部拦截器读取消息头中的头部信息,后续远程过程调用的请求服务可以从内存中读取这些头部信息,这样能够节省对HTTP头部的处理和关注,保持服务间的头部处理统一性,同时可降低请求响应的处理时长,从而解决相关技术中在解析请求数据包时,对于HTTP的头部信息处理时间较长,容易造成请求响应的返回时间较长的技术问题。

下面结合上述各实施步骤来详细说明本申请。

步骤S102,接收数据调用请求,其中,数据调用请求中至少携带有消息头。

数据调用请求可以是客户端发送的,该数据调用请求中可以包括:验证信息、消息头、数据内容等。通过请求处理服务器接收客户端发起的数据调用请求,并对该请求进行快速解析,返回给客户端相应的数据信息,为客户端提供对应的服务,该数据调用请求所调用的内容包括但不限于:图片、视频、文本、word文件、表格等。

步骤S104,采用预先配置的头部拦截器读取消息头中的头部信息。

可选的,本实施例所提及的头部信息所包含的信息类型包括下述至少之一:认证信息、域址、客户端信息和语言类型。

本实施例,对于定义的消息头的新结构存储HeadersFilter中定义需要检查的名称对应的值,值的作用为客户端需要发送给服务端的必要信息,这些信息需要在很多服务中进行识别,比如认证信息会在具体的逻辑中进行身份校验、客户端信息会在计算结果时针对不同客户端平台(Windows/Mac/iOS/Android/Web等等)产生对应的数据、语言类型信息会在返回文案时处理国际化逻辑等。

作为本实施例可选的实施方式,采用预先配置的头部拦截器读取消息头中的头部信息的步骤,包括:获取消息头的多个信息标识;采用头部拦截器基于每个信息标识匹配消息头中的目标信息,以得到头部信息。

例如,在gRPC的消息处理链中添加一个头部拦截器HttpHeadersInterceptor,它是一个gRPC的服务器拦截器,用来读取gRPC的Metadata数据。读取Metadata时,通过匹配HeadersFilter标识的头部名称来读取需要的头部信息(包括Cookies、User-Agent等等所有可以在HTTP头部写入的数据)。

可选的,在采用预先配置的头部拦截器读取消息头中的头部信息之后,还包括:按照预设信息模板,分析头部信息中的每个信息数据是否符合预设信息格式;在头部信息中的信息数据符合预设信息格式的情况下,确认信息验证通过。

本实施例,可以在得到请求后(例如,接收到gRPC式的处理请求),将消息头先转换为元数据,然后将请求参数转换为gRPC请求结构,通过头部拦截器来读取消息头中的头部信息,之后返回头部信息至内存中,后续gRPC请求可以直接通过该内存调用消息头的头部信息,无需进行解析、加载、处理请求结构等事宜,提高请求处理速度。

步骤S106,将读取到的头部信息缓存至内存中,其中,在内存中缓存的头部信息被远程过程调用服务请求读取。

本实施例,可以在原gRPC的protobuf定义的基础上,增加了新的结构,HeadersFilter定义需要检查内容的Metadata名称,并在类HttpHeadersInterceptor(io.grpc.ServerInterceptor)中进行检查该名称是否存在(可以自定义检查逻辑)。新的结构Headers存储HeadersFilter中定义需要检查的名称对应的值(例如需要检查并提取Metadata中的cookie),并在类HttpHeadersInterceptor(io.grpc.ServerInterceptor)中进行处理。

通过上述实施例,可以在gRPC的消息处理链中添加了一个头部拦截器HttpHeadersInterceptor,它是一个gRPC的服务器拦截器,用来读取gRPC的元数据(该元数据是在一次远程调用过程中关于这次调用的信息,是key-value的形式,其中key是string类型,value是一组string,元数据对于gRPC本身来说透明,它使得客户端和服务器能为对方提供本次调用的信息。就像一次http请求的RequestHeader和ResponseHeader,httpheader的生命周期是一次http请求,元数据的生命周期则是一次RPC调用。)。将头部信息缓存到内存中,后续gRPC的服务可以从内存中读取这些头部信息,可以节省对HTTP头部的处理和关注,保持服务间的头部处理统一性(所有使用该方案的服务都按照同一个逻辑来获取头部数据)。

下面结合另一种可选的实施例来说明本申请。

实施例二

本实施例提供的一种信息提取装置,可以应用于请求处理服务器,该装置所包含的各个实施单元对应于上述实施例一中的各个实施步骤。

图2是根据本发明实施例的一种可选的信息提取装置的示意图,如图2所示,该信息提取装置可以包括:接收单元21、读取单元23、缓存单元25,其中,

接收单元21,用于接收数据调用请求,其中,数据调用请求中至少携带有消息头;

读取单元23,用于采用预先配置的头部拦截器读取消息头中的头部信息;

缓存单元25,用于将读取到的头部信息缓存至内存中,其中,在内存中缓存的头部信息被远程过程调用服务请求读取。

上述信息提取装置,可以通过接收单元21接收数据调用请求,其中,数据调用请求中至少携带有消息头,通过读取单元23采用预先配置的头部拦截器读取消息头中的头部信息,通过缓存单元25将读取到的头部信息缓存至内存中,其中,在内存中缓存的头部信息被远程过程调用服务请求读取。在该实施例中,在请求消息的消息处理链中添加一个头部拦截器,通过该头部拦截器读取消息头中的头部信息,后续远程过程调用的请求服务可以从内存中读取这些头部信息,这样能够节省对HTTP头部的处理和关注,保持服务间的头部处理统一性,同时可降低请求响应的处理时长,从而解决相关技术中在解析请求数据包时,对于HTTP的头部信息处理时间较长,容易造成请求响应的返回时间较长的技术问题。

可选的,读取单元包括:第一获取模块,用于获取消息头的多个信息标识;匹配模块,用于采用头部拦截器基于每个信息标识匹配消息头中的目标信息,以得到头部信息。

可选的,信息提取装置还包括:分析单元,用于在采用预先配置的头部拦截器读取消息头中的头部信息之后,按照预设信息模板,分析头部信息中的每个信息数据是否符合预设信息格式;确认单元,用于在头部信息中的信息数据符合预设信息格式的情况下,确认信息验证通过。

可选的,头部拦截器设置在请求处理服务器的消息处理链中。

可选的,头部拦截器的类型为组件。

可选的,头部信息所包含的信息类型包括下述至少之一:认证信息、域址、客户端信息和语言类型。

上述的信息提取装置还可以包括处理器和存储器,上述接收单元21、读取单元23、缓存单元25等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来采用预先配置的头部拦截器读取消息头中的头部信息,将读取到的头部信息缓存至内存中。

上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的信息提取方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的信息提取方法。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收数据调用请求,其中,数据调用请求中至少携带有消息头;采用预先配置的头部拦截器读取消息头中的头部信息;将读取到的头部信息缓存至内存中,其中,在内存中缓存的头部信息被远程过程调用服务请求读取。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 信息提取方法及装置、电子设备、计算机可读存储介质
  • 信息提取方法、装置、计算机可读存储介质及电子设备
技术分类

06120114702043