每个浏览器都定义了"拥有"默认情况下,如果不是由标头自己的Content-Type发送。例如,Firefox返回text/html; charset=utf-8
。
如果我在空白页面上检查Firefox并重新加载一些PHP文件,它将返回text/html; charset=utf-8
内容类型。
这是从Firefox定义的吗?还是APACHE服务器?
我和DEFAULT混淆了`Content-Type'或者,如果未由客户端定义或发送HTTP标头Content-Type,我可以找到所有默认内容类型标头的列表。
例如,使用哪个应用程序请求RFC 822的标头,如text/plain; charset=us-ascii
。
我可以做的是首先从浏览器获取可用标头(例如:text/plain;text/html
),然后在text/plain
的内容类型中设置(如果存在)。
如果没有发送标题,我想知道默认情况下浏览器/ cli应该是哪种内容类型。所有用户代理的Content-Type的所有默认列表都可能?
真实问题:如何使用PHP从浏览器默认获取Content-Type
但不接收NULL
。在浏览器上如果你refresh
,你会看到Content-Type
标题,但在PHP上你将不会收到。
答案 0 :(得分:0)
我的解决方案就是这样:
检查浏览器是否存在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)会检查.htm
等网址中的扩展名,然后以text/html
以其他方式返回text/plain
。默认情况下,较新的浏览器为text/html
。
如果未定义Firefox 2,则返回application/*
,因此在某些情况下,您可以使用USER_AGENT
进行检查,然后按默认设置进行设置。这是旧浏览器,你应该避免这种情况。
我写了这个脚本并且运行正常。如果是强制脚本并且是针脚,则应发送标题。
如果你有一些建议,或者我误解了一些,请纠正我。