一种网页内实现HTTP协议请求数据高亮的方法技术

技术编号:38101091 阅读:8 留言:0更新日期:2023-07-06 09:19
本发明专利技术公开了一种网页内实现HTTP协议请求数据高亮的方法,涉及互联网技术领域。本发明专利技术包括以下步骤:S1.将请求数据转换为字符串数组;S2.从S1转换的字符串数组内取出一行数据进行处理;S3.循环执行S2,直至处理结束;S4.在S3完成后,将返回一个整数数组,S5.获取S4的数组后,进行高亮处理。本发明专利技术支持设定数据边界标记符,以满足对请求包特定数据进行标记的功能,实现对复杂http请求数据包的高亮展示,可适用于所有基于网页开发的需要对http请求数据包进行高亮展示的场景,支持通过webworker的方式进行调用本高亮方法,可提升高亮性能。高亮性能。高亮性能。

【技术实现步骤摘要】
一种网页内实现HTTP协议请求数据高亮的方法


[0001]本专利技术属于互联网
,具体涉及一种网页内实现HTTP协议请求数据高亮的方法。

技术介绍

[0002]在针对HTTP协议网络请求分析与调试软件中,通常需要对捕获的网络请求数据进行高亮展示,以便使用此类软件的分析人员能够得到更好的用户体验并提升分析的效率。从开发成本及跨平台的兼容性考量,当前越来越多的客户端软件选择使用基于浏览器的框架(例如Electron、Nw.js、CEF等)来开发,网络请求分析与调试软件也不例外。
[0003]在此开发架构下,软件的界面通常使用网页开发技术实现,对网络请求数据的展示则通常也是基于网页代码编辑器来进行展示。在常规的代码编辑器场景下,代码的高亮通常只需考虑单一的数据高亮规则,并且代码编辑器通常内置了对各类语言的高亮特效;而对网络请求数据的高亮,则需要考虑复合的数据高亮规则,且代码编辑器通常不会对不属于开发语言的请求包进行合理的高亮展示,例如在一个请求包中,请求包的头部与请求包的包体分别属于不同类型的数据,需要采用两种不同的高亮规则。
[0004]因此,当前的网页代码编辑器难以实现对复杂请求数据的高亮展示,一些基于正则表达式的高亮规则方案也通常不具有通用性,在特定的数据包上会给出错误的高亮处理。

技术实现思路

[0005]本专利技术的目的是为了解决上述存在之问题,提供一种网页内实现HTTP协议请求数据高亮的方法,该方法通过javascript语言在网页内实现对复杂http请求数据包的高亮展示,可适用于所有基于网页开发的需要对http请求数据包进行高亮展示的场景,支持通过web worker的方式进行调用本高亮方法,可提升高亮性能。
[0006]为实现上述目的,本专利技术所采用的技术方案如下:一种网页内实现HTTP协议请求数据高亮的方法,其包括以下步骤:S1.对传入的数据进行预处理:将请求数据转换为字符串数组;S2.从步骤S1转换的字符串数组内取出一行数据,并通过扫描当前行数据内的每个字符来判定当前内容处于何种状态,当扫描过程从一种状态切换至另一种状态时,如果前一个状态需要进行高亮处理,则将前一状态内容的起始位置及状态类型进行记录;S3.循环执行步骤S2,直至处理结束,得到所有需要高亮内容的位置及长度信息,以一个整数数组进行表示该结果;S4.在步骤S3完成后,返回一个整数数组,数组内每5个数字为一组,代表一个高亮内容,5个数字分别表示该高亮内容在全部请求数据中的相对行数、在行内的相对位置、高亮内容长度、高亮类型以及一个预留字段;S5.不同编辑器在获取步骤S4的数组后,根据每个高亮内容的位置、长度、类型信
息对编辑器内的内容进行高亮处理。
[0007]在循环执行步骤S2过程中,分为对请求头的处理与请求体的处理。
[0008]进一步地:在对请求头的分析过程中,如果遇到Content

Type头,则记录Content

Type头对应的值,提取Content

Type头将为下面选择“FORM、MULTIPART、XML、JSON、HTML”何种流程提供判断依据;如果Content

Type头中包含有boundary=内容,则提取boundary=后方的字符串内容作为复合内容边界,提取boundary 是为了进入MULTIPART处理流程的高亮分析规则提供依据;如果遇到请求头以空白或Tab符开头,则认为上一个请求头状态未结束;是为了正确的解析HTTP请求头,其它基于正则表达式的方法很难对这种情况进行处理。
[0009]进一步地:在执行步骤S2的过程中,如果遇到空白行,包括没有内容或者仅存在自定义“换行符”时,则认为分析流程进入对请求体的处理过程。
[0010]进一步地:在对请求体的处理过程中,通过对记录的头部对应值的选择进入不同的处理状态,从而进入不同的处理流程,包括FORM、MULTIPART、XML、JSON、HTML。
[0011]进一步地:当进入FORM流程时,默认为表单状态,遇到=、&、数据边界符分别切换至表单值、请求参数、数据标记状态,剩余的切换至请求参数名状态;随后根据步骤S2进行后续状态切换并记录高亮数据。
[0012]进一步地:当进入MULTIPART流程时,默认为复合内容状态,遇到

