Nginx 开启 HTTP/2.0 后 Content-Length 和 Transfer-Encoding 头字段处理
在 Nginx 开启 HTTP/2.0 协议后,对于后端返回的头字段 Content-Length 和 Transfer-Encoding 会有以下处理:
-
Content-Length 字段:Nginx 会忽略 Content-Length 字段,因为在 HTTP/2.0 中,不再使用 Content-Length 来确定消息体的长度。相反,消息体的长度由帧的长度信息来确定。
-
Transfer-Encoding 字段:Nginx 会删除 Transfer-Encoding 字段,因为在 HTTP/2.0 中,不再使用分块传输编码(chunked transfer encoding)进行消息的传输。相反,消息被分割成多个帧进行传输。
当 Nginx 向前端返回响应时,它会根据 HTTP/2.0 的规范来构建帧,而不是使用 Content-Length 或 Transfer-Encoding 字段。因此,Nginx 不会将这些响应头传递给客户端。相反,它会使用 HTTP/2.0 的帧格式来传输数据,并由客户端解析帧来获取消息体的长度。这样可以提高性能和效率,并避免传输冗余的头信息。
原文地址: https://www.cveoy.top/t/topic/pCE3 著作权归作者所有。请勿转载和采集!