Chunked 数据块的重组
来源:互联网 发布:java统计页面浏览次数 编辑:程序博客网 时间:2024/06/10 06:36
Chunked数据块的重组
本文主要针对网页数据由N个chunked数据块组成的情况进行分析。
一、chunked块的组成结构
每一个Chunked数据块包含两部分,两部分用字符串”/r/n”区分开,主要内容是:
1. 数据块的长度(16进制)
2. 数据部分
所以单独的chunked块结构如:A0/r/ndata…./r/n
A0为16进制的数据长度;data…为数据部分,长度是A0;
多个chunked的组成形式如:
A0/r/n[dataof(chunked)]/r/nB0/r/n[dataof(chunked)]/r/nA1/r/n[dataof(chunked)]/r/n0/r/n/r/n
在整个chunked的结束部分由字符“0/r/n/r/n”来表示。
二、chunked的解码代码
Chunked的解析工做主要是将chunked块中的数据部分根据给出的长度提取出来。
代码如下:
二、chunked网络包数据信息的提取方式
chunked块中关键字的获取,总的来说可以用两种方法:
1. 每来一个数据包,都提取出gzip压缩包,然后解压
2. 等所有数据包重组完成,一次性提取gzip压缩包解压
当然两种方式都有存在优点与缺点:
使用第一种方法:
优点:如果包中包含关键字,可以很快检测,后面的包就不需要接收了。
缺点:如果检测的网页中不包含关键字,那么这个工作将一直持续下去,知道整个网页都发送结束。因为解压的时候需要依赖前面所有的包,
假设有100个数据包,那么第一个包就要解压100次,第二个99次,依次递减。
总共要解压的次数是:(100+1)*100/2
使用第二种方法:
优点:不用每次数据包过来都重组、解析chunked、解压。操作次数减少很多
缺点:每次都要等数据全部收集完成重组才能解包。如果包中包含关键字信息,可能在前10个包中就有,这时候依然要等待所有的包都发送过来才能提取chunked和解压。
用统计方法决定:
根据被检测关键字与库中的比例
- Chunked 数据块的重组
- RLC数据块的拆分和重组
- RLC数据块的拆分和重组2
- 使用块编码(chunked)的好处
- PHP解码chunked编码的数据
- 关于json数据的重组
- 基于rsync同步算法的文件同步系统JAVA实现(五)—— 重组数据块
- nodemcu响应chunked数据
- IP数据报的分片与重组
- IP数据报的分片与重组
- IPv4数据报的分段与重组
- 关于Transfer-Encoding: chunked类型的数据的解析
- ecshop重组购物车数据,把goods_id相同的数据重组
- http的chunked方式
- C++解析http-chunked数据
- UDP分包重组算法和 基于RTP的H264视频数据分包重组
- 数据报片重组
- echarts数据重组
- 急招C++开发team leader ,至少3年C++开发,有日语基础
- The Sleuth Kit
- 拷贝构造函数与赋值函数
- 团购网集合
- Web Service概述
- Chunked 数据块的重组
- 世界最大卖场:马云淘宝三小时卖205辆奔驰
- 串口编程常用的API
- 让页面背景图片不平铺重复的方法
- 漂浮广告---能在桌面上漂
- 第四周总结
- yingxuexuan写画图规范(protel99se)
- css_制作圆边表格
- gdb调试器用法(高级级用法,较详细)