每个浏览器默认都定义了"own",如果不是由标头自己的内容类型发送的。例如,Firefox 返回 text/html; charset=utf-8
。
如果我在空白页面上检查Firefox并重新加载一些PHP文件,它将返回text/html; charset=utf-8
内容类型。
这是从火狐定义的?还是APACHE服务器?
我对默认的"内容类型"感到困惑,或者如果客户端未定义或发送 HTTP 标头内容类型,我可以在哪里找到所有默认内容类型标头的列表。
例如,在哪个应用程序上使用 RFC 822 请求标头,例如 text/plain; charset=us-ascii
.
-
我能做的是首先从浏览器中获取可用的标头(例如:
text/plain;text/html
),然后在内容类型中设置text/plain
是否存在。 -
如果没有发送的标头,我想知道默认情况下应该使用哪种内容类型浏览器/cli。所有用户代理的内容类型的所有默认列表可能吗?
真正的问题:默认情况下如何使用PHP从浏览器中获取Content-Type
,但不接收NULL
。在浏览器上,如果您refresh
,您将看到Content-Type
标题,但在PHP上您不会收到。
我的解决方案是这样的:
-
从浏览器中检查HTTP_ACCEPT是否存在,如果存在,例如:
text/html
返回内容类型:
text/html
如果不存在,请检查
*/*
进行退货 内容类型:
text/plain; us-ascii
这是由RFC 822: http://mattryall.net/blog/2008/03/default-content-type
然后,如果未定义,则使用
text/plain
。 -
如果不存在HTTP_ACCEPT则使用 RFC 822 声明为:
text/plain; us-ascii
这是 CLI 接受的,应该是 RFC 822 定义的 ASCII。
-
较旧的浏览器(如 SAFARI)检查 URL 中的扩展名,例如
.htm
然后应该以其他方式text/html
返回text/plain
。默认情况下,较新的浏览器是text/html
。 -
Firefox 2 返回
application/*
if 未定义,因此在某些情况下您可以使用USER_AGENT
进行检查,然后通过默认声明进行设置。这是旧浏览器,您应该避免这种情况。 -
我写了这个脚本并且工作正常。如果标头是由脚本强制的,并且如果是针,则应发送标头。
如果您有一些建议,或者如果我弄错了一些建议,请纠正我。