Следующим типом MIME является image. Он используется для передачи неподвижных изображений. На сегодняшний день существует множество различных форматов хранения и передачи изображений, как с использованием сжатия, так и без него. Некоторые форматы, в том числе GIF, JPEG и TIFF, встроены практически во все браузеры, однако существует еще множество других типов и соответствующих им подтипов.
Типы audio и video предназначены, соответственно, для передачи звука и двигающегося изображения. Обратите внимание на то, что подтип video включает только визуальную информацию, а не звуковую дорожку. Если необходимо передать по электронной почте видеофильм со звуком, то, возможно, придется посылать видеоряд и звуковую дорожку отдельно друг от друга. Это зависит от системы кодирования. Первым видеоформатом, который был определен стандартом MIME, стал формат со скромным названием MPEG( Motion Pictures Experts Group — экспертная группа по вопросам движущегося изображения). С тех пор было добавлено еще несколько форматов. Так, чтобы позволить пользователям пересылать по электронной почте аудиофайлы в формате MP3, в RFC 3003 помимо уже существующего audio/basic был добавлен тип audio/mpeg. Типы video/mp4 и audio/mp4 указывают на видео- и аудиоданные в новом формате MPEG 4.
Таблица 7.6.Типы стандарта MIME и примеры подтипов
Тип
Подтип
Описание
text
plain, html, xml, css
Текст в различных форматах
image
gif, jpeg, tiff
Изображения
audio
basic, mpeg, mp4
Звуки
video
mpeg, mp4, quicktime
Видеофильмы
model
vrml
3D-модель
application
onoctet-stream, pdf, javascript, zip
Данные, производимые приложениями
message
http, rfc822
Инкапсулированное сообщение
multipart
mixed, alternative, parallel, digest
Комбинация нескольких типов
Тип model был добавлен позднее, чем остальные типы контента. Он предназначен для описания 3D-моделей. Однако пока он не особо широко используется.
Тип application (приложение) предназначен для всех форматов, которые не покрываются остальными типами и требуют от приложения интерпретации данных. Мы перечислили подтипы pdf, javascript и zip как примеры PDF-документов, программ на Java-Script и архивов в формате Zip соответственно. Пользовательские агенты, получающие этот контент, используют для его отображения стороннюю библиотеку или внешнюю программу. Отображение может быть интегрировано в пользовательский агент, а может и не быть.
Используя типы MIME, пользовательские агенты расширяют возможности обработки новых типов контента по мере их появления. Это значительное преимущество. С другой стороны, многие новые формы контента обрабатываются и интерпретируются приложениями, что представляет некоторую опасность. Совершенно очевидно, что запуск произвольной исполняемой программы, которая пришла по электронной почте от «друга», влечет за собой определенный риск. Такая программа может серьезно повредить те части компьютера, к которым получает доступ, особенно если она может считывать и создавать файлы и использовать сеть. Форматы документов также могут нести определенную угрозу, хотя это менее очевидно. Подобную возможность нельзя исключать, так как форматы типа PDF являются замаскированными развитыми языками программирования. Несмотря на то что они интерпретируются и ограничены в доступной им области, ошибки в интерпретаторе часто позволяют документам избежать ограничений обходными путями.
Помимо этих примеров, существует еще множество подтипов приложений, так как и самих приложений немало. Так, например, тип octet-stream (байтовый поток) представляет собой просто последовательность никак не обрабатываемых байтов. Он приписывается при невозможности описать контент (если нет ни одного типа, который подходил бы лучше). Получив такой поток, пользовательский агент должен, вероятно, предложить пользователю сохранить его в виде файла. Последующая обработка файла целиком зависит от пользователя, который, предположительно, знает, с каким контентом он столкнулся.
Последние два типа, о которых пойдет речь, полезны при создании сообщений и манипулировании ими. Тип message позволяет помещать одно сообщение в другое. Это может быть полезно для переадресации письма. Если внутри одного сообщения заключено целое сообщение стандарта RFC 822, следует использовать подтип rfc822. Сходным образом обычно инкапсулируются документы в формате HTML. А подтип partial позволяет разбивать сообщение на части и передавать их отдельно (например, в случае, когда инкапсулированное сообщение является слишком длинным). Параметры обеспечивают восстановление сообщения получателем из отдельных фрагментов в правильном порядке.
Читать дальше
Конец ознакомительного отрывка
Купить книгу