Поле заголовка Content-Transfer-Encoding
Стандартные механизмы конвертирования почты в 7-битный короткострочный формат, приемлемый для почтового транспорта, описывает поле заголовка Content-Transfer-Encoding. Данное поле не было определено в предыдущих стандартах. Его значение должно быть строкой без пробелов, определяющей тип конвертации, как показано ниже: 7bit" означает, что данные являются текстом, имеют короткие строки и языковую… Читать ещё >
Поле заголовка Content-Transfer-Encoding (реферат, курсовая, диплом, контрольная)
Многие типы данных, пересылаемых через email требуют «натурального» представления, то есть, 8-битный набор символов либо двоичный код. В таком виде данные не могут быть пересланы по 7-битным почтовым протоколам, например, RFC 821, который, к тому же, ограничивает длину строки 1000 символами.
Стандартные механизмы конвертирования почты в 7-битный короткострочный формат, приемлемый для почтового транспорта, описывает поле заголовка Content-Transfer-Encoding.
Существует противоречие между желанием эффективно «ужать» бинарные данные и желанием трансформировать данные, которые, хотя бы частично являются 7-битным текстом, так, чтобы их все-таки можно было читать. По этой причине необходимы по крайней мере 2 механизма конвертации: «читабельный» и «плотно ужимающий» .
Данное поле не было определено в предыдущих стандартах. Его значение должно быть строкой без пробелов, определяющей тип конвертации, как показано ниже:
конвертация := «Content-Transfer-Encoding» «:» механизм механизм := «7bit» .
/ «quoted-printable» .
/ «base64» .
/ «8bit» .
/ «binary» .
/ x-token.
Значения не чувствительны к регистру букв. Значение «7bit» означает, что тело письма уже имеет 7-битный формат и не требует дополнительной обработки для пересылки по почте. Это значение полагается по умолчанию, если поле заголовка Content-Transfer-Encoding отсутствует.
Значения «8bit», «7bit» и «binary» означают, что никакой трансформации содержимого не производится. Однако, они сделаны различными для индикации того, что из себя представляет содержимое письма, и, соответственно, способа обработки, который может потребоваться для данной транспортной системы. В частности:
" 7bit" означает, что данные являются текстом, имеют короткие строки и языковую кодировку US-ASCII.
" 8bit" означает короткие строки, но в них могут содержаться не-ASCII символы (128−255).
" Binary" означает, что тело письма может содержать не-ASCII символы, но строки могут быть произвольной длины, т. е. слишком длинными для SMTP-транспорта, и может не соблюдаться соглашение по признаку конца строки (CRLF), принятое в SMTP-транспорте.
Хотя на первый взгляд разница в значениях Content-Transfer-Encoding может показатся неважной — ведь все они означают, что никакого преобразования нет, но четкая разметка важна для почтовых шлюзов между разными почтовыми системами, имеющими разные возможности и особенности работы, число которых со временем растет.
Спецификация на почтовый транспорт для пересылки некодированных 8-битных данных дана в RFC-1426. Однако, нет стандартизованных транспортов почты Internet, для которых является приемлемым включение в тело письма некодированных двоичных данных легальным в Internet.
Пять значений, определенных для поля Content-Transfer-Encoding, ничего не говорят о типе содержимого кроме указания алгоритма кодирования либо требований к почтовому транспорту в случае некодированных данных.
Производители почтового ПО, если необходимо, могут определить новые значения поля Content-Transfer-Encoding, но эти значения должны иметь префикс «X-» («x-»), чтобы подчеркнуть их нестандартный характер. Однако, в отличие от типов и подтипов поля Content-Type, введение новых значений Content-Transfer-Encoding настоятельно не рекомендуется, так как может оказаться помехой для взаимосовместимости почтовых систем. Использование X-значений позволяется только как результат взаимосоглашения между взаимодействующими системами.