iis http压缩中静态和动态内容的相同类型的含义

iis http压缩中静态和动态内容的相同类型的含义,iis,http-compression,Iis,Http Compression,我正在查看IIS服务器中的ApplicationHost.config文件,以了解Http压缩的配置 我看到以下代码: <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <dynamicTyp

我正在查看IIS服务器中的ApplicationHost.config文件,以了解Http压缩的配置

我看到以下代码:

<httpCompression
      directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
   <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
   <dynamicTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/javascript" enabled="true" />
      <add mimeType="*/*" enabled="false" />
   </dynamicTypes>
   <staticTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/javascript" enabled="true" />
      <add mimeType="*/*" enabled="false" />
   </staticTypes>
</httpCompression>
摘自:

我的问题是:

在动态和静态类型中具有相同的mimeType意味着什么


例如,从我给出的代码中,我们可以在两个部分看到application/javascript。现在让我们假设同时启用了动态和静态内容压缩,当我们使用内容类型application/javascript提供Http响应时会发生什么?

IIS提供的内容是静态或动态的。在大多数情况下,如果您的内容由ASP.NET或Classic ASP等处理程序提供,则它属于动态存储桶,如果是直接从磁盘读取的文件,则属于静态存储桶。您给出的示例显然无关紧要,因为如果提供了application/javascript,并且两者都启用了它,那么它就可以进行压缩。更好的例子是,如果javascript是通过静态文件处理程序提供的,即javascript文件来自磁盘上的.js文件,那么它将更改静态文件处理程序,以查看是否启用了压缩,并可能对其进行压缩。如果javascript来自对script.axd或其他动态处理程序的调用,那么它将检查动态类型

所以你可能会问为什么有两部分?原因很简单,静态文件可以压缩然后缓存,因为这些文件是静态的。因此,我们可以更自由地使用静态缓存规则,因为可以为第一个请求文件的人压缩文件,然后缓存压缩后的副本。将来对同一文件的请求可以直接从缓存中提供。当然,系统会处理文件可能发生的任何修改,并更新缓存

对于动态内容,每个请求、每个用户等的文件都可能不同。因此,IIS不会尝试缓存压缩的副本,而只是每次压缩它


希望这些信息足够让你开始。旁注:静态压缩通常不会对第一个用户进行压缩,在压缩内容之前需要两个人的请求。

如果您链接了故障排除指南,那么任何读者都可以检查跟踪以确认您所描述的内容,