、数据边界符分别进入复合内容边界状态和数据标记状态;随后根据步骤S2进行后续状态切换并记录高亮数据。
[0013]进一步地:当进入JSON流程时,默认为JSON状态,遇到[、{、"、数据边界符分别进入JSON数组起始、JSON对象起始、JSON字符串起始状态和数据标记状态;随后根据步骤S2进行后续状态切换并记录高亮数据。
[0014]进一步地:当进入XML与HTML流程时,默认分别为XML与HTML状态,遇到<和数据边界符分别进入XML标签开放状态和数据标记状态;随后根据步骤S2进行后续状态切换并记录高亮数据。
[0015]本专利技术相比现有技术具有以下优点:1.本专利技术支持对HTTP数据包头部的高亮:包括请求方法、请求路径、请求参数、协议版本、请求头名称及值等项进行高亮;现有方案通常无法进行细化的高亮,或者是通过正则表达式进行高亮,但容易产生错误。
[0016]2.本专利技术支持对HTTP数据包头部内Cookie子项进行高亮;现有方案通常无法对请求头内的Cookie的键值对进行单独高亮处理。
[0017]3.本专利技术支持对HTTP数据包头部内请求头的值存在多行的情况进行高亮;现有方案通常无法处理请求头的值存在多行数据的情况。
[0018]4.本专利技术支持对不同类型的HTTP数据包包体进行高亮,支持json、xml、html、复合内容(multipart/form

data)、表单(x

www

form

urlencoded)等形式的包体格式;现有方案通常无法同时支持前述包体形式尤其是针对复合内容这类复杂的数据包的高亮处理。
[0019]5.本专利技术支持对复合内容形式包体的边界与参数进行高亮;现有方案通常无法对复合内容包体的边界以及包体内参数子项进行高亮处理。
[0020]6.本专利技术支持通过请求包头内的Content

Type对包体使用特定的高亮规则;现有方案通常无法根据Content

Type请求头来应用对请求体的高亮规则。
[0021]7.本专利技术支持对数据包各高亮项设定高亮规则;现有方案通常无法针对请求数据包各项进行高亮规则设定。
[0022]8.本专利技术支持以web worker形式进行调用,以避免阻塞网页内的脚本执行;现有高亮方案通常没有使用web worker的方案,当高亮数据过大时,会存在阻塞页面的情况。
[0023]9.本专利技术支持自定义换行字符,以满足对请求包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网页内实现HTTP协议请求数据高亮的方法,其特征在于,包括以下步骤:S1.对传入的数据进行预处理:将请求数据转换为字符串数组;S2.从步骤S1转换的字符串数组内取出一行数据进行处理,并通过扫描当前行数据内的每个字符来判定当前内容所处状态,当扫描过程从一种状态切换至另一种状态时,如果前一个状态需要进行高亮处理,则将前一状态内容的起始位置及状态类型进行记录;S3.循环执行步骤S2,直至得到所有需要高亮内容的位置及长度信息,以一个整数数组进行表示结果;S4.在步骤S3完成后,返回一个整数数组,数组内每5个数字为一组,代表一个高亮内容,5个数字分别表示高亮内容在全部请求数据中的相对行数、在行内的相对位置、高亮内容长度、高亮类型以及一个预留字段;S5.编辑器在获取步骤S4的数组后,根据每个高亮内容的位置、长度、类型信息对编辑器内的内容进行高亮处理。2.根据权利要求1所述的一种网页内实现HTTP协议请求数据高亮的方法,其特征在于,在循环执行步骤S2过程中,分为对请求头的处理与请求体的处理。3.根据权利要求2所述的一种网页内实现HTTP协议请求数据高亮的方法,其特征在于,在对请求头的分析过程中,如果遇到Content

Type头,则记录Content

Type头对应的值;如果Content

Type头中包含有boundary=内容,则提取boundary=后方的字符串内容作为复合内容边界;如果遇到请求头以空白或Tab符开头,则认为上一个请求头状态未结束。4.根据权利要求3所述的一种网页内实现HTTP协议请求数据高亮的方法,其特征在于,在执行步骤S2...

【专利技术属性】
技术研发人员:童永鳌张瑞冬朱鹏李维
申请(专利权)人:成都无糖信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1