HTTP Accept标头中的"+"是什么意思?

gob*_*was 1 http media-type http-accept-header

我怎么能理解这个记录:

Accept: application/vnd.my.api+json
Run Code Online (Sandbox Code Playgroud)

我的意思是,这个"+"符号是否是标准化的(无论如何,我没有在规范中找到它),或者它只是一个惯例?

谢谢.

wer*_*ero 7

Accept标头指定可接受的媒体类型列表.媒体类型的"+ xxx"部分称为后缀.它是媒体类型定义的增强,有助于指定该媒体类型的底层结构.

RFC 6838,"4.2.8.结构化语法名称后缀"定义:

MIME [RFC3023]中的XML定义了对
媒体类型定义的第一次这样的扩充,以另外指定该
媒体类型的底层结构.报价:

  This document also standardizes a convention (using the suffix
  '+xml') for naming media types ... when those media types
  represent XML MIME (Multipurpose Internet Mail Extensions)
  entities.
Run Code Online (Sandbox Code Playgroud)

也就是说,它指定要附加到基本子类型名称的后缀(在这种情况下,"+ xml").

自从这篇文章发表以来,出现了将这种后缀约定用于其他众所周知的结构化语法的事实上的做法.特别是,媒体类型已经注册了后缀,例如"+ der","+ fastinfoset"和"+ json".此规范规范了这种做法,并为结构化类型名称后缀设置了一个注册表.

结构化类型名称后缀是否可注册的主要指导原则是,它可以通过现成的
描述进行描述,最好是在已建立的标准相关组织发布的文档中进行描述,并且
可以在标准参考文献中使用该参考文献. RFC的一部分.

使用命名结构化语法的媒体类型应该在注册时使用适当的注册"+后缀"作为结构化语法.出于同样的原因,媒体类型不能给出包含后缀的名称,因为它们实际上并没有使用结构化语法.考虑到与未来后缀定义冲突的可能性,不应使用"+后缀"构造尚未注册的结构化语法.