java spring框架的http客户端似乎默认发送此Accept标头:
Accept: text/plain, application/json, application/*+json, */*
我很好奇"应用程序/ * + 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://tools.ietf.org/html/rfc6839中定义 - 但是没有任何内容可以像HTTP RFC定义那样将其应用于通配符。
是否有其他一些扩展定义的RFC或者是Spring发送错误的Accept:header?
答案 0 :(得分:2)
我相信答案是“不”。 HTTP的允许值在https://www.greenbytes.de/tech/webdav/rfc7231.html#rfc.section.5.3.2中定义,而“* + json”不是有效的子类型(即使它是,它只匹配子类型“* + json”,而不是所有以“...”结尾的子类型) + JSON“)。