Рассуждение 76, являющееся пределом длины линии для секций MIME, как определено в RFC 2045?
RFC 2045 определяет максимальную длину строки для закодированных данных как 76 - однако я не могу найти никакого объяснения, почему это 76. Является ли это число совершенно произвольным, или есть какие-то причины для этого?
3 ответа
RFC2822 является устаревшим стандартом EMail. В разделе 2.1.1 RFC2822 вы можете найти причину, как показано ниже: Это также влияет на MIME.
Есть два ограничения, которые этот стандарт устанавливает для количества символов в строке. Каждая строка символов ДОЛЖНА быть не более 998 символов и ДОЛЖНА быть не более 78 символов, исключая CRLF.
Ограничение в 998 символов связано с ограничениями во многих реализациях, которые отправляют, получают или хранят сообщения формата сообщений Интернета, которые просто не могут обрабатывать более 998 символов в строке. Для обеспечения надежности было бы целесообразно получать реализации для обработки произвольно большого количества символов в строке. Однако существует очень много реализаций, которые (в соответствии с транспортными требованиями [RFC2821]) не принимают сообщения, содержащие более 1000 символов, включая CR и LF на строку, для реализаций важно не создавать такие сообщения.
Более консервативная 78-символьная рекомендация состоит в том, чтобы учесть множество реализаций пользовательских интерфейсов, которые отображают эти сообщения, которые могут урезать или катастрофически оборачивать отображение более 78 символов в строке, несмотря на то, что такие реализации не соответствуют цель этой спецификации (и [RFC2821], если они фактически приводят к потере информации). Опять же, несмотря на то, что это ограничение накладывается на сообщения, оно обременено реализациями, которые отображают сообщения для обработки произвольно большого количества символов в строке (конечно, по крайней мере, до ограничения в 998 символов) ради надежности.
На самом деле оригинальный RFC 822 определяет ограничение в 72 символа, и виновником является телетайп, который был стандартным устройством вывода на ранних компьютерах.
Вы также можете "поблагодарить" устройства телетайпа за терминатор строки в электронных письмах (и Windows), состоящих из 2 символов: CR (возврат каретки) и LF (перевод строки).
Было важно передать эту последовательность в конце каждой строки, чтобы телетайп переместил карету в позицию 0 и продвинул бумаги на один тик вверх.
К тому времени, когда RFC 2822 устарел оригинал, никто не использовал телетайпы для рендеринга электронных писем, поэтому он немного расслабился, чтобы вписаться в устройство монитора TTY по умолчанию.
Максимальная длина строки 80, включая завершающий возврат каретки и перевод строки, происходит от старых добрых перфокарт, которые содержат до 80 столбцов отверстий.
Почему 80? Потому что в любой книге длина строки редко превышает 80 символов, включая пробелы.
Это подразумевает максимальную длину строки 80, включая завершающий возврат каретки (который перемещает каретку телетайпа или печатной машины в крайнее левое положение) и перевод строки (который продвигает бумагу на одну строку).
Поскольку Base64 состоит из четырех символов, мы получаем максимум 76, не считая CR+LF.
Другой пример - TLE (набор двухстрочных элементов), который описывает орбиту спутника. Умещается всего на двух перфокартах.
Поскольку CR (горизонтальное перемещение в крайнее левое положение, сохранение вертикального положения) и LF (вертикальное перемещение к следующей строке, сохранение горизонтального положения как есть) являются двумя полностью независимыми вещами, у нас все еще есть оба из них. Следующая строка должна начинаться с крайней левой позиции, не так ли?
Для печати жирным шрифтом линия была напечатана дважды, между ними была только CR, то есть без продвижения бумаги. Поэтому стандартная последовательность сначала CR, а затем LF.
Однако старая добрая механическая печатная машина обычно сначала печатала LF, а затем CR.
Немного сделать с пользовательскими интерфейсами
http://en.wikipedia.org/wiki/Text_mode
В основном, 80 символов в ширину (и обычно 25 или 30 строк) были наиболее распространенным стандартом для дисплеев. 78 обеспечивает нормальный стандарт, поскольку это позволяет использовать некоторые небольшие украшения (границы).