1,创建一个buffer list, 这个buffer list的总体大小不超过4M,
2,抓包: 网络包都大于64byte; 如果小于64,当做坏包处理,
3,如果当前的list 是空,并且整个包长小于 140 (tcp + http head ... 知道出现content length)
如果tcp包的,tcp.flags==0x18 :
并且pkt_data+34 是“HTTP” , 或者进一步判断是 HTTP/1.1 200 OK
如果是,说明这个包是http的response的开头。
寻找当前的content length ,并求出content length的大小。
如果没有找到content length,也没有找到 Transfer-Encoding : 那这种包,我还没有见过。
如果找到content length ,那判断pkt_data 的剩余长度 + 4 (\r\n\r\n),是不是 恰好是content length,
如果是-恰好说明是: 这个包已经是一个完整的http 包了,没有分包,即没有出现