Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http YAML媒体类型?_Http_Mime_Mime Types_Yaml - Fatal编程技术网

Http YAML媒体类型?

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

通过HTTP发送YAML结构化数据时,最合适的媒体类型(正式的MIME类型)是什么?为什么

我看不到任何已注册或已注册的文件

例如:

> 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
      over
      yaml
      ,因为它尚未被接受到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月为止,该提案毫无进展,我与作者联系的尝试也没有得到回应