0

所以我想知道对于返回的数据可能具有多个有效 MIME 类型的请求,应该如何处理 HTTP 内容协商。

例如,如果说我有一些具有以下可能 MIME 类型的任意数据:

text/data,application/x-data,application/data+xml

鉴于可能有多种 MIME 类型,客户端应用程序从我的 Web 应用程序请求这种形式的数据应该合理地期望接收到这种类型的数据,而不管他们在请求 Accept 标头中使用哪种 MIME 类型。但是,对于哪种类型是该数据的规范类型,通常会有一些共识(即,一种是在 IETF 适当注册的 MIME 类型,而另一种是预注册或预标准化类型)。

所以我的问题是我应该在回复这些请求时将返回的 Content-Type 标头设置为规范类型还是请求的类型?哪个是更好的做法?

我应该始终返回规范类型,还是应该回显请求的类型以确保与尚未更新的较旧/编写不佳的应用程序兼容?目前我正在返回规范类型,因为这似乎是一种更好的方法,并且大多数人正在使用我正在使用的数据类型做些什么。

这有点主观,所以如果您认为它应该是社区 wiki 而不是问题,请告诉我,我会考虑更改它

4

1 回答 1

0

当用户代理(客户端应用程序)请求资源时,他们将为该单个请求的资源发出几种不同的 mime 类型。出于兼容性原因,这是为了让 Web 服务器知道用户代理能够接受什么。服务器的工作是确定资源的实际 MIME 类型。

在服务器端做出一些决定以找到适当的响应并没有什么坏处。例如,如果您希望将所有 HTML 页面作为 XML 提供,但主要用户代理不支持必要的 mime 类型,您可以使用辅助技术(如 PHP 或 ASP)提供动态响应。在这个例子中,最好的办法是将正确的 mime-type 设置为规范,如果用户代理不支持规范,则为他们提供他们将支持的其他东西,否则每个人都会得到规范。

于 2009-08-24T07:52:58.740 回答