一种流量还原方法及装置的制造方法_2

文档序号:9380165阅读:来源:国知局
求,原始服务器能够识别出请求来自于同一个客户端。
[0045] 进一步的,可以通过在操作中包含会话标识,以标示操作所属的会话;因此,同一 个会话中的所有操作可以包含相同的会话标识,这样,就可以从杂乱的流量中识别会话,将 相同会话内的操作进行分组。
[0046] 具体的,在S102中,将包含相同会话标识的操作称为一组操作,对于每组操作均 要执行S102,以获取X个会话的有序的操作列表;由于对于每组操作执行S102的过程相 同,此处以所述第一组操作执行S102的过程为例进行说明,其他组操作执行S102的过程相 同,此处不再一一赘述;其中,所述第一组操作为所述至少一个操作中,任意一组包含相同 会话标识的操作。
[0047] 具体的,对于所述第一组操作,将包含相同会话标识的每组操作,根据操作中的前 驱操作标识,进行关联排序,获取所述第一组操作指示的会话的有序的操作列表,可以包括 但不限于下述两种方案:
[0048] 第一种方案:
[0049] 遍历所述第一组操作中的每个操作,分别将每个操作关联至该操作中的前驱操作 标识指示的操作,获取所述第一组操作的会话标识指示的会话的有序的操作列表。
[0050] 其中,对于遍历所述第一组操作中的每个操作时的顺序,本发明对此不进行具体 限定。
[0051] 示例性的,假设第一组操作中包括的操作如表1所示:
[0052] 表 1
[0053]
[0054] 因此,将表1所示的第一组操作,按照第一种方案执行S102之后,可以获取到第一 组操作指示的会话的有序的操作列表如表2所示;
[0055] 表 2
[0056]
[0057] 需要说明的是,上述示例仅对上述第一种方案进行示例描述,并不是对上述方案 的具体限定。
[0058] 第二种方案:为了提高处理效率,可以先将第一组操作中的每个操作按照请求时 间顺序依次排列,再将请求时间相同的操作中每个操作,关联至该操作中的前驱操作标识 指示的操作,获取所述第一组操作的会话标识指示的会话的有序的操作列表。
[0059] 示例性的,以表1示意的第一组操作为例,假设该操作还包括每个操作的请求时 间,该第一组操作如表3所示:
[0060] 表 3
[0061]
[0062] 因此,先将表3所示的第一组操作中的每个操作按照请求时间顺序依次排列,可 得到:(操作1)、(操作2)、(操作3、操作4)、(操作5);其中,操作3、操作4的时间相同。
[0063] 再将操作3关联至其前驱操作(操作4)之后,因此,得到如表2所示的第一组操 作指示的会话的有序的操作列表。
[0064] S103、分别对X个会话的有序的操作列表中相互匹配的请求和响应中的每个响应 所属的操作进行渲染,构建DOM树。
[0065] 优选的,可以利用Eclipse平台出品的标准窗口小部件工具箱(Standard Widget Toolkit,简称SWT)套件中的browser引擎,由该引擎将超文本标记语言(HyperText Markup Language,简称HTML)源代码构建成DOM树。
[0066] 当然,也可以采用其他方式构建DOM树,本发明对于构建DOM树的过程不进行具体 限定。
[0067] S104、分别将X个会话的有序的操作列表中相互匹配的请求和响应中的每个请求 中包含的提交数据,填充至与其相互匹配的响应所属的操作的DOM树中的数据填充节点。
[0068] 其中,相互匹配的请求和响应为所述有序的操作列表中连续的请求和响应。
[0069] 示例性的,假设一个会话的有序的操作列表依次为:操作1、操作2、操作3 ;如图2 所示,操作1的响应为form表单,而操作2的请求为form表单提交数据,操作1的响应与 操作2的请求为有序的操作列表中连续的请求和响应,操作1的响应与操作2的请求相互 匹配。
[0070] 具体的,分别将所述X个会话的有序的操作列表中相互匹配的请求和响应中的每 个请求中包含的提交数据,填充至与其相互匹配的响应所属的操作的DOM树中的数据填充 节点,可以包括下面步骤A和步骤B :
[0071] 步骤A、分别根据X个会话的有序的操作列表中每个操作的数据内容,确定每个操 作的页面形式。
[0072] 其中,可以根据每个操作的数据内容中的关键字,确定页面形式。
[0073] 可选的,所述页面形式可以包括但不限于:Form表单、FrameSet,异步请求响应。
[0074] 示例性的,若数据内容会出现〈form〉关键字,则可确定操作的页面形式为Form表 单;
[0075] 若数据内容会出现〈frameset〉关键字,则可确定操作的页面形式为FrameSet ;
[0076] 若数据内容会请求统一资源定位符(Uniform Resource Locator,简称URL)中出 现异步请求特征,响应内容格式为:application/json或text/plain或text/xml,则可确 定操作的页面形式为异步请求响应。
[0077] 步骤B、分别将X个会话的有序的操作列表中相互匹配的请求和响应中的每个请 求中包含的提交数据,按照相互匹配的请求和响应所属的操作的页面形式,填充至与其相 互匹配的响应所属的操作的DOM树中的数据填充节点。
[0078] 其中,操作的页面形式决定了向DOM树中的数据填充节点填充数据的具体方式。
[0079] 可选的,可以为操作的每一种页面形式,预设不同的填充策略,用于向DOM树中的 数据填充节点填充数据。
[0080] 这样,将X个会话的有序的操作列表中相互匹配的请求和响应中的每个请求中包 含的提交数据,按照相互匹配的请求和响应所属的操作的页面形式,填充至与其相互匹配 的响应所属的操作的DOM树中的数据填充节点可以包括:
[0081] 将X个会话的有序的操作列表中相互匹配的请求和响应中的每个请求中包含的 提交数据,按照相互匹配的请求和响应所属的操作的页面形式对应的填充策略,填充至与 其相互匹配的响应所属的操作的DOM树中的数据填充节点。
[0082] 具体的,根据操作的页面形式的不同,填充策略也可以不同。
[0083] 示例性的,填充策略可以包括:名称匹配,沙盒技术等等。需要说明的是,本发明对 于填充策略的具体内容不进行限定。
[0084] 示例性的,若操作的页面形式为From表单或FrameSet,对应的填充策略可以为名 称匹配;若操作的页面形式为异步请求响应,对应的填充策略可以为沙盒技术;
[0085] 还需要说明的是,操作的页面形式与填充策略的对应关系,可以根据实际需求设 定,本发明对此也不进行具体限定。
[0086] S105、分别将X个会话中填充后的DOM树进行可视化保存,作为所述流量中每个会 话的还原文件。
[0087] 其中,DOM树为流量还原过程中的过程量,对其进行可视化保存,方便管理员查看, 并从中获取需要的内容。
[0088] 将一个会话中的填充后的DOM树进行一次可视化保存,作为该会话的还原文件。
[0089] 具体的,所述分别将X个会话中填充后的DOM树进行可视化保存,可以通过下述两 种方案中的任意一种实现:
[0090] 第一种方案:
[0091] 分别将X个会话中填充后的DOM树,加载各自的层叠样式及图片,可视化保存为比 特流。
[0092] 第二种方案:
[0093] 分别将X个会话中填充后的DOM树,加载各自的层叠样式及图片,可视化保存为比 特流,再将每个比特流生成图片化的快照。
[0094] 可选的,在上述两种方案进行可视化保存的过程中,可能出现超出浏览器可视窗 口的部分像素情况,此时,所述方法还可以包括:
[0095] 对整个像素范围分块,按照分块顺序从Browser中获取指定大小的区块像素;
[0096] 在内存中的图像画布中拼接区块像素,得到完整的图片;
[0097] 将该画布写成比特流或者保存成指定格式的图片。
[0098] 需要说明的是,对DOM树进行可视化保存为比特流或者快照,可以根据实际需求 确定方案,本发明对此不进行具体限定。
[0099] 进一步可选的,所述请求中还可以包括用户标识;其中,用户的标识是可以唯一记 录操作人的信息,可以包括但不限于下述信息中的一项或多项:登录用户名、源IP等。 [0100] 可选的,为了提高本发明实施例提供的流量还原方法的还原度,在S102之后,所 述方法还可
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1