我正在构建一个 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 的响应如何构建的剖析。对此的任何见解将是最有帮助的。谢谢。
问问题
3090 次
1 回答
3
默认情况下,Web 服务器查看文件扩展名并选择它应该将文件解释为哪种内容类型。但是,服务器端脚本可以发送自定义标头(例如header()
PHP 的函数)来覆盖设置。例如,如果您image/png
使用以下代码将 Content Type as 发送到 Web 服务器,则 JPEG 可以被解释为 PNG:
header('Content-Type: image/png');
对于非文件请求,Web 服务器直接查看自定义标头。
Web 服务器映射具有 MIME 类型的扩展。当您标记apache时,Apache 使用AddType 指令来识别文件的 MIME 类型,而 IIS 和其他 Web 服务器具有类似的设置。
于 2013-08-12T06:12:23.590 回答