Кратко

  • RFC 9694 требует Standards Action, ясной границы принадлежности, общей оценки безопасности и хотя бы одного реального подтипа.
  • Имя перед косой чертой влияет на type/* dispatch, значок и приложение; строка в реестре создаёт работу далеко за пределами IANA.
  • Определение, реестр, подтип, отправка, сохранение, точный parsing, fallback, валидация, локальное разрешение и результат требуют разных доказательств.

Значок появился раньше поддержки

Файловый менеджер не знает haptics/hjif, но знает haptics/*. Он может показать тактильный значок или предложить общее приложение. Точный подтип ещё не понят, байты не проверены, а устройство не получило права создавать физический эффект. Но верхний уровень уже изменил dispatch и ожидание пользователя.

Поэтому RFC 9694, опубликованный в марте 2025 года как BCP 13, считает новое имя слева от черты исключением. Он обновляет RFC 6838. Большинство новых форматов должно находиться внутри существующего типа; для дискретных данных без лучшей семьи остаётся application. Новая категория заставляет производителей, посредников, системы, библиотеки и user agents распознавать новую границу.

Нужны Standards Track RFC, запрос IANA, точные правила включения и исключения, описание рисков для всех или значительной части подтипов и хотя бы один подтип. Пустая категория не имеет эксплуатационного смысла.

Реестр верхнеуровневых медиатипов IANA использует Standards Action. Рядом с MIME-семействами RFC 2046 там стоят model, example, font и haptics. Таблица доказывает имя и определяющий RFC, но не отправку конкретным производителем, сохранение шлюзом или безопасную поддержку клиентом.

Граница должна выдержать реальные форматы

Категория полезна, если устойчиво предсказывает свойства разных подтипов. Ясные критерии позволяют экспертам оценивать принадлежность и содержание регистрации. Если границу нельзя объяснить, сама неопределённость говорит против верхнего уровня.

RFC отсекает обходные пути: нельзя зеркалить другой реестр, отображать расширения или URI schemes, переносить систему типов языка программирования или онтологии. Не следует плодить aliases существующих форматов; X- не делает локальную практику официальной. Так общее пространство имён защищается от частных значений одного продукта.

Широкое неофициальное употребление показывает спрос, но не заменяет процедуру. Абстрактная категория без давления реальных форматов также ничего не доказывает. Поэтому начальные подтипы нужны как испытание границы.

Параллельный пример — haptics. RFC 9695 определяет семью, а реестр медиатипов IANA содержит haptics/ivs, haptics/hjif и haptics/hmpg. Это стандарт и реестр, не перечень браузеров, почтовых клиентов, шлюзов или устройств с поддержкой. Упоминание haptics/hmpg в RFC 9993 не означает всеобщего внедрения.

Общий fallback расширяет и ошибку

Медиатип направляет формат в код приложения. Обычно выбирают полный тип, подтип и параметры. Верхний уровень может временно направить в широкое приложение. Такое привычно для изображения, звука и видео; от имени также зависят HTML-элемент или значок.

Запуск приложения доказывает только выбор кандидата. Значок доказывает только правило отображения. Они не подтверждают поддержку подтипа, параметры, соответствие байтов, изоляцию активного содержимого или намерение пользователя. Декларацией может управлять атакующий.

Безопасная цепочка сохраняет тип и параметры, сверяет регистрацию подтипа, применяет ограничения и content validation, решает допустимость fallback, держит rendering или execution за локальной политикой и фиксирует результат. Sniffing обнаружит несоответствие, но молчаливая замена декларации догадкой создаст новую путаницу полномочий.

Для внедрения нужны десять квитанций: Standards Track, верхняя запись IANA, подтип, отправка, сохранение посредником, точное распознавание, fallback, валидация, локальное разрешение и наблюдаемый результат. Любая ступень может пройти, а следующая — нет. Расходы также распределены: миграция производителя, нормализация посредника, поддержка handlers, поверхность безопасности и помощь, когда значок правильный, а содержимое не работает.

RFC 8126 описывает Standards Action. IETF Datatracker и страница RFC Editor подтверждают статус и историю, но не применение. Для него нужны конфигурации, traces, испытания посредников, списки handlers, результаты проверки и наблюдаемое поведение.

Текст Lu Heng о минимальной начальной спецификации используется только как раскрытая редакционная линза: общим делать минимум, необходимый для совместимости, а последующие решения оставлять ближе к оператору. Это не требование IETF и не доказательство внедрения.

Источники