YAML MIMEタイプ?


111

YAMLで構造化されたデータをHTTP経由で送信するときに使用する最も適切なMIMEタイプは何ですか?

特定の選択が最も適切である理由の説明をいただければ幸いです。

表示できる登録済みのアプリケーションタイプまたはテキストタイプはありません。

例:

> GET /example.yaml

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

可能なオプション:

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

回答:


64

Ruby on Railsは(source)のapplication/x-yaml代替で使用します。text/yaml

それは単なる慣習の問題だと思います。私が知る限り、技術的な理由はありません。


78
これではありません非常に真。で始まるtext/MIMEタイプは、別のMIMEタイプが明示的に宣言されていない限り(たとえばtext/html; charset=utf-8)、ISO-8859-1として処理されます。で始まるapplication/MIMEタイプは、別のMIMEタイプが明示的に宣言されていない限り、UTF-8として処理されます。たとえば、text/x-yamlUTF-8文字中に使用することはできませんtext/x-yaml; charset=utf-8し、application/x-yaml缶を。IIRCは、これはRFC 3023で定義されている
ライアンパーマン

2
@RyanParman文字セットとMIMEタイプが少し混乱しています。確かにtext/*、明示的なcharset=パラメータがない場合はISO-8859-1と見なされapplication/*ますが、の内容は必ずしもテキストであるとは限りません。(リンクしたRFCはXMLに関するものであり、それがどのように関連しているかはわかりません。)
Thanatos

3
@RyanParman真実ではない。tools.ietf.org/html/rfc6838#section-4.2.1は言います:If a "charset" parameter is specified, it SHOULD be a required parameter, eliminating the options of specifying a default value. If there is a strong reason for the parameter to be optional despite this advice, each subtype MAY specify its own default value, or alternatively, it MAY specify that there is no default value. Finally, the "UTF-8" charset [RFC3629] SHOULD be selected as the default.text/yamlnor の正式な定義はないtext/x-yamlため、デフォルトはUTF-8です。
aef

7
エンコーディング処理を含むRFC 3023は、2014年にtools.ietf.org/html/rfc7303#section-3によって廃止されました。RFC 2046のメディアタイプのデフォルトのUS-ASCII(注:ではないISO-8859-1)ルールは、2013年1月にtools.ietf.org/html/rfc6838#section-4.2.1text/*廃止されRegardless of what approach is chosen, all new text/* registrations MUST clearly specify how the charset is determined; relying on the US-ASCII default defined in Section 4.1.2 of [RFC2046] is no longer permitted.ました。RFC3023もRFC 7303も一般的なことは何も述べていませんtext/*私の知る限り。
aef 2016年

6
@RyanParmanしたがって、結論はおそらく正しいものでしたが、誤ってRFC 3023を参照しましたが、ルールはRFC 2046に由来します。しかし、今日は、IANA登録で何か異なることを述べていないUTF-8すべてのtext/*メディアタイプのデフォルトです。
aef 2016年

21

別の答えを受け入れたが、これを参照してくださいYAMLのために提案されたメディアタイプ登録ベン・ハリス、ケンブリッジ大学の情報サービスは、ここでメディアタイプを見直すためのIANAメーリングリストのスレッド提案 YAMLチームメディアタイプに代わって2015年7月に:

text/vnd.yaml

(推奨)非推奨のエイリアス:

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

それはまだ提案/保留中です(スレッドは提案のステータスを示していません)ので、この回答は他のものより決定的ではありません:-)


11
2018年1月の時点で提案はどこにもなく、私の作者に連絡を取ろうとしても答えが出ていないようです
djb

15

私はtext / x-yamlと言います:

人間が読めるので、アプリケーション上のテキスト

登録されているMIMEタイプのリストに受け入れられていないため、yamlよりもx-yaml。

編集:RFC 3023(XMLメディアタイプ)から:

最上位のメディアタイプ「テキスト」はMIMEエンティティにいくつかの制限があり、[RFC2045]および[RFC2046]で説明されています。特に、UTF-16ファミリー、UCS-4、およびUTF-32は許可されません(MIMEのようなメカニズムを使用するHTTP [RFC2616]を除く)。

興味深い...それが何を意味するのか正確にはわからないが、考えるための食べ物。


1
人間が読める形式ですが、その目的はアプリケーションと通信することです... XMLはアプリケーションの下にあります
Vinko Vrsalovic 2008

そして、テキストの下にも。text / x-yamlとapplication / x-yamlの両方が必要なようです... rfc-editor.org/rfc/rfc3023.txt
Vinko Vrsalovic

何のために、これはDjangoのTastyPie REST実装が理解するものです。
Michael Scheper

1
...しかし、JSONも人間が読める形式ではありませんか?私はそれを言うために、より一貫性のあることだと思うapplication/yaml私達は言うかもしれないと同じように、application/jsonapplicaiton/xml
アンソニー・ラトリッジ

7

「x-」メディアタイプはお勧めしません。RFC4288のセクション3.4を参照してください。正しいことは、個人ツリー、ベンダーツリーを使用するか、適切なメディアタイプ登録を実際に試みることです。


つまり、それは(application/vnd.yamlまたはtext/vnd.yamlテキストの方がいいようです)
ワイヤ

完全に真実でもありません。IANAに登録せずに使用することを目的とした唯一のサブタイプツリーはx.です。vnd.およびprs.登録が必要。tools.ietf.org/html/rfc6838#section-3.2およびtools.ietf.org/html/rfc6838#section-3.3を参照してください。
aef


1

Chromeではapplication/yamlダウンロードしながら、text/yaml表示されます。


これは質問に対する答えを提供しません。十分な評判得られたら、どの投稿にもコメントできます。代わりに、質問者からの説明を必要としない回答を提供してください。- レビューから
ysf

1
@ysfあなたのコメントは、IMOに過度に知識が豊富です。投稿は簡潔ですが正確で、OPの質問に答え、各オプションの「理由」を説明し、その制限を述べるよう努めています(「...少なくともChromeではこれは正しい」)言うまでもありません。他に誰も提供していませんこの情報。OPは、異なるContent-Typesが異なる動作をもたらす可能性があるとさえ考えていなかったかもしれません。
Dan H
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.