Headers、Content-Types 浏览器、CLI、应用程序的默认值
Headers, Content-Types defaults for browsers, CLI, apps
如果 header 自己的 Content-Type 没有发送,则每个浏览器都默认定义了 "own"。例如,Firefox returns text/html; charset=utf-8
.
如果我在空白页面上检查 Firefox 并重新加载一些 PHP 文件,它将 return text/html; charset=utf-8
content-type.
这是从 Firefox 定义的?还是 APACHE 服务器?
我对 DEFAULT `Content-Type' 感到困惑,或者我在哪里可以找到所有默认内容类型的列表 headers 如果不是由客户端定义或发送 HTTP header Content-Type.
例如,在哪个应用程序上使用 RFC 822 请求 header,如 text/plain; charset=us-ascii
。
我能做的是首先从浏览器获取可用的 headers(例如:text/plain;text/html
),然后在 Content-Type 中设置为 text/plain
如果存在。
如果没有发送 header 我想知道哪个 content-type 默认应该是 browser/cli。所有用户代理的 Content-Type 的所有默认列表可能吗?
真正的问题:如何使用 PHP 从浏览器默认获取 Content-Type
但不接收 NULL
。在浏览器上,如果你 refresh
你会看到 Content-Type
header 但在 PHP 你不会收到。
我的解决方法是这样的:
检查浏览器是否存在HTTP_ACCEPT,如果存在例如:
text/html
制作 return Content-Type: text/html
如果不存在检查
*/*
制作 returns Content-Type:
text/plain; us-ascii
This is by RFC 822:
http://mattryall.net/blog/2008/03/default-content-type
然后,如果未定义则使用 text/plain
.
如果 HTTP_ACCEPT 不存在则使用 RFC 822 声明为:
text/plain; us-ascii
This is accept for CLI and should be ASCII defined by RFC 822.
较旧的浏览器(例如 SAFARI)会在 URL(例如 .htm
中检查扩展名,然后应该 text/html
以其他方式 returns text/plain
。较新的浏览器默认为 text/html
.
Firefox 2 returns application/*
如果没有定义所以在某些情况下你可以使用 USER_AGENT
检查然后设置默认声明。这是旧浏览器,您应该避免使用它。
我写了这个脚本并且运行良好。 Header如果是脚本强制发送,如果是needle,应该发送。
如果你有什么建议或者我说错了请指正。
如果 header 自己的 Content-Type 没有发送,则每个浏览器都默认定义了 "own"。例如,Firefox returns text/html; charset=utf-8
.
如果我在空白页面上检查 Firefox 并重新加载一些 PHP 文件,它将 return text/html; charset=utf-8
content-type.
这是从 Firefox 定义的?还是 APACHE 服务器?
我对 DEFAULT `Content-Type' 感到困惑,或者我在哪里可以找到所有默认内容类型的列表 headers 如果不是由客户端定义或发送 HTTP header Content-Type.
例如,在哪个应用程序上使用 RFC 822 请求 header,如 text/plain; charset=us-ascii
。
我能做的是首先从浏览器获取可用的 headers(例如:
text/plain;text/html
),然后在 Content-Type 中设置为text/plain
如果存在。如果没有发送 header 我想知道哪个 content-type 默认应该是 browser/cli。所有用户代理的 Content-Type 的所有默认列表可能吗?
真正的问题:如何使用 PHP 从浏览器默认获取 Content-Type
但不接收 NULL
。在浏览器上,如果你 refresh
你会看到 Content-Type
header 但在 PHP 你不会收到。
我的解决方法是这样的:
检查浏览器是否存在HTTP_ACCEPT,如果存在例如:
text/html
制作 return Content-Type:
text/html
如果不存在检查
*/*
制作 returns Content-Type:
text/plain; us-ascii
This is by RFC 822: http://mattryall.net/blog/2008/03/default-content-type
然后,如果未定义则使用
text/plain
.如果 HTTP_ACCEPT 不存在则使用 RFC 822 声明为:
text/plain; us-ascii
This is accept for CLI and should be ASCII defined by RFC 822.
较旧的浏览器(例如 SAFARI)会在 URL(例如
.htm
中检查扩展名,然后应该text/html
以其他方式 returnstext/plain
。较新的浏览器默认为text/html
.Firefox 2 returns
application/*
如果没有定义所以在某些情况下你可以使用USER_AGENT
检查然后设置默认声明。这是旧浏览器,您应该避免使用它。我写了这个脚本并且运行良好。 Header如果是脚本强制发送,如果是needle,应该发送。
如果你有什么建议或者我说错了请指正。