Http 内容协商中的规范类型与请求类型

Http 内容协商中的规范类型与请求类型,http,content-type,mime-types,content-negotiation,Http,Content Type,Mime Types,Content Negotiation,因此,我想知道,对于返回的数据可能具有多个有效MIME类型的请求,应该如何处理HTTP内容协商 例如,如果假设我有一些具有以下可能MIME类型的任意数据: text/data,application/x-data,application/data+xml 考虑到可能存在多种MIME类型,从我的web应用程序请求此表单数据的客户端应用程序应该合理地期望接收此类数据,而不管它们在请求接受头中使用哪种MIME类型。但对于哪种类型是该数据的规范类型,通常会有一些共识,即一种是IETF中正确注册的MIM

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

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

text/data,application/x-data,application/data+xml
考虑到可能存在多种MIME类型,从我的web应用程序请求此表单数据的客户端应用程序应该合理地期望接收此类数据,而不管它们在请求接受头中使用哪种MIME类型。但对于哪种类型是该数据的规范类型,通常会有一些共识,即一种是IETF中正确注册的MIME类型,而另一种是预注册或预标准化类型

所以我的问题是,我应该在回复这些请求时将返回的内容类型头设置为规范类型还是请求的类型?哪种练习更好

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


这有点主观,所以如果你认为它应该是社区wiki而不是一个问题,让我知道,我会考虑改变它

< p>当一个用户代理客户端应用程序请求一个资源时,他们会为这个单一请求的资源发出几个不同的MIME类型。发生这种情况是出于兼容性原因,以便让web服务器知道用户代理能够接受什么。服务器的任务是确定资源的mime类型


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

在我的例子中,MIME类型都是相同数据格式的有效类型,返回的数据将是相同的,无论类型如何,因此生成适当的响应不是问题,而是我应该在内容类型标题中返回哪种MIME类型。在这种情况下,请选择您认为最受广泛支持且最受欢迎的MIME类型适当的