当前位置:  开发笔记 > 后端 > 正文

YAML哑剧型?

如何解决《YAML哑剧型?》经验,为你挑选了4个好方法。

在通过HTTP发送使用YAML构建的数据时,最合适的MIME类型是什么?

解释为什么给定的选择是最合适的将是非常感谢.

我没有注册的应用程序类型或文本类型.

例:

> GET /example.yaml

< Content-Type: ????
<
< --- # Favorite movies
< - Casablanca
< - North by Northwest
< - Notorious

可能的选择:

text/yaml
text/x-yaml
application/yaml
application/x-yaml

Vinko Vrsalo.. 59

Ruby on Rails使用(source)application/x-yaml替代.text/yaml

我认为这只是一个惯例问题,据我所知,没有技术上的原因.



1> Vinko Vrsalo..:

Ruby on Rails使用(source)application/x-yaml替代.text/yaml

我认为这只是一个惯例问题,据我所知,没有技术上的原因.


这不是_quite_ true.除非明确声明另一个mime类型(例如`text/html; charset = utf-8`),否则以`text /`开头的Mime类型将被处理为ISO-8859-1.除非显式声明另一个mime类型,否则以`application /`开头的Mime类型将被处理为UTF-8.例如,`text/x-yaml`不能使用UTF-8字符而`text/x-yaml; charset = utf-8`和`application/x-yaml`可以.IIRC,这在RFC 3023中定义.
RFC 3023(包括编码处理)已于2014年由https://tools.ietf.org/html/rfc7303#section-3废弃.对于RFC 2046中的`text/*`媒体类型,默认为"US-ASCII"(注意:不是`ISO-8859-1`)的规则已被废弃."无论选择何种方法,所有新文本/*注册必须明确说明如何确定字符集; 在2013年1月的https://tools.ietf.org/html/rfc6838#section-4.2.1中,不再允许依赖于[RFC2046]第4.1.2节中定义的US-ASCII默认值.无法通过RFC 3023 RFC 7303也没有说出关于`text/*`AFAIK的一般信息.
@RyanParman所以你的结论可能是正确的,但你错误地引用了RFC 3023,而规则来自RFC 2046.今天,`UTF-8`是每个`text/*`媒体类型的默认值在IANA注册中有所不同.
@RyanParman不对.https://tools.ietf.org/html/rfc6838#section-4.2.1说:`如果指定了"charset"参数,它应该是必需参数,从而消除了指定默认值的选项.如果有一个强有力的理由让参数尽可能是可选的,那么每个子类型都可以指定它自己的默认值,或者它可以指定没有默认值.最后,应该选择"UTF-8"字符集[RFC3629]作为默认值."text/yaml"和"text/x-yaml"没有正式定义,因此默认值为UTF-8.
@RyanParman你有点混淆字符集和MIME类型.你是对的,没有明确的`charset =`参数的`text/*`被认为是ISO-8859-1,但`application/*`中的东西不一定是文本.(您链接的RFC是关于XML的,不确定它是如何相关的.)

2> djb..:

虽然另一个答案被接受,请参阅本为YAML提议的媒体类型的注册线程IANA邮件列表上审查媒体类型在本哈里斯,剑桥信息服务,大学提出的代表YAML队的媒体类型的2015年7月:

text/vnd.yaml

使用(建议)弃用的别名:

text/yaml
text/x-yaml
application/x-yaml

那仍然是提议/待决(线程没有表明提案的状态)所以这个答案不比其他人更明确:-)


从2018年1月开始,该提案似乎无处可去,我与作者联系的尝试没有得到答复

3> Greg..:

我会说text/x-yaml:

应用程序上的文本因为它是人类可读的

yaml上的x-yaml因为它尚未被接受到mime类型的注册列表中.

编辑:来自RFC 3023(XML媒体类型):

顶级媒体类型"text"对MIME实体有一些限制,它们在[RFC2045]和[RFC2046]中有所描述.特别是,不允许使用UTF-16系列,UCS-4和UTF-32(除了HTTP [RFC2616],它使用类似MIME的机制).

有趣......不完全确定它意味着什么,但值得深思.



4> Julian Resch..:

不鼓励使用"x-"媒体类型,请参阅RFC 4288,第3.4节.正确的做法是使用个人树,供应商树,或实际尝试正确的媒体类型注册.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有