HTTP包体的传输方式:定长包体和不定长包体

Posted 笔绘丹心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP包体的传输方式:定长包体和不定长包体相关的知识,希望对你有一定的参考价值。

请求或者响应都可以携带包体:message-body

以下消息不能含有包体
HEAD 方法请求对应的响应
1xx,204,304对应的响应
CONNECT方法对应的2xx响应

在发送端定长

Content-Length=1*DIGIT

用十进制表示包体中的字节个数,且必须与实际传输的包体长度一致

优点:接收端处理更简单

在发送端不定长

Transfer-Encoding 指明Chunk的传输方式;含Transfer-Encoding头部后,Content-Length会被忽视

优点:

  • 基于长链接持续推送动态内容
  • 压缩体积较大的包体,不必完全压缩完再发送,可以边发送边压缩
  • 传输必须在包体传输完才能计算出Trailer 头部

Transfer-Encoding 可传递的值 chunked,compress,deflate,gzip,transfer-extension



以上是关于HTTP包体的传输方式:定长包体和不定长包体的主要内容,如果未能解决你的问题,请参考以下文章

Dubbo协议

nginx丢弃http包体处理

oracle 调用包体的函数并返回return值

包和包体简介

java socket编程解决粘包和丢包问题

Tutorial Master 2丨性能优化之:Module Pooling模块池减小包体的方法