为什么IIS需要声明mime类型?

时间:2012-08-21 15:48:42

标签: iis-7 web mime-types mime iis-express

在我的一项任务中,我试图渲染SVG图像。我花了一些时间来看到一个链接,该链接指出,为了让IIS express呈现SVG图像,您必须在web.config文件中包含以下代码

<staticContent>
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>

有效。但我不明白为什么/如何?以前我认为服务器应该发送正确的Content-Type标头。但是我的svg代码是用Javascript编写的。我认为(可能是错误的)IIS只向客户端发送HTML文件,这些HTML文件在标题中链接了Javascript。那么,这是否意味着IIS也在扫描与HTML相关的所有javascript文件?这似乎有点难以置信。如果我的HTML主文件中有10个javascript文件,其中一个文件中包含SVG文件,那是否意味着IIS会扫描所有这些文件,然后发现SVG丢失了?这是它的工作原理吗?

由于

1 个答案:

答案 0 :(得分:7)

当您的浏览器访问网址时,它最初只会下载HTML。对于每个链接文件(Javascript,图像,CSS,SVG等),浏览器将向服务器发出单独的请求。正如您所指出的,除非识别出MIME类型,否则IIS不会提供这些文件。

要回答你的问题,不,这不是它的工作原理。 IIS不会扫描 HTML文件,它只是被动地响应来自客户端(浏览器)的请求。它是浏览器解析HTML和Javascript,并执行Javscript,根据需要额外往返服务器以获取链接资源。

修改

IIS的MIME类型的目的有两个:

  1. 限制对服务器资源的访问。如果客户端请求Web.config文件,那么IIS当然应该阻止该请求,因为该文件可能包含密码等敏感信息。
  2. 跟踪如何处理每种文件类型。例如,通常只应发送HTML文件,但ASPX文件首先需要由ASP.Net处理,然后发送。