请问什么样的网络资源,响应的头部才有content-length?

拿一个网页,和一张图片举例

网页链接没有content-length,而图片资源是有content-length,那么这样理解对吗:

  1. 是不是所有静态资源,如图片、文档、音视频文件都有content-length
  2. 而所有的脚本,超文本链接是没有content-length
阅读 1.9k
1 个回答

http头部的content-lengthcontent-type无关,但与chunked encoding有关,如果你的nginx服务器开启了动态gzip压缩功能,则默认开启了chunked encoding,这时发送的response里就没有content-length了,因为这个尺寸是由nginx动态计算的,无法预知其大小,如果需要的话,你必须开启nginx的静态压缩功能。

该模块与ngx_http_gzip_module模块的不同之处主要在于,该模块使用的是静态压缩,在HTTP响应头部包含Content-Length头域来指明报文体的长度,用于服务器可确定响应数据长度的情况;而后者默认使用Chunked编码的动态压缩,其主要适用于服务器无法确定响应数据长度的情况,比如大文件下载的情形,这时需要实时生成数据长度。

参见nginx的gzip功能

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