美文网首页
Http请求中的Transfer-Encoding: chunk

Http请求中的Transfer-Encoding: chunk

作者: 七十二年蝉 | 来源:发表于2019-04-23 15:22 被阅读0次

    最近使用Socket实现一个抓包工具,在对Http协议进行解析时,遇到了获取完整Http报文的问题,总结如下:

    1. 短连接:如果没有启用keepalive,可以通过判断连接状态界定报文实体的边界;
    2. 请求头中有Content-length,根据该字段值,得到请求实体的长度;
    3. 请求头中有Transfer-Encoding: chunked,代表该请求是分块的,也是本文介绍的重点:
      3.1 分块编码仅在http 1.1协议中有效;
      3.2 在每段数据块前,使用 “[数据块长度]\r\n” 来标记接下来数据块的长度;
      3.3 最后一个数据块的长度必须为0,也可以理解为http报文以0\r\n\r\n来结尾。

    通过以上三点描述,我们既可以安全完整的从TCP报文中解析出http报文

    相关文章

      网友评论

          本文标题:Http请求中的Transfer-Encoding: chunk

          本文链接:https://www.haomeiwen.com/subject/bybvgqtx.html