1

例如,在REST API的上下文中,Allow 标头响应字段可用于获取: 指定资源的有效操作

例子:

Allow: GET, HEAD

是否还有一个众所周知的字段来获取接受的Accept 标头列表?例如:

Accept: application/vnd.company.api.com.foo+json;v=42, application/vnd.company.api.com.foo+xml;v=42
4

1 回答 1

1

由客户端告诉服务它可以接受什么,因为如果它不能接受响应(因为它不知道如何处理返回的媒体类型),客户端可以做的事情并不多。

如果服务器不能创建符合要求的资源表示,它可以做以下两件事之一:

  • 发送 406 Not Acceptable
  • 发送不符合 Accept 标头 (HTTP 1.1) 的响应

如果服务器根据RFC 2616发送 406,只要它不是 HEAD 请求,“响应应该包括一个实体,其中包含用户或用户代理可以从中获取的可用实体特征和位置列表选择一个最合适的。实体格式由 Content-Type 标头字段中给出的媒体类型指定。

用简单的英语来说,这意味着响应应该附有指向它可以提供的内容的链接。可以通过将配置文件属性附加到包含的链接来传达媒体类型(尽管这因媒体类型而异)。

了解服务器提供何种媒体类型的一种方法是通过根 URI 提供的链接菜单(使用众所周知的媒体类型)来发现它们。例如,您的请求/可以指定一个接受标头text/html并接收以下响应:

<html>
  <head>
    <link rel="foo" type="application/vnd.company.api.com.foo+json;v=42" href="http://v42.api.com/foos/3713678123" />
    <link rel="foo" type="application/vnd.company.api.com.foo+json;v=43" href="http://v43.api.com/foos/3713678123" />
  </head>
</html>
于 2013-10-28T21:34:24.897 回答