CN109936624A - Http请求报文头的适配方法、装置和计算机设备 - Google Patents
Http请求报文头的适配方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN109936624A CN109936624A CN201910101298.8A CN201910101298A CN109936624A CN 109936624 A CN109936624 A CN 109936624A CN 201910101298 A CN201910101298 A CN 201910101298A CN 109936624 A CN109936624 A CN 109936624A
- Authority
- CN
- China
- Prior art keywords
- header field
- http request
- preset
- similarity
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000006978 adaptation Effects 0.000 title claims abstract description 41
- 210000001072 colon Anatomy 0.000 claims description 33
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 238000007689 inspection Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 230000003044 adaptive effect Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007257 malfunction Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请揭示了一种HTTP请求报文头的适配方法、装置、计算机设备和存储介质,所述方法包括:接收HTTP请求报文;解析HTTP请求报文,获得HTTP请求报文头;解析HTTP请求报文头,获得头部字段名及头部字段值;判断头部字段名或者头部字段值是否正确;若头部字段名或者头部字段值不正确,计算预设的替换列表中的头部字段名或者头部字段值与不正确的头部字段名或者不正确的头部字段值的相似度;若相似度中的最大值大于预设的相似度阈值,将不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。从而实现了自动纠正适配错误的请求报文头,减少不必要的网络开销。
Description
技术领域
本申请涉及到计算机领域,特别是涉及到一种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请求报文头中所述第一个冒号之后的内容,记为头部字段值。
进一步地,所述头部字段值包括类型部分和子类型部分,所述根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确的步骤,包括:
解析所述头部字段值,获得类型部分和子类型部分;
判断所述头部字段名、所述类型部分或者所述子类型部分是否存在所述预设的替换列表中;
若所述头部字段名、所述类型部分和所述子类型部分均存在所述预设的替换列表中,则判定所述头部字段名或者头部字段值正确。
进一步地,所述若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值的步骤,包括:
若所述头部字段名或者头部字段值不正确,则采用公式:
计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度similarity,其中,A为所述不正确的头部字段名或者不正确的头部字段值的字符频率向量,B为预设的替换列表中的头部字段名或者头部字段值的字符频率向量,Ai、Bi分别为所述向量A和B的第i个分向量,n为向量A和B二者中分向量数量最多的分向量数量值,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。
进一步地,所述判断所述相似度中的最大值是否大于预设的相似度阈值的步骤之后,包括:
若所述相似度中的最大值不大于预设的相似度阈值,则将所述头部字段名设置为content-type;
将所述content-type头部字段的值设置为text/html。
进一步地,所述若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头的步骤之后,包括:
执行对具有适配后的HTTP请求报文头的HTTP请求报文的识别命令;
判断所述识别过程是否报错;
若执行所述识别命令的过程未报错,则判定所述适配的HTTP请求报文头正确。
本申请提供一种HTTP请求报文头的适配装置,包括:
报文接收单元,用于接收HTTP请求报文;
报文头获取单元,用于根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头;
头部字段名及头部字段值获取单元,用于根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值;
报文头判断单元,用于根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确;
相似度计算单元,用于若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值;
相似度判断单元,用于判断所述相似度中的最大值是否大于预设的相似度阈值;
替换单元,用于若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。
本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的HTTP请求报文头的适配方法、装置、计算机设备和存储介质,通过解析所述HTTP请求报文头,获得头部字段名及头部字段值,判断所述头部字段名或者头部字段值是否正确,计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而实现了自动纠正适配错误的请求报文头,减少不必要网络开销。
附图说明
图1为本申请一实施例的HTTP请求报文头的适配方法的流程示意图;
图2为本申请一实施例的HTTP请求报文头的适配装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例提供一种HTTP请求报文头的适配方法,包括以下步骤:
S1、接收HTTP请求报文;
S2、根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头;
S3、根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值;
S4、根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确;
S5、若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值;
S6、判断所述相似度中的最大值是否大于预设的相似度阈值;
S7、若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。
如上述步骤S1所述,接收HTTP请求报文。报文是网络中交换与传输的数据单元,是各个系统、各个终端、服务器与终端之间交互的数据。报文包含了将要发送的完整的数据信息,至少包括了报文头与报文正文(即报文体)。其中请求报文是指发送请求的报文。
如上述步骤S2所述,根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头。一般,HTTP请求报文的格式为:请求行、请求头(HTTP请求报文头,也称HEADER)和请求体。预设的HTTP请求报文的格式即可设为请求行、请求头和请求体的格式,当然,也可设为其他任意的包括HTTP请求报文头的格式。其中,解析所述HTTP请求报文的过程包括:确定所述HTTP请求报文头的位置,从所述位置中提取出所述HTTP请求报文头。
如上述步骤S3所述,根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值。一般,HTTP请求报文头的格式为:头部字段名:头部字段值。预设的HTTP请求报文头的格式即设为头部字段名:头部字段值,当然,也可设为其他任意的包括头部字段名和与头部字段值的格式。具体的HTTP请求报文头的格式例如:Content-Type:[type]/[subtype];parameter。Content-type即为头部字段名,[type]/[subtype];parameter即为头部字段值。完整的HTTP请求报文头例如:Content-Type:application/json;charset=utf-8。parameter可以用来指定附加的信息,优选用于指定文字编码方式的charset参数。据此,解析所述HTTP请求报文头,获得头部字段名及头部字段值。
如上述步骤S4所述,根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确。HTTP请求头若出现错误,则无法被识别,服务器无法接收该HTTP请求。其中,有些HTTP请求头的错误是可以判断出错误之处,并加以纠正的。因此,先根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确。若所述头部字段名或者头部字段值均正确,那么无需纠错,即可直接识别所述HTTP请求;若所述头部字段名或者头部字段值存在错误之处,那么可以对其进行纠正,再识别出纠正后的正确HTTP请求。其中,预设的请求报文头检验规则可以为任意检验请求报文头的方式,例如,先判断所述头部字段名是否存在于预设的正确头部字段名的表格中,若存在表明所述头部字段名无误,若不存在表明所述头部字段名有误;再判断所述头部字段值的名称与格式是否符合预设的名称与格式,若符合则判定无误,反之判定有误。
如上述步骤S5所述,若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。若所述头部字段名或者头部字段值不正确,即HTTP请求无法被正确识别,因此需要先找出正确的头部字段名或者头部字段值。一般头部字段名及头部字段值不正确,仅是部分字符出错,例如,将Content-Type:application/json;charset=utf-8错误写成apolication/json;charset=utf-8等等。由于预设的替换列表中记载有例如application的正确头部字段名及头部字段值,因此计算HTTP请求头中的头部字段名及头部字段值与替换列表中的头部字段名及头部字段值的相似度,即可找出正确的头部字段名及头部字段值。其中,采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,可以采用任意相似度算法,例如重叠词算法等。
如上述步骤S6所述,判断所述相似度中的最大值是否大于预设的相似度阈值。若所述相似度中的最大值大于预设的相似度阈值,表明确在正确的头部字段名或者头部字段值,从而可以进行替换处理;反之,无法替换。
如上述步骤S7所述,若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。若所述相似度大于预设的相似度阈值,表明预设的替换表中存在正确的头部字段名。据此,将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,即可实现对错误的HTTP请求头的纠正,从而使HTTP请求得以被正确识别。其中替换所述不正确的头部字段值的方式包括:替换所述不正确的头部字段值中的不正确部分。即采用部分替换的方式替换不正确的头部字段值,这是因为头部字段值包括[type]/[subtype];parameter,其中,参数parameter一般不会出错,因此只需将出错的[type]或者[subtype]进行替换即可。
在一个实施方式中,所述根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头的步骤S2,包括:
S201、根据预设的HTTP请求报文的格式,确定所述HTTP请求报文头的位置;
S202、判断所述HTTP请求报文头的位置中的内容是否与符合预设的HTTP请求报文头的格式;
S203、若符合预设的HTTP请求报文头的格式,则提取所述HTTP请求报文头的位置中的内容,并记为HTTP请求报文头。
如上所述,实现了根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头。以预设的HTTP请求报文的格式为请求行、请求头和请求体,其中请求行与请求头间存在第一个换行符,请求头与请求体之间存在一个空行,来举例。从所述HTTP请求报文中找到第一个换行符,再找到第一个空行,将所述第一个换行符与所述第一个空行之间的位置记为所述HTTP请求报文头的位置。再判断所述HTTP请求报文头的位置中的内容是否与符合预设的HTTP请求报文头的格式,例如判断是否具有Content-Type:[type]/[subtype];parameter的格式。若符合,则提取所述HTTP请求报文头的位置中的内容,并记为HTTP请求报文头。
在一个实施方式中,所述根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值的步骤S3,包括:
S301、从所述HTTP请求报文头中确定第一个冒号的位置;
S302、截取所述HTTP请求报文头中所述第一个冒号之前的内容,记为头部字段名;
S303、截取所述HTTP请求报文头中所述第一个冒号之后的内容,记为头部字段值。
如上所述,实现了根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值。本实施方式中,预设的HTTP请求报文头的格式为头部字段名:头部字段值,例如Content-Type:[type]/[subtype];parameter。即头部字段名与头部字段值通过冒号隔开,其中头部字段名里不存在冒号。因此截取所述HTTP请求报文头中所述第一个冒号之前的内容,记为头部字段名;截取所述HTTP请求报文头中所述第一个冒号之后的内容,记为头部字段值。其中,所述冒号的格式为任意格式的冒号,优选为英文格式的冒号。
在一个实施方式中,所述头部字段值包括类型部分和子类型部分,所述根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确的步骤S4,包括:
S401、解析所述头部字段值,获得类型部分和子类型部分;
S402、判断所述头部字段名、所述类型部分或者所述子类型部分是否存在所述预设的替换列表中;
S403、若所述头部字段名、所述类型部分和所述子类型部分均存在所述预设的替换列表中,则判定所述头部字段名或者头部字段值正确。
如上所述,实现了所述根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确。其中,所述头部字段值包括类型部分(例如type)和子类型部分(subtype)。而头部字段值中可能存在的参数(parameter)部分,一般不会出错,因此不做错误判断与替换的操作,以节省算力。再判断所述头部字段名、所述类型部分和所述子类型部分是否存在所述预设的替换列表中,即可判断所述头部字段名或者头部字段值是否正确。其中,所述替换列表中预存有正确的头部字段名、类型部分和子类型部分。
在一个实施方式中,所述若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值的步骤S5,包括:
S501、若所述头部字段名或者头部字段值不正确,则采用公式:
计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度。其中,A为所述不正确的头部字段名或者不正确的头部字段值的字符频率向量,B为预设的替换列表中的头部字段名或者头部字段值的字符频率向量,Ai、Bi分别为所述向量A和B的第i个分向量,n为向量A和B二者中分向量数量最多的分向量数量值,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。
如上所述,实现了若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。其中,采用余弦相似度的计算方法来采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度。其中,头部字段名或者头部字段值的字符频率向量指头部字段名或者头部字段值中的字符出现的次数。例如start的字符频率向量为(1,2,1,1),即除t出现2次外,其他字符均只出现1次,其中(1,2,1,1)中的2即为字符t的分向量。从而,利用余弦相似度公式计算出预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度。
在一个实施方式中,所述判断所述相似度中的最大值是否大于预设的相似度阈值的步骤S6之后,包括:
S61、若所述相似度中的最大值不大于预设的相似度阈值,则将所述头部字段名设置为content-type;
S62、将所述content-type头部字段的值设置为text/html。
如上所述,实现了将所述content-type头部字段的值设置为text/html。若所述相似度中的最大值不大于预设的相似度阈值,表明不能找到正确的所述头部字段名或者头部字段值。而一般情况下,头部字段名为content-type、头部字段值为text/html是较常见的情况,有可能纠正HTTP请求头的错误。因此将所述头部字段名设置为content-type,将所述content-type头部字段的值设置为text/html,以尽可能地纠正错误。
在一个实施方式中,所述若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头的步骤S7之后,包括:
S71、执行对具有适配后的HTTP请求报文头的HTTP请求报文的识别命令;
S72、判断所述识别过程是否报错;
S73、若执行所述识别命令的过程未报错,则判定所述适配的HTTP请求报文头正确。
如上所述,实现了对所述适配的HTTP请求报文头是否正确的判断。虽然前述已经经过了对HTTP请求报文头的纠正处理,但是不能保证所有的错误HTTP请求报文头都得到了正确的纠正。若在执行对具有适配后的HTTP请求报文头的HTTP请求报文的识别过程,并未报错,则判定所述适配的HTTP请求报文头正确。
本申请的HTTP请求报文头的适配方法,通过解析所述HTTP请求报文头,获得头部字段名及头部字段值,判断所述头部字段名或者头部字段值是否正确,计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而实现了自动纠正适配错误的请求报文头,减少不必要网络开销。
参照图2,本申请实施例提供一种HTTP请求报文头的适配装置,包括:
报文接收单元10,用于接收HTTP请求报文;
报文头获取单元20,用于根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头;
头部字段名及头部字段值获取单元30,用于根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值;
报文头判断单元40,用于根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确;
相似度计算单元50,用于若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值;
相似度判断单元60,用于判断所述相似度中的最大值是否大于预设的相似度阈值;
替换单元70,用于若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。
如上述单元10所述,接收HTTP请求报文。报文是网络中交换与传输的数据单元,是各个系统、各个终端、服务器与终端之间交互的数据。报文包含了将要发送的完整的数据信息,至少包括了报文头与报文正文(即报文体)。其中请求报文是指发送请求的报文。
如上述单元20所述,根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头。一般,HTTP请求报文的格式为:请求行、请求头(HTTP请求报文头,也称HEADER)和请求体。预设的HTTP请求报文的格式即可设为请求行、请求头和请求体的格式,当然,也可设为其他任意的包括HTTP请求报文头的格式。其中,解析所述HTTP请求报文的过程包括:确定所述HTTP请求报文头的位置,从所述位置中提取出所述HTTP请求报文头。
如上述单元30所述,根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值。一般,HTTP请求报文头的格式为:头部字段名:头部字段值。预设的HTTP请求报文头的格式即设为头部字段名:头部字段值,当然,也可设为其他任意的包括头部字段名和与头部字段值的格式。具体的HTTP请求报文头的格式例如:Content-Type:[type]/[subtype];parameter。Content-type即为头部字段名,[type]/[subtype];parameter即为头部字段值。完整的HTTP请求报文头例如:Content-Type:application/json;charset=utf-8。parameter可以用来指定附加的信息,优选用于指定文字编码方式的charset参数。据此,解析所述HTTP请求报文头,获得头部字段名及头部字段值。
如上述单元40所述,根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确。HTTP请求头若出现错误,则无法被识别,服务器无法接收该HTTP请求。其中,有些HTTP请求头的错误是可以判断出错误之处,并加以纠正的。因此,先根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确。若所述头部字段名或者头部字段值均正确,那么无需纠错,即可直接识别所述HTTP请求;若所述头部字段名或者头部字段值存在错误之处,那么可以对其进行纠正,再识别出纠正后的正确HTTP请求。其中,预设的请求报文头检验规则可以为任意检验请求报文头的方式,例如,先判断所述头部字段名是否存在于预设的正确头部字段名的表格中,若存在表明所述头部字段名无误,若不存在表明所述头部字段名有误;再判断所述头部字段值的名称与格式是否符合预设的名称与格式,若符合则判定无误,反之判定有误。
如上述单元50所述,若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。若所述头部字段名或者头部字段值不正确,即HTTP请求无法被正确识别,因此需要先找出正确的头部字段名或者头部字段值。一般头部字段名及头部字段值不正确,仅是部分字符出错,例如,将Content-Type:application/json;charset=utf-8错误写成apolication/json;charset=utf-8等等。由于预设的替换列表中记载有例如application的正确头部字段名及头部字段值,因此计算HTTP请求头中的头部字段名及头部字段值与替换列表中的头部字段名及头部字段值的相似度,即可找出正确的头部字段名及头部字段值。其中,采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,可以采用任意相似度算法,例如重叠词算法等。
如上述单元60所述,判断所述相似度中的最大值是否大于预设的相似度阈值。若所述相似度中的最大值大于预设的相似度阈值,表明确在正确的头部字段名或者头部字段值,从而可以进行替换处理;反之,无法替换。
如上述单元70所述,若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。若所述相似度大于预设的相似度阈值,表明预设的替换表中存在正确的头部字段名。据此,将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,即可实现对错误的HTTP请求头的纠正,从而使HTTP请求得以被正确识别。其中替换所述不正确的头部字段值的方式包括:替换所述不正确的头部字段值中的不正确部分。即采用部分替换的方式替换不正确的头部字段值,这是因为头部字段值包括[type]/[subtype];parameter,其中,参数parameter一般不会出错,因此只需将出错的[type]或者[subtype]进行替换即可。
在一个实施方式中,所述报文头获取单元20,包括:
报文头的位置确定子单元,用于根据预设的HTTP请求报文的格式,确定所述HTTP请求报文头的位置;
报文头的格式判断子单元,用于判断所述HTTP请求报文头的位置中的内容是否与符合预设的HTTP请求报文头的格式;
报文头标记子单元,用于若符合预设的HTTP请求报文头的格式,则提取所述HTTP请求报文头的位置中的内容,并记为HTTP请求报文头。
如上所述,实现了根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头。以预设的HTTP请求报文的格式为请求行、请求头和请求体,其中请求行与请求头间存在第一个换行符,请求头与请求体之间存在一个空行,来举例。从所述HTTP请求报文中找到第一个换行符,再找到第一个空行,将所述第一个换行符与所述第一个空行之间的位置记为所述HTTP请求报文头的位置。再判断所述HTTP请求报文头的位置中的内容是否与符合预设的HTTP请求报文头的格式,例如判断是否具有Content-Type:[type]/[subtype];parameter的格式。若符合,则提取所述HTTP请求报文头的位置中的内容,并记为HTTP请求报文头。
在一个实施方式中,所述头部字段名及头部字段值获取单元30,包括:
冒号位置确定子单元,用于从所述HTTP请求报文头中确定第一个冒号的位置;
头部字段名标记子单元,用于截取所述HTTP请求报文头中所述第一个冒号之前的内容,记为头部字段名;
头部字段值标记子单元,用于截取所述HTTP请求报文头中所述第一个冒号之后的内容,记为头部字段值。
如上所述,实现了根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值。本实施方式中,预设的HTTP请求报文头的格式为头部字段名:头部字段值,例如Content-Type:[type]/[subtype];parameter。即头部字段名与头部字段值通过冒号隔开,其中头部字段名里不存在冒号。因此截取所述HTTP请求报文头中所述第一个冒号之前的内容,记为头部字段名;截取所述HTTP请求报文头中所述第一个冒号之后的内容,记为头部字段值。其中,所述冒号的格式为任意格式的冒号,优选为英文格式的冒号。
在一个实施方式中,所述头部字段值包括类型部分和子类型部分,所述报文头判断单元40,包括:
头部字段值解析子单元,用于解析所述头部字段值,获得类型部分和子类型部分;
替换列表判断子单元,用于判断所述头部字段名、所述类型部分或者所述子类型部分是否存在所述预设的替换列表中;
正确判定子单元,用于若所述头部字段名、所述类型部分和所述子类型部分均存在所述预设的替换列表中,则判定所述头部字段名或者头部字段值正确。
如上所述,实现了所述根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确。其中,所述头部字段值包括类型部分(例如type)和子类型部分(subtype)。而头部字段值中可能存在的参数(parameter)部分,一般不会出错,因此不做错误判断与替换的操作,以节省算力。再判断所述头部字段名、所述类型部分和所述子类型部分是否存在所述预设的替换列表中,即可判断所述头部字段名或者头部字段值是否正确。其中,所述替换列表中预存有正确的头部字段名、类型部分和子类型部分。
在一个实施方式中,所述相似度计算单元50,包括:
相似度计算子单元,用于若所述头部字段名或者头部字段值不正确,则采用公式:
计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,其中,A为所述不正确的头部字段名或者不正确的头部字段值的字符频率向量,B为预设的替换列表中的头部字段名或者头部字段值的字符频率向量,Ai、Bi分别为所述向量A和B的第i个分向量,n为向量A和B二者中分向量数量最多的分向量数量值,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。
如上所述,实现了若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。其中,采用余弦相似度的计算方法来采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度。其中,头部字段名或者头部字段值的字符频率向量指头部字段名或者头部字段值中的字符出现的次数。例如start的字符频率向量为(1,2,1,1),即除t出现2次外,其他字符均只出现1次,其中(1,2,1,1)中的2即为字符t的分向量。从而,利用余弦相似度公式计算出预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度。
在一个实施方式中,所述装置,包括:
头部字段名设置单元,用于若所述相似度中的最大值不大于预设的相似度阈值,则将所述头部字段名设置为content-type;
头部字段的值设置单元,用于将所述content-type头部字段的值设置为text/html。
如上所述,实现了将所述content-type头部字段的值设置为text/html。若所述相似度中的最大值不大于预设的相似度阈值,表明不能找到正确的所述头部字段名或者头部字段值。而一般情况下,头部字段名为content-type、头部字段值为text/html是较常见的情况,有可能纠正HTTP请求头的错误。因此将所述头部字段名设置为content-type,将所述content-type头部字段的值设置为text/html,以尽可能地纠正错误。
在一个实施方式中,所述装置,包括:
识别命令执行单元,用于执行对具有适配后的HTTP请求报文头的HTTP请求报文的识别命令;
报错判断单元,用于判断所述识别过程是否报错;
报文头正确判定单元,用于若执行所述识别命令的过程未报错,则判定所述适配的HTTP请求报文头正确。
如上所述,实现了对所述适配的HTTP请求报文头是否正确的判断。虽然前述已经经过了对HTTP请求报文头的纠正处理,但是不能保证所有的错误HTTP请求报文头都得到了正确的纠正。若在执行对具有适配后的HTTP请求报文头的HTTP请求报文的识别过程,并未报错,则判定所述适配的HTTP请求报文头正确。
本申请的HTTP请求报文头的适配装置,通过解析所述HTTP请求报文头,获得头部字段名及头部字段值,判断所述头部字段名或者头部字段值是否正确,计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而实现了自动纠正适配错误的请求报文头,减少不必要网络开销。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储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请求报文头中所述第一个冒号之后的内容,记为头部字段值。
在一个实施方式中,所述头部字段值包括类型部分和子类型部分,所述根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确的步骤,包括:解析所述头部字段值,获得类型部分和子类型部分;判断所述头部字段名、所述类型部分或者所述子类型部分是否存在所述预设的替换列表中;若所述头部字段名、所述类型部分和所述子类型部分均存在所述预设的替换列表中,则判定所述头部字段名或者头部字段值正确。
在一个实施方式中,所述若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值的步骤,包括:若所述头部字段名或者头部字段值不正确,则采用公式:
计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度similarity,其中,A为所述不正确的头部字段名或者不正确的头部字段值的字符频率向量,B为预设的替换列表中的头部字段名或者头部字段值的字符频率向量,Ai、Bi分别为所述向量A和B的第i个分向量,n为向量A和B二者中分向量数量最多的分向量数量值,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。
在一个实施方式中,所述判断所述相似度中的最大值是否大于预设的相似度阈值的步骤之后,包括:若所述相似度中的最大值不大于预设的相似度阈值,则将所述头部字段名设置为content-type;将所述content-type头部字段的值设置为text/html。
在一个实施方式中,所述若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的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请求报文头中所述第一个冒号之后的内容,记为头部字段值。
在一个实施方式中,所述头部字段值包括类型部分和子类型部分,所述根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确的步骤,包括:解析所述头部字段值,获得类型部分和子类型部分;判断所述头部字段名、所述类型部分或者所述子类型部分是否存在所述预设的替换列表中;若所述头部字段名、所述类型部分和所述子类型部分均存在所述预设的替换列表中,则判定所述头部字段名或者头部字段值正确。
在一个实施方式中,所述若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值的步骤,包括:若所述头部字段名或者头部字段值不正确,则采用公式:
计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度similarity,其中,A为所述不正确的头部字段名或者不正确的头部字段值的字符频率向量,B为预设的替换列表中的头部字段名或者头部字段值的字符频率向量,Ai、Bi分别为所述向量A和B的第i个分向量,n为向量A和B二者中分向量数量最多的分向量数量值,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。
在一个实施方式中,所述判断所述相似度中的最大值是否大于预设的相似度阈值的步骤之后,包括:若所述相似度中的最大值不大于预设的相似度阈值,则将所述头部字段名设置为content-type;将所述content-type头部字段的值设置为text/html。
在一个实施方式中,所述若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头的步骤之后,包括:执行对具有适配后的HTTP请求报文头的HTTP请求报文的识别命令;判断所述识别过程是否报错;若执行所述识别命令的过程未报错,则判定所述适配的HTTP请求报文头正确。
本申请的计算机可读存储介质,通过解析所述HTTP请求报文头,获得头部字段名及头部字段值,判断所述头部字段名或者头部字段值是否正确,计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而实现了自动纠正适配错误的请求报文头,减少不必要网络开销。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种HTTP请求报文头的适配方法,其特征在于,包括:
接收HTTP请求报文;
根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头;
根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值;
根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确;
若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值;
判断所述相似度中的最大值是否大于预设的相似度阈值;
若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。
2.根据权利要求1所述的HTTP请求报文头的适配方法,其特征在于,所述根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头的步骤,包括:
根据预设的HTTP请求报文的格式,确定所述HTTP请求报文头的位置;
判断所述HTTP请求报文头的位置中的内容是否与符合预设的HTTP请求报文头的格式;
若符合预设的HTTP请求报文头的格式,则提取所述HTTP请求报文头的位置中的内容,并记为HTTP请求报文头。
3.根据权利要求1所述的HTTP请求报文头的适配方法,其特征在于,所述根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值的步骤,包括:
从所述HTTP请求报文头中确定第一个冒号的位置;
截取所述HTTP请求报文头中所述第一个冒号之前的内容,记为头部字段名;
截取所述HTTP请求报文头中所述第一个冒号之后的内容,记为头部字段值。
4.根据权利要求1所述的HTTP请求报文头的适配方法,其特征在于,所述头部字段值包括类型部分和子类型部分,所述根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确的步骤,包括:
解析所述头部字段值,获得类型部分和子类型部分;
判断所述头部字段名、所述类型部分或者所述子类型部分是否存在所述预设的替换列表中;
若所述头部字段名、所述类型部分和所述子类型部分均存在所述预设的替换列表中,则判定所述头部字段名或者头部字段值正确。
5.根据权利要求1所述的HTTP请求报文头的适配方法,其特征在于,所述若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值的步骤,包括:
若所述头部字段名或者头部字段值不正确,则采用公式:
计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度similarity,其中,A为所述不正确的头部字段名或者不正确的头部字段值的字符频率向量,B为预设的替换列表中的头部字段名或者头部字段值的字符频率向量,Ai、Bi分别为所述向量A和B的第i个分向量,n为向量A和B二者中分向量数量最多的分向量数量值,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值。
6.根据权利要求1所述的HTTP请求报文头的适配方法,其特征在于,所述判断所述相似度中的最大值是否大于预设的相似度阈值的步骤之后,包括:
若所述相似度中的最大值不大于预设的相似度阈值,则将所述头部字段名设置为content-type;
将所述content-type头部字段的值设置为text/html。
7.根据权利要求1所述的HTTP请求报文头的适配方法,其特征在于,所述若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头的步骤之后,包括:
执行对具有适配后的HTTP请求报文头的HTTP请求报文的识别命令;
判断所述识别过程是否报错;
若执行所述识别命令的过程未报错,则判定所述适配的HTTP请求报文头正确。
8.一种HTTP请求报文头的适配装置,其特征在于,包括:
报文接收单元,用于接收HTTP请求报文;
报文头获取单元,用于根据预设的HTTP请求报文的格式,解析所述HTTP请求报文,获得HTTP请求报文头;
头部字段名及头部字段值获取单元,用于根据预设的HTTP请求报文头的格式,解析所述HTTP请求报文头,获得头部字段名及头部字段值;
报文头判断单元,用于根据预设的请求报文头检验规则,判断所述头部字段名或者头部字段值是否正确;
相似度计算单元,用于若所述头部字段名或者头部字段值不正确,则采用预设的相似度算法计算预设的替换列表中的头部字段名或者头部字段值与所述不正确的头部字段名或者不正确的头部字段值的相似度,并获得所述替换列表中的所述相似度最大的头部字段名或者头部字段值;
相似度判断单元,用于判断所述相似度中的最大值是否大于预设的相似度阈值;
替换单元,用于若所述相似度中的最大值大于预设的相似度阈值,则将所述不正确的头部字段名或者不正确的头部字段值替换为所述相似度最大的头部字段名或者头部字段值,从而获得适配后的HTTP请求报文头。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910101298.8A CN109936624B (zh) | 2019-01-31 | 2019-01-31 | Http请求报文头的适配方法、装置和计算机设备 |
PCT/CN2019/089053 WO2020155483A1 (zh) | 2019-01-31 | 2019-05-29 | Http请求报文头的适配方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910101298.8A CN109936624B (zh) | 2019-01-31 | 2019-01-31 | Http请求报文头的适配方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936624A true CN109936624A (zh) | 2019-06-25 |
CN109936624B CN109936624B (zh) | 2022-03-18 |
Family
ID=66985475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910101298.8A Active CN109936624B (zh) | 2019-01-31 | 2019-01-31 | Http请求报文头的适配方法、装置和计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109936624B (zh) |
WO (1) | WO2020155483A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445636A (zh) * | 2019-07-03 | 2019-11-12 | 平安科技(深圳)有限公司 | 基于管理平台的微服务预警方法、装置和计算机设备 |
CN112822237A (zh) * | 2020-12-28 | 2021-05-18 | 北京奇艺世纪科技有限公司 | 网络请求传输方法及装置 |
CN113034151A (zh) * | 2021-03-17 | 2021-06-25 | 中国工商银行股份有限公司 | 户名校验方法及装置、电子设备和计算机可读存储介质 |
CN115379026A (zh) * | 2022-04-19 | 2022-11-22 | 国家计算机网络与信息安全管理中心 | 一种报文头域的识别方法、装置、设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363933A (zh) * | 2020-11-11 | 2021-02-12 | 平安普惠企业管理有限公司 | 字段落表的自动化验证方法、装置、计算机设备及存储介质 |
CN112528307A (zh) * | 2020-12-18 | 2021-03-19 | 平安银行股份有限公司 | 服务请求校验方法、装置、电子设备及存储介质 |
CN114553676A (zh) * | 2022-02-25 | 2022-05-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种报文处理方法、平台、电子设备及存储介质 |
CN115314554B (zh) * | 2022-09-26 | 2024-01-26 | 北京城建设计发展集团股份有限公司 | 一种轨道交通异构系统的数据接入方法、装置及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1679330A (zh) * | 2001-08-23 | 2005-10-05 | 宝利通公司 | 视频错误隐藏的系统和方法 |
CN102017498A (zh) * | 2008-05-06 | 2011-04-13 | 阿尔卡特朗讯公司 | 传输错误的恢复 |
CN102833327A (zh) * | 2012-08-16 | 2012-12-19 | 瑞斯康达科技发展股份有限公司 | 基于http的客户端类型的识别方法和装置 |
CN103929447A (zh) * | 2013-01-11 | 2014-07-16 | 中国科学院声学研究所 | 一种解析HTTP chunked编码数据的方法 |
CN105959344A (zh) * | 2016-04-15 | 2016-09-21 | 杭州迪普科技有限公司 | 一种Web推送方法及装置 |
CN106452954A (zh) * | 2016-09-30 | 2017-02-22 | 苏州迈科网络安全技术股份有限公司 | Http数据特征分析方法及系统 |
CN106878311A (zh) * | 2017-02-22 | 2017-06-20 | 杭州迪普科技股份有限公司 | Http报文的重写方法及装置 |
CN108629046A (zh) * | 2018-05-14 | 2018-10-09 | 平安科技(深圳)有限公司 | 一种字段匹配方法及终端设备 |
CN108681534A (zh) * | 2018-04-11 | 2018-10-19 | 广州视源电子科技股份有限公司 | 候选词评估方法、装置、计算机设备和存储介质 |
CN109150962A (zh) * | 2018-07-03 | 2019-01-04 | 北京东方网信科技股份有限公司 | 一种通过关键字快速识别http请求头的方法 |
CN110377633A (zh) * | 2019-06-21 | 2019-10-25 | 深圳壹账通智能科技有限公司 | 报表数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100375466C (zh) * | 2002-04-10 | 2008-03-12 | 中兴通讯股份有限公司 | 一种数据包转发控制装置和方法 |
US7925694B2 (en) * | 2007-10-19 | 2011-04-12 | Citrix Systems, Inc. | Systems and methods for managing cookies via HTTP content layer |
CN103220371B (zh) * | 2012-01-18 | 2016-03-02 | 中国移动通信集团公司 | 内容适配方法及系统 |
CN103944817A (zh) * | 2013-01-23 | 2014-07-23 | 中国银联股份有限公司 | 一种联机系统中的报文转接方法、转接设备以及终端设备 |
-
2019
- 2019-01-31 CN CN201910101298.8A patent/CN109936624B/zh active Active
- 2019-05-29 WO PCT/CN2019/089053 patent/WO2020155483A1/zh active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1679330A (zh) * | 2001-08-23 | 2005-10-05 | 宝利通公司 | 视频错误隐藏的系统和方法 |
CN102017498A (zh) * | 2008-05-06 | 2011-04-13 | 阿尔卡特朗讯公司 | 传输错误的恢复 |
CN102833327A (zh) * | 2012-08-16 | 2012-12-19 | 瑞斯康达科技发展股份有限公司 | 基于http的客户端类型的识别方法和装置 |
CN103929447A (zh) * | 2013-01-11 | 2014-07-16 | 中国科学院声学研究所 | 一种解析HTTP chunked编码数据的方法 |
CN105959344A (zh) * | 2016-04-15 | 2016-09-21 | 杭州迪普科技有限公司 | 一种Web推送方法及装置 |
CN106452954A (zh) * | 2016-09-30 | 2017-02-22 | 苏州迈科网络安全技术股份有限公司 | Http数据特征分析方法及系统 |
CN106878311A (zh) * | 2017-02-22 | 2017-06-20 | 杭州迪普科技股份有限公司 | Http报文的重写方法及装置 |
CN108681534A (zh) * | 2018-04-11 | 2018-10-19 | 广州视源电子科技股份有限公司 | 候选词评估方法、装置、计算机设备和存储介质 |
CN108629046A (zh) * | 2018-05-14 | 2018-10-09 | 平安科技(深圳)有限公司 | 一种字段匹配方法及终端设备 |
CN109150962A (zh) * | 2018-07-03 | 2019-01-04 | 北京东方网信科技股份有限公司 | 一种通过关键字快速识别http请求头的方法 |
CN110377633A (zh) * | 2019-06-21 | 2019-10-25 | 深圳壹账通智能科技有限公司 | 报表数据处理方法、装置、计算机设备和存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445636A (zh) * | 2019-07-03 | 2019-11-12 | 平安科技(深圳)有限公司 | 基于管理平台的微服务预警方法、装置和计算机设备 |
CN110445636B (zh) * | 2019-07-03 | 2022-03-18 | 平安科技(深圳)有限公司 | 基于管理平台的微服务预警方法、装置和计算机设备 |
CN112822237A (zh) * | 2020-12-28 | 2021-05-18 | 北京奇艺世纪科技有限公司 | 网络请求传输方法及装置 |
CN113034151A (zh) * | 2021-03-17 | 2021-06-25 | 中国工商银行股份有限公司 | 户名校验方法及装置、电子设备和计算机可读存储介质 |
CN115379026A (zh) * | 2022-04-19 | 2022-11-22 | 国家计算机网络与信息安全管理中心 | 一种报文头域的识别方法、装置、设备及存储介质 |
CN115379026B (zh) * | 2022-04-19 | 2024-01-19 | 国家计算机网络与信息安全管理中心 | 一种报文头域的识别方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109936624B (zh) | 2022-03-18 |
WO2020155483A1 (zh) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936624A (zh) | Http请求报文头的适配方法、装置和计算机设备 | |
CN110445636B (zh) | 基于管理平台的微服务预警方法、装置和计算机设备 | |
US9652322B2 (en) | User station of a bus system and method for transmitting messages between user stations of a bus system | |
CN110288990A (zh) | 一种语音控制优化方法、存储介质及智能终端 | |
CN112613993A (zh) | 交易数据处理方法、装置、计算机设备和存储介质 | |
CN110909361A (zh) | 一种漏洞检测方法,装置和计算机设备 | |
CN112162924A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN109783742A (zh) | 用于开发辅助的页面跳转方法、装置和计算机设备 | |
CN111245742B (zh) | 数据的缓冲方法、装置、计算机和可读存储介质 | |
CN108156015B (zh) | 数据的更新方法和装置 | |
CN110147354B (zh) | 批量数据编辑方法、装置、计算机设备及存储介质 | |
CN106921561B (zh) | 一种信息处理方法及装置 | |
US20110153564A1 (en) | Error-sensitive electronic directory synchronization system and methods | |
CN110334071A (zh) | log4j日志框架的属性配置方法、装置和计算机设备 | |
CN111176882A (zh) | 特定数据处理方法、装置、计算机设备及存储介质 | |
CN112528334B (zh) | 基于区块链网络的数据获取方法、装置以及计算机设备 | |
CN106445462B (zh) | 一种Unity3D平台的串口数据处理方法 | |
CN101470666B (zh) | 一种数据存储方法 | |
CN109918433A (zh) | 基于通用数据接口的报文保存方法、装置和计算机设备 | |
Cisco | ||
CN110309133B (zh) | 批量数据的处理方法和装置 | |
CN110471669B (zh) | 一种空指针引用的检测方法及检测装置 | |
CN112068982A (zh) | 汽车设码方法、装置、计算机设备及存储介质 | |
CN117709362B (zh) | 多语言资源的修改方法、装置、计算机设备和存储介质 | |
CN111309383B (zh) | 指令识别方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |