Mozilla Firexfox网络选项卡中的已传输列和大小列之间的差异

时间:2015-08-14 01:21:47

标签: node.js express mozilla

我正在尝试确定Transferred列和Size列之间的区别。是否与压缩文件和未压缩文件之间的区别有关?

我没有在我的服务器上压缩我的文件(Node.js Express服务器)所以我不知道为什么文件大小会有差异。

enter image description here

1 个答案:

答案 0 :(得分:8)

您的快速应用程序已启用gzip压缩,如Content-Encoding: gzip标头所示,因此响应正文在通过网络发送之前使用gzip进行压缩。传输的大小在压缩时,大小在浏览器中解压缩。 Express正在动态执行此操作,因此即使您的文件未在磁盘上压缩,它也会在通过网络发送之前进行压缩。

跟进您的意见

您尚未发布任何代码,但您的快速应用程序可能正在使用compression中间件(可能来自您开始使用的样板)。如果是,那将使用mime-db来确定响应内容类型是否可压缩。在mime-db中查找application/javascript显示它被标记为可压缩:

mimeDb['application/javascript']
{ source: 'iana',
  charset: 'UTF-8',
  compressible: true,
  extensions: [ 'js' ] }

请注意,此处的任何位置都不涉及.gz文件扩展名。磁盘上没有.gz文件,正在对内存中的.js文件进行压缩。另请注意,仅设置Content-Encoding: gzip标头而不将实体编码为gzip并不是您想要做的事情。它会导致客户端的编码错误。