Кратко

  • RFC 2158 связывала JPEG и GIF через имена частей тела, OID, MIME-типы и передаваемые без преобразования октеты; эти признаки относятся к одной цепочке, но не взаимозаменяемы.
  • В подразделе FTAM EMA GIF напечатано image/jpeg, хотя заголовок, имя части и OID gif-image(4) указывают на GIF.
  • Контекст убедительно говорит об ошибке копирования, но RFC Editor сейчас не регистрирует ни одной errata для RFC 2158; ни вероятный замысел, ни опубликованный ярлык не доказывают, что выдавал конкретный развернутый шлюз.

Одна запись нарушила собственную цепочку идентичности

RFC 2158, опубликованная в январе 1998 года, описала два коротких пути передачи изображений между MIME и X.400. Расширенными частями тела были mime-jpeg-body под { mixer-bp-data 3 } и mime-gif-body под { mixer-bp-data 4 }, обе без параметров. Документ также перечислил два идентификатора вложений FTAM, назначенных Electronic Messaging Association.

Три из четырех случаев образуют ясный ряд. Расширенная часть JPEG сопоставлена с image/jpeg; FTAM EMA JPEG — тоже с image/jpeg и OID, оканчивающимся на jpeg-image(6); расширенная часть GIF — с image/gif. Четвертый подраздел называется «image/gif - FTAM EMA GIF», называет часть FTAM EMA GIF и приводит путь OID до gif-image(4). Однако между ними напечатано MIME Content-Type: image/jpeg, а следующая фраза называет этот OID назначенным для JPEG.

Противоречие находится внутри одной компактной записи. Три идентификатора говорят GIF, а одно поле и, по всей видимости, скопированное существительное — JPEG. Одновременно описывать один формат они не могут.

«Без преобразования» повысило цену неверного ярлыка

Каждое сопоставление RFC 2158 содержит Conversion: None. Шлюз не должен был декодировать один растровый формат и кодировать другой. Он связывал представление X.400 с MIME-типом, сохраняя октеты неизменными. Поэтому заголовок JPEG не превращает байты GIF в JPEG, а ветвь OID с именем GIF не превращает байты JPEG в GIF.

RFC 2046 проводит нужную границу: внутри верхнего типа image подтип обозначает конкретный формат изображения. Реестр медиатипов IANA содержит отдельные записи image/gif и image/jpeg. Получатель может выбирать декодер по ярлыку, но ярлык остается утверждением о байтах. Выбор правила, неизменный хеш и успешное декодирование — разные наблюдения.

Сопутствующая RFC 2157 подтверждает окружающий рисунок: ее таблицы связывают mime-jpeg-body с image/jpeg, а mime-gif-body — с image/gif. Она не исправляет RFC 2158 молча, но показывает, почему реализации требовалось сверять несколько полей.

Очевидное исправление остается выводом

Наиболее обоснованное прочтение: подраздел FTAM EMA GIF должен был назвать image/gif и сказать об OID, назначенном GIF. Это поддерживают заголовок, имя части, лист OID и соседние записи. Более ранний проект MIXER также связывает расширенную часть GIF с image/gif, но он предшествует подразделам FTAM и не содержит исправленной версии спорной строки.

На этом публичное доказательство заканчивается. Поиск errata RFC Editor сейчас не возвращает совпадений для RFC 2158. «Вероятная редакционная ошибка» — обоснованный анализ; «официально исправлено» — нет.

Документ не сообщает и о развертываниях. Поставщик мог буквально следовать MIME-полю, предпочесть заголовок и OID, внести частную поправку, проверить сигнатуру байтов или вообще не реализовать путь FTAM.

Спецификация не может свидетельствовать за программу

Чтобы установить поведение шлюза, нужны версия таблицы, выбранная часть X.400, полный OID, входные MIME-поле и байты, выходные поля и байты, выбранный обработчик и результат декодирования. Совпадающий хеш доказывает непрерывность байтов на наблюдаемом шаге, но не правильность ярлыка. Открытое изображение доказывает, что один обработчик его принял, но не то, что все получатели выберут так же.

Документ, реализация и наблюдаемый результат — самостоятельные слои доказательств. Они могут совпасть, но ни один не получает квитанцию другого. Урок RFC 2158 не в бесполезности ярлыков. Идентичность формата — составное утверждение; при конфликте байты, идентификатор и код необходимо согласовать прежде, чем ярлык сможет говорить за них.

Источники