1

我正在构建一个 Web 服务器作为练习。当我收到一个原始请求时,它会被解析成一个简单的语法树,并通过评估这棵树来构建响应。我的问题是:When sending an HTTP Response, does the Content-Type field get set by taking the file extension of the requested resource and looking it up in a dictionary of MIME-types?一个很好的例子是对 favicon.ico 的响应如何构建的剖析。对此的任何见解将是最有帮助的。谢谢。

4

1 回答 1

3

默认情况下,Web 服务器查看文件扩展名并选择它应该将文件解释为哪种内容类型。但是,服务器端脚本可以发送自定义标头(例如header()PHP 的函数)来覆盖设置。例如,如果您image/png使用以下代码将 Content Type as 发送到 Web 服务器,则 JPEG 可以被解释为 PNG:

header('Content-Type: image/png');

对于非文件请求,Web 服务器直接查看自定义标头。

Web 服务器映射具有 MIME 类型的扩展。当您标记时,Apache 使用AddType 指令来识别文件的 MIME 类型,而 IIS 和其他 Web 服务器具有类似的设置。

于 2013-08-12T06:12:23.590 回答