用了这么久HTTP, 你是否了解Content-Length?
摘要: 理解HTTP协议... 原文: 用了这么久HTTP, 你是否了解Content-Length和Transfer-Encoding ? 作者: 朴瑞卿的博客 由Content-Length导致的问题引发的一系列思考: 前段时间开发API网关, 使用postman调试时出现了超时的情况, 经排查确定是请求数据被处理后 Content-Length 与实际不一致导致的问题, 故有此文. Content-Length , HTTP消息长度, 用 十进制数字 表示的 八位字节的数目 . 一般情况下, 很多工作都被框架完成, 我们很少去关注这部分内容, 但少数情况下发生了 Content-Length 与实际消息长度不一致, 程序可能会发生比较奇怪的异常, 如: 无响应直到超时. 请求被截断, 而且下一个请求解析出现错乱. Content-Length 是HTTP消息长度, 用 十进制数字 表示的 八位字节的数目 , 是Headers中常见的一个字段. Content-Length 应该是精确的, 否则就会导致异常 (特别地, HTTP1.0中这个字段可有可无). Content-Length 首部指示出报文中实体主体的字节大小. 这个大小是包含了所有内容编码的, 比如, 对文本文件进行了 gzip 压缩的话, Content-Length 首部指的就是压缩后的大小而不是原始大小.