YAML माइम प्रकार?


112

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

जवाबों:


64

रूबी ऑन रेल्स ( स्रोत ) के application/x-yamlविकल्प के साथ उपयोग करता है ।text/yaml

मुझे लगता है कि यह सिर्फ सम्मेलन की बात है, कोई तकनीकी बात नहीं है, जहां तक ​​मैं बता सकता हूं।


78
यह बिल्कुल सच नहीं है। text/जब तक कि एक और माइम प्रकार को स्पष्ट रूप से घोषित नहीं किया जाता है तब तक माइम प्रकारों को आईएसओ-8859-1 के रूप में संसाधित किया जाना है text/html; charset=utf-8। माइम प्रकार है कि के साथ शुरू application/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/*जरूरी चीजें नहीं हैं। (आपके द्वारा जोड़ा गया आरएफसी एक्सएमएल के बारे में है, यह सुनिश्चित नहीं है कि यह कैसे प्रासंगिक है।)
थानातोस

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/yamlन ही इसकी कोई औपचारिक परिभाषा है text/x-yaml, इसलिए डिफ़ॉल्ट UTF-8 है।
ऐफ

7
2014 में RFC 3023, जिसमें एन्कोडिंग हैंडलिंग भी शामिल है, टूल्स . ietf.org/html/rfc7303#section-3 द्वारा 2014 में बाधित किया गया था । RFC 2046 में मीडिया प्रकारों के लिए डिफॉल्ट US-ASCII(नोट: नहीं ISO-8859-1) करने का नियम जनवरी 2013 में tools.ietf.org/html/rfc6838#section-4.2.1text/* द्वारा आंका गया है। न तो RFC 3023 और न ही PFFC 7303 के बारे में कुछ भी सामान्य कहना AFAIK। 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.text/*
ऐफ

6
@RyanParman तो आपका निष्कर्ष शायद सही था, लेकिन आपने गलती से RFC 3023 का संदर्भ दिया, जबकि नियम RFC 2046 से आया था। हालांकि, आज UTF-8हर text/*मीडिया प्रकार के लिए डिफ़ॉल्ट है जो इसके IANA पंजीकरण में कुछ अलग नहीं बताता है।
ऐफ

22

हालांकि एक अन्य उत्तर स्वीकार किया गया था, कृपया मीडिया प्रकार की समीक्षा के लिए IANA मेलिंग सूची में YAML थ्रेड के लिए इस प्रस्तावित मीडिया प्रकार के पंजीकरण का संदर्भ दें, जिसमें बेन हैरिस, कैम्ब्रिज सूचना सेवा विश्वविद्यालय, जुलाई 2015 में YAML टीम मीडिया प्रकार की ओर से प्रस्तावित है । :

text/vnd.yaml

(सुझाए गए) विलुप्त होने वाले उपनामों के साथ:

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

यह अभी भी प्रस्तावित / लंबित है (थ्रेड प्रस्ताव की स्थिति को इंगित नहीं करता है) इसलिए यह उत्तर दूसरों की तुलना में अधिक निश्चित नहीं है :-)


11
ऐसा लगता है कि जनवरी 2018 के अनुसार प्रस्ताव कहीं नहीं है, और लेखक से संपर्क करने के मेरे प्रयास अनुत्तरित हैं
djb

15

मैं पाठ / x-yaml कहूंगा:

आवेदन पर पाठ क्योंकि यह एक मानव पठनीय है

yaml पर x-yaml क्योंकि यह माइम प्रकारों की पंजीकृत सूची में स्वीकार नहीं किया गया है।

संपादित करें: RFC 3023 (XML मीडिया प्रकार) से:

शीर्ष-स्तरीय मीडिया प्रकार "टेक्स्ट" में MIME संस्थाओं पर कुछ प्रतिबंध हैं और उन्हें [RFC2045] और [RFC2046] में वर्णित किया गया है। विशेष रूप से, UTF-16 परिवार, UCS-4 और UTF-32 की अनुमति नहीं है (HTTP [RFC2616 को छोड़कर), जो MIME जैसे तंत्र का उपयोग करता है)।

दिलचस्प ... निश्चित रूप से इसका मतलब नहीं है, लेकिन विचार के लिए भोजन।


1
यह मानव पठनीय है, लेकिन इसका इरादा अनुप्रयोगों को संवाद करने का है ... एक्सएमएल आवेदन के तहत है
विंको व्रसालोविक

और पाठ के तहत भी। ऐसा लगता है कि आपके पास टेक्स्ट / x-yaml और एप्लिकेशन / x-yaml दोनों ही होने चाहिए ... rfc-editor.org/rfc/rfc3023.txt
Vinko Vrsalovic

इसके लायक क्या है, यह Django का टेस्टी रेस्ट कार्यान्वयन समझ में आता है।
माइकल स्काइपर

1
... लेकिन JSON मानव पठनीय भी नहीं है? मुझे लगता है कि यह कहना अधिक सुसंगत होगा application/yaml, जैसा कि हम कह सकते हैं application/jsonऔर applicaiton/xml
एंथनी

7

"x-" मीडिया प्रकार हतोत्साहित होते हैं, RFC 4288, धारा 3.4 देखें । सही बात यह है कि व्यक्तिगत पेड़, विक्रेता के पेड़ का उपयोग करना, या वास्तव में एक उचित मीडिया प्रकार के पंजीकरण का प्रयास करना है।


तो यह होगा application/vnd.yamlया text/vnd.yaml(पाठ बेहतर प्रतीत होता है)
तार

पूरी तरह से सच भी नहीं है। एकमात्र उपप्रकार का पेड़ जो इना के साथ पंजीकरण के बिना उपयोग के लिए है x.vnd.और prs.पंजीकरण की आवश्यकता है। Tools.ietf.org/html/rfc6838#section-3.2 और tools.ietf.org/html/rfc6838#section-3.3 देखें ।
ऐफ


2

क्रोम पर application/yamlडाउनलोड होगा, जबकि text/yamlप्रदर्शित करेगा।


यह प्रश्न का उत्तर प्रदान नहीं करता है। एक बार आपके पास पर्याप्त प्रतिष्ठा होने के बाद आप किसी भी पोस्ट पर टिप्पणी कर पाएंगे ; इसके बजाय, ऐसे उत्तर प्रदान करें जिन्हें पूछने वाले से स्पष्टीकरण की आवश्यकता न हो । - रिव्यू से
ysf

1
@ysf आपकी टिप्पणी अत्यधिक पांडित्यपूर्ण, IMO है। पोस्ट संक्षिप्त है लेकिन उपार्जित है, ओपी के प्रश्न का उत्तर देता है, प्रत्येक विकल्प के "क्यों" की व्याख्या करता है, और इसकी सीमाओं को बताने का प्रयास करता है ("... कम से कम क्रोम पर यह सच है"।) उल्लेख करने के लिए: कोई और नहीं प्रदान किया गया। यह जानकारी। ओपी ने यह भी नहीं माना हो सकता है कि अलग-अलग सामग्री-प्रकारों के परिणामस्वरूप अलग-अलग व्यवहार हो सकते हैं, जो उसके या उसके लिए उपयोगी हो सकते हैं।
दान एच।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.