如何确定HTTP响应中的Content-Type

时间:2013-08-12 06:10:57

标签: apache http web webserver

我正在构建一个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的响应的解剖。对此有任何见解将是最有帮助的。感谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

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