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

Ale*_*lls 8 mozilla node.js express

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

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

在此输入图像描述

Pet*_*ons 10

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

跟进你的意见

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

mimeDb['application/javascript']
{ source: 'iana',
  charset: 'UTF-8',
  compressible: true,
  extensions: [ 'js' ] }
Run Code Online (Sandbox Code Playgroud)

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