Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 是否有一种MIME类型告诉浏览器;don';t尝试检测类型,仅显示为文本";?_Http_Mime Types - Fatal编程技术网

Http 是否有一种MIME类型告诉浏览器;don';t尝试检测类型,仅显示为文本";?

Http 是否有一种MIME类型告诉浏览器;don';t尝试检测类型,仅显示为文本";?,http,mime-types,Http,Mime Types,在测试一些HTTP服务器代码时,我注意到一些奇怪的情况:如果返回内容类型:text/plain,浏览器将不会将内容呈现为纯文本。相反,他们似乎认为服务器一定是配置错误,并试图检测内容类型 例如,如果返回PNG文件的内容,但内容类型为text/plain: FireFox和IE9都会查看URL上的扩展名。如果以.png结尾,则会将其显示为图像。如果不是(例如,如果我从以.xyz结尾的URL返回相同的内容),它们会提示我保存文件 Chrome和Opera都会查看文件的内容,检测出它是PNG,并将其

在测试一些HTTP服务器代码时,我注意到一些奇怪的情况:如果返回
内容类型:text/plain
,浏览器将不会将内容呈现为纯文本。相反,他们似乎认为服务器一定是配置错误,并试图检测内容类型

例如,如果返回PNG文件的内容,但内容类型为text/plain:

  • FireFox和IE9都会查看URL上的扩展名。如果以
    .png
    结尾,则会将其显示为图像。如果不是(例如,如果我从以
    .xyz
    结尾的URL返回相同的内容),它们会提示我保存文件
  • Chrome和Opera都会查看文件的内容,检测出它是PNG,并将其显示为图像
诚然,在产品中以
text/plain
的形式返回PNG是没有意义的;但是如果我在测试服务器是否返回正确的
内容类型
,浏览器的二次猜测行为就会妨碍我。加上它有点傻,这让我好奇是否有办法解决它

有没有一种方法--使用不同的
内容类型
,或者一个额外的HTTP头,或者别的什么--我可以告诉浏览器,“将它显示为文本,不,我真的知道我在做什么”

您实际返回的是什么样的数据?您确定它依赖于URL,还是服务器忽略了您更改内容类型的请求?您是否检查了浏览器看到的标题?如果您真的以“文本”的形式发送png,那么我认为浏览器通过检测实际的数据类型是正确的,因为您可能会在其文本呈现例程中导致异常。

请参阅上下文

在某些UAs中,添加为自定义参数,例如

文本/纯文本;imeanit=是

也许会有帮助

一些IE版本支持

X-Content-Type-Options:nosniff


请参见

编辑以解释为什么我确信它依赖于URL。实际内容是PNG文件中的原始字节。是的,我已经检查了标题(使用
curl--head
)。我不能权威地告诉您,但我怀疑答案是您不能要求浏览器执行任何操作。此外,如果您确实找到了针对特定浏览器的解决方案,那么它可能不会适用于所有浏览器。
X-Content-Type-Options:nosniff
适用于Chrome(v14)和IE(v9)<代码>内容类型:文本/普通;imeanit=yes适用于FireFox(v7)。这种组合除了Opera之外什么都有,但由于似乎没有就遵循哪一个规范或如何遵循它达成一致意见,所以看起来这与我将要得到的答案非常接近。谢谢