Различие между объектами HTTP и MIME — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Различие между объектами HTTP и MIME

2017-11-27 183
Различие между объектами HTTP и MIME 0.00 из 5.00 0 оценок
Заказать работу

HTTP/1.1 использует много конструкций, определенных для электронной почты Интернет (RFC-822) и MIME (Multipurpose Internet Mail Extensions), для обеспечения пересылки объектов в различных представлениях. MIME [7.7] обслуживает электронную почту, а HTTP имеет лишь ряд черт, которые отличают его от MIME. Эти отличия тщательно подобраны, чтобы оптимизировать работу в условиях двоичных соединений ради большей свободы в использовании новых типов сред. Прокси и шлюзы должны по возможности исключать такие отличия и обеспечивать соответствующие преобразования там, где это нужно.

Преобразование к канонической форме

MIME требует, чтобы почтовый объект Интернет перед посылкой был преобразован в каноническую форму. MIME требует, чтобы содержимое типа text представляло разрывы строк в виде последовательности символов CRLF, и запрещает использование CR или LF отдельно. Для обозначения разрыва строки HTTP позволяет использовать CRLF, одиночный CRи одиночный LF. Всюду, где возможно, прокси и шлюзы между средами HTTP и MIME должны преобразовать все разрывы строк для текстовых типов среды. Заметьте, однако, что это может вызвать сложности в присутствии кодирования содержимого, а также вследствие того, что HTTP допускает применение символьных наборов, которые не используют октеты 13 и 10 для представления CR и LF, так как для этих целей здесь служат многобайтовые последовательности.

Чтобы упростить сравнение, HTTP/1.1 использует ограниченный набор форматов даты. Прокси и шлюзы должны позаботиться о преобразовании полей заголовков даты в один из допустимых форматов всякий раз, когда это необходимо (при получении данных от других протоколов).

Введение кодирования содержимого

MIME не содержит какоголибо эквивалента полю заголовка Content-Encoding HTTP/1.1. Так как это поле работает как модификатор типа среды, прокси и шлюзы между HTTP и MIME протоколами должны или изменить значение поля заголовка Content-Type, или декодировать тело объекта, прежде чем переадресовывать сообщение. Некоторые экспериментальные приложения Content-Type для почты Интернет используют параметр типа среды ";conversions=" для выполнения операции, аналогичной Content-Encoding. Однако этот параметр не является частью MIME.

No Content-Transfer-Encoding

HTTP не использует поле MIME CTE (Content-Transfer-Encoding). Прокси и шлюзы от MIME к HTTP должны удалять любую неидентичность CTE (quoted-printable или base64) кодирования, прежде чем доставлять сообщение­отклик клиенту HTTP.

Прокси и шлюзы от HTTP к MIME ответственны за то, чтобы сообщения имели корректные форматы и кодировки для безопасной транспортировки (безопасная транспортировка определяется ограничениями используемого протокола). Такие прокси и шлюзы должны помечать информацию согласно Content-Transfer-Encoding. Поступая так, мы улучшаем вероятность безопасной транспортировки с применением протокола места назначения.

Поля заголовка в многофрагментных телах

В MIME большинство полей заголовка в многофрагментных частях игнорируются, если только имя поля не начинается с Content. В HTTP/1.1 многофрагментные части тела могут содержать любые поля заголовков HTTP, которые имеют смысл для этой части.

Введение транспортного кодирования

Протокол HTTP/1.1 вводит поле заголовка Transfer-Encoding. Прокси/шлюзы должны удалять любое транспортное кодирование перед переадресацией сообщения через протокол MIME.

Процесс декодирования транспортного кода может быть представлен в виде псевдопрограммы:

length:= 0
read chunksize, chunkextention (if any) and CRLF
while (chunksize > 0) {
read chunkdata and CRLF
append chunkdata to entitybody
length:= length + chunksize
read chunksize and CRLF
}
read entityheader
while (entityheader not empty) {
append entityheader to existing header fields
read entityheader
}
ContentLength:= length
Remove "chunked" from Transfer-Encoding

MIME-Version

HTTP не является протоколом, совместимым с MIME. Однако HTTP/1.1 сообщения могут включать поле общего заголовка MIME-Version, чтобы указать, какая версия протокола MIME была использована для конструирования сообщения. Использование заголовка поля MIME-Version отмечает, что сообщение полностью соответствует протоколу MIME. Прокси/шлюзы несут ответственность за полную совместимость (где это возможно), когда осуществляется передача HTTP сообщений в среду MIME.

MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT


Поделиться с друзьями:

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.