Http YAML媒体类型?
通过HTTP发送YAML结构化数据时,最合适的媒体类型(正式的MIME类型)是什么?为什么 我看不到任何已注册或已注册的文件 例如:Http YAML媒体类型?,http,mime,mime-types,yaml,Http,Mime,Mime Types,Yaml,通过HTTP发送YAML结构化数据时,最合适的媒体类型(正式的MIME类型)是什么?为什么 我看不到任何已注册或已注册的文件 例如: > GET /example.yaml < Content-Type: ???? < < --- # Favorite movies < - Casablanca < - North by Northwest < - Notorious >GET/example.yaml
> GET /example.yaml
< Content-Type: ????
<
< --- # Favorite movies
< - Casablanca
< - North by Northwest
< - Notorious
>GET/example.yaml
<内容类型:????
<
<----最喜欢的电影
<-卡萨布兰卡
<-西北偏北
<-臭名昭著
可能的选择:
- text/x-yaml
- 文本/yaml
- text/yml
- 应用程序/x-yaml
- 应用程序/x-yml
- 应用程序/yaml
- 应用程序/yml
- rubyonrails使用
application/x-yaml
和text/yaml
()的替代方案
我认为这只是一个惯例问题,据我所知,没有技术上的原因。我想说
text/x-yaml
:
文本
覆盖应用程序
,因为它是人类可读的
x-yaml
overyaml
,因为它尚未被接受到mime类型的注册列表中
编辑:来自RFC 3023(XML媒体类型):
顶级媒体类型“文本”具有
MIME实体的一些限制
[RFC2045]中对其进行了描述
和[RFC2046]。特别是
UTF-16系列、UCS-4和UTF-32是
不允许(超过
HTTP[RFC2616],它使用类似MIME的
机制)
有趣的。。。不太清楚这意味着什么,但值得思考。“x-”不鼓励媒体类型,请参阅。正确的做法是使用个人树、供应商树,或者实际尝试适当的媒体类型注册。 < P>虽然接受了另一个答案,但请参阅IANA邮件列表中的此线程,以审阅Ben Harris剑桥大学信息服务中心的媒体类型,于2015年7月代表YAML团队提议媒体类型:
text/vnd.yaml
使用(建议)不推荐使用的别名:
text/yaml
text/x-yaml
application/x-yaml
这仍然是建议/待定的(线程没有指出建议的状态),因此这个答案并不比其他答案更明确:-)根据它的
text/yaml
,即使它不是Chrome应用程序/yaml
上的官方版本,而text/yaml
将显示。它是人类可读的,但其目的是交流应用程序。。。XML在应用程序下,也在文本下。似乎您必须同时拥有text/x-yaml和application/x-yaml。。。值得一提的是,这是Django的TastyPie REST实现所理解的。。。。但JSON难道不是人类可读的吗?我认为说application/yaml
更为一致,就像我们可能说application/json
和application/xml
一样。这并不完全正确。除非明确声明另一个Mime类型(例如text/html;charset=utf-8
),否则以text/
开头的Mime类型将作为ISO-8859-1处理。除非明确声明另一个Mime类型,否则以application/
开头的Mime类型将作为UTF-8处理。例如,text/x-yaml
在text/x-yaml时不能使用UTF-8字符;字符集=utf-8和应用程序/x-yaml。IIRC,这是在RFC3023中定义的。@RyanParman您有点混淆了字符集和MIME类型。您是对的,没有显式的charset=
参数的text/*
被假定为ISO-8859-1,但是application/*
中的内容不一定是文本。(你链接的RFC是关于XML的,不确定它的相关性。)@RyanParman不是真的。说明:如果指定了“charset”参数,则该参数应为必需参数,从而消除了指定默认值的选项。如果尽管有此建议,参数仍然是可选的,那么每个子类型都可以指定自己的默认值,或者,也可以指定没有默认值。最后,应选择“UTF-8”字符集[RFC3629]作为默认值。
。没有关于text/yaml
或text/x-yaml
的正式定义,因此默认值为UTF-8.RFC 3023,包括编码处理在2014年被淘汰。RFC 2046中text/*
媒体类型默认为US-ASCII
(注:非ISO-8859-1
)的规则已被废除,无论选择何种方法,所有新的text/*注册都必须明确指定如何确定字符集;不再允许依赖[RFC2046]第4.1.2节中定义的US-ASCII默认值。
于2013年1月发布。RFC 3023和RFC 7303都没有对AFAIK的text/*
AFAIK作一般性的说明。@RyanParman所以你当时的结论可能是正确的,但你错误地引用了RFC 3023,而规则来自RFC 2046。然而,今天,UTF-8
是每个text/*
媒体类型的默认值,这些媒体类型在其IANA注册中没有声明不同的内容。因此,这将是application/vnd.yaml
或text/vnd.yaml
(文本似乎更好)也不完全正确。唯一未经IANA注册即可使用的子类型树是x.
<代码>vnd。
和prs。
需要注册。见和。似乎到2018年1月为止,该提案毫无进展,我与作者联系的尝试也没有得到回应