http - "application/*+json"是 HTTP 中的有效 Accept header 吗

标签 http mime-types

java spring 框架的 http 客户端似乎默认发送这个 Accept 头:

Accept: text/plain, application/json, application/*+json, */*

我对“application/*+json”部分很好奇。我相信这样做的目的是匹配任何以 application/ 开头并以 +json 结尾的 mime 类型 - 例如。 application/vnd.api+json.

但是看着 RFC 7231 section 5.3.2它说:

media-range    = ( "*/*"
                      / ( type "/" "*" )
                      / ( type "/" subtype )
                      ) *( OWS ";" OWS parameter )

这似乎专门只允许使用 * 而不是子类型,而不是作为它的一部分 - 建议“application/*+json”应该只匹配名称中实际作为 * 的 mime 类型。

一般 MIME 类型的“+”语法在 https://www.rfc-editor.org/rfc/rfc6839 中定义。 - 然而,其中似乎没有任何内容允许将其应用于 HTTP RFC 定义的通配符。

是否有其他一些 RFC 扩展了定义,或者 spring 发送了错误的 Accept: header ?

最佳答案

我认为答案是否定的。 HTTP 的允许值在 https://www.greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.3.2 中定义,并且“*+json”不是一个有效的子类型(即使是,它也只会匹配子类型“*+json”,而不是所有以“+json”结尾的子类型)。

关于http - "application/*+json"是 HTTP 中的有效 Accept header 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48277752/

相关文章:

http - 将 Julia `download` 的结果传递给内存而不是文件?

c# - ASP.NET MVC 上传和下载,使用 IIS 控制 MIME 类型?

eclipse - 停止Eclipse/Subversive设置svn :mime-type to text/plain on initial commit

node.js - 使用 NodeJS 中的 Microsoft Bot Framework 将 Excel 内容作为附件发送

java - 如何内联 MS Office 文档而不是作为附件提供服务?

python - 如何在Python中找到mime类型

php - curl 发送 Content-length header 的问题

file - Go http重用似乎在上传文件中不起作用

java - http 在页面加载完成之前获取 html

http - 浏览器编码 HTTP 请求