Тип носителя YAML?

Какой тип мультимедиа (формально MIME) лучше всего использовать при отправке данных, структурированных с помощью YAML, через HTTP и почему?

Я не вижу зарегистрированных Тип приложения или тип текста.

Пример:

> GET /example.yaml

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

Возможные варианты:

  • текст / x-yaml
  • текст / yaml
  • текст / yml
  • приложение / x-yaml
  • приложение / x-yml
  • приложение / yaml
  • application / yml
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
127
0
60 188
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Ruby on Rails использует application/x-yaml с альтернативой text/yaml (источник).

Я думаю, это просто вопрос условности, почему, насколько я могу судить, нет технический.

Странно, Google для "yaml mime" дает рубиновую ссылку в качестве первого обращения с текстом / x-yaml и без упоминания application / x-yaml.

Greg 01.12.2008 23:53

Это не правда довольно. Типы MIME, начинающиеся с text/, должны обрабатываться как ISO-8859-1, если явно не объявлен другой тип MIME (например, text/html; charset=utf-8). Типы MIME, начинающиеся с application/, обрабатываются как UTF-8, если явно не объявлен другой тип MIME. Например, text/x-yaml не может использовать символы UTF-8, в то время как text/x-yaml; charset=utf-8 и application/x-yaml могут. IIRC, это определено в RFC 3023.

Ryan Parman 14.10.2011 01:16

@RyanParman Вы немного путаете набор символов и тип MIME. Вы правы, что text/* без явного параметра charset= считается ISO-8859-1, но вещи в application/* не обязательно являются текстовыми. (RFC, который вы связали, касается XML, не уверен, насколько он актуален.)

Thanatos 05.02.2015 22:44

@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.

aef 06.05.2016 13:04

@ Танатос: Ты прав. Я это понимал, но не смог адекватно объяснить.

Ryan Parman 07.05.2016 19:59

@aef: Я знаю, что RFC 3023 посвящен XML, но я понял, что все типы файлов в группе mime-типов «текст» неявно обрабатывались как ISO-8859-1. То же самое верно для text / plain и text / javascript. У меня сложилось впечатление, что это также применимо к text / yaml.

Ryan Parman 07.05.2016 20:04

RFC 3023, включая обработку кодирования, был отменен в 2014 году tools.ietf.org/html/rfc7303#section-3. Правило по умолчанию для US-ASCII (примечание: не ISO-8859-1) для типов носителей text/* в RFC 2046 было отменено 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. в tools.ietf.org/html/rfc6838#section-4.2.1 в январе 2013 года. Ни RFC 3023, ни RFC 7303 не говорят ничего общего о text/* AFAIK.

aef 08.05.2016 03:45

@RyanParman Итак, ваш вывод, вероятно, был тогда правильным, но вы ошибочно сослались на RFC 3023, а правило пришло из RFC 2046. Однако сегодня UTF-8 является стандартом по умолчанию для каждого типа носителя text/*, который не указывает что-то иное в своей регистрации IANA.

aef 08.05.2016 03:58

Я бы сказал text/x-yaml:

text вместо application, потому что он читается человеком

x-yaml по сравнению с yaml, потому что он не был включен в зарегистрированный список типов mime.

Обновлено: из RFC 3023 (типы носителей XML):

The top-level media type "text" has some restrictions on MIME entities and they are described in [RFC2045] and [RFC2046]. In particular, the UTF-16 family, UCS-4, and UTF-32 are not allowed (except over HTTP[RFC2616], which uses a MIME-like mechanism).

Интересно ... Не совсем понимаю, что это значит, но пища для размышлений.

Он удобочитаем, но предназначен для передачи приложений ... XML находится в приложении

Vinko Vrsalovic 01.12.2008 23:54

А также под текстом. Кажется, вам понадобятся и text / x-yaml, и application / x-yaml ... rfc-editor.org/rfc/rfc3023.txt

Vinko Vrsalovic 01.12.2008 23:56

Как бы то ни было, это то, что понимает реализация Django TastyPie REST.

Michael Scheper 03.03.2017 20:36

... но разве JSON тоже не читается человеком? Я думаю, было бы более последовательным называть application/yaml, как мы могли бы сказать application/json и applicaiton/xml.

Anthony Rutledge 19.11.2019 06:11

Типы носителей "x-" не приветствуются, см. RFC 4288, раздел 3.4. Правильнее всего будет использовать личное дерево, дерево поставщиков или действительно попытаться правильно зарегистрировать тип носителя.

Так что это будет application/vnd.yaml или text/vnd.yaml (текст кажется лучше)

wires 21.11.2015 19:01

Не совсем так. Единственное дерево подтипов, которое предназначено для использования без регистрации в IANA, - это x.. vnd. и prs. требуют регистрации. См. tools.ietf.org/html/rfc6838#section-3.2 и tools.ietf.org/html/rfc6838#section-3.3.

aef 06.05.2016 19:18

Хотя был принят другой ответ, обратитесь к этой ветке Предлагаемая регистрация типа носителя для YAML в списке рассылки IANA, чтобы просмотреть тип носителя, в котором Бен Харрис, Информационная служба Кембриджского университета, предложенный в июле 2015 года от имени группы YAML использовал тип носителя:

text/vnd.yaml

с (предлагаемыми) устаревшими псевдонимами:

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

Это все еще предлагается / ожидает рассмотрения (ветка не указывает статус предложения), поэтому этот ответ не более окончательный, чем другие :-)

Похоже, это предложение никуда не делось по состоянию на январь 2018 года, и мои попытки связаться с автором остались без ответа.

djb 04.01.2018 16:32

Согласно Список типов MIME это text/yaml, хотя его нет в официальном Список MIME IANA

В Chrome загрузится application/yaml, а отобразится text/yaml.

Другие вопросы по теме