zoukankan      html  css  js  c++  java
  • Http报文长度的计算

    客户机与服务器需要某种方式来标示一个报文在哪里结束和在下一个报文在哪里开始。
    一般使用Content-Length表示body报文体的长度,这样往后截取即可获得整个报文。对于普通的页面、图片皆可使用。
    报文头中的Transfer-Encoding: chunked ,表示报文体body是使用chunked分块方式拼接成的,不需要Content-Length指明长度。不需要提前计算总长度。
    uploading-image-355497.png
    chunked拼接报文

    Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。
    每个Chunk分为头部和正文两部分。头部内容指定下一段正文的字符总数(十六进制的数字)和数量单位(一般不写);正文部分就是指定长度的实际内容。两部分之间用回车换行(CR&LF)隔开。
    最后一个长度为0的Chunk中的内容是称为footer的内容,是一些附加的Header信息(通常可以直接忽略)。
    返回值报文

    解析:这里面只有一个有意义的chunke以及一个footer。第一个chunk,头部是3134这两个字节,表示的是1和4这两个ascii字符,被http协议解释为十六进制数14,也就是十进制的20。
    后面紧跟0d0a,再接着是20个字节的chunk正文(图中的011e~0131)。后面再接着0d0a。
    然后就是footer了,30表示ascii字符0,http解释为长度是0(也说明了这是最后一个chunk),后面紧跟0d0a,然后正文部分为空,再接0d 0a表示footer结束

  • 相关阅读:
    Python列表推导式,字典推导式,元组推导式
    python装饰器@,内嵌函数,闭包
    7-route命令
    6-mv命令
    5-ln链接命令
    4-linux建立用户用户组以及新用户的赋权
    3-gzip压缩解压命令
    2-date命令
    1-cp命令
    UIViewContentMode的各种效果
  • 原文地址:https://www.cnblogs.com/Desneo/p/7214023.html
Copyright © 2011-2022 走看看