Apache header Content-Type vendor specific type/json


Apache header Content-Type vendor specific type/json

我对特定于供应商的Content-Type很困惑。默认为

Content-Type: application/json

但是对于供应商特定的类型,我可以使用这个

Content-Type: application/vnd.anything.process-v1+json

我需要有任何特殊的功能做在PHP中使用,如果我要检查是否内容类型不是供应商特定的?

谢谢。

如果您通过HTTP POST从客户端接受内容,您可以使用$_SERVER['CONTENT_TYPE']检查内容类型。我建议您在content - type头中使用@ver属性,而不是嵌入到供应商的内容类型名称中。例子:

Content-Type: application/vnd.anything.process+json;ver=1

如果你通过HTTP POST向服务器发送内容,你需要指定一个accept报头来告诉客户端以供应商特定的内容类型返回数据。这样就可以了:

header('Accept: application/vnd.anything.process+json;ver=1');

Accept报头可能相当复杂。如果您不控制作为客户端发送到的服务器,则应该为Accept标头提供合理的默认值。如果你想让服务器在不理解供应商报头的情况下返回纯JSON,这样做会更友好:

header('Accept: application/vnd.anything.process+json;ver=1;q=0.9, application/json;q=0.1');

最允许的Accept头接受任何东西:

header('Accept: application/vnd.anything.process+json;ver=1;q=0.9, application/json;q=0.5, */*;q=0.1');

下面是Accept报头的实际RFC: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html