Чому електронна пошта більша?
Оскільки дані кодуються, в base64
яких кодуються групи до трьох байтів як групи з чотирьох символів для друку ASCII. Зазвичай ці групи символів для друку розбиваються на рядки.
Результат полягає в тому, що закодовані дані трохи більше в 1 раза перевищують розмір вихідних даних.
Чому використовується base64?
Електронна пошта має довгу історію і спочатку була розроблена для перенесення тексту. Лише значення байтів, що представляють символи для друку ASCII, можуть надійно пройти через широкий спектр електронних систем на планеті.
Таким чином, MIME розділив дві схеми кодування інших даних у вигляді тексту ASCII - "котируемого для друку", призначеного для тексту ASCII з кількома іншими бітами, і "BASE64" для довільних двійкових даних.
Протокол SMTP було розширено, щоб спробувати усунути ці обмеження. По-перше, 8BITMIME в 1994 р., Що дозволило підвищити значення октету, але, на жаль, не усунуло обмежень, пов'язаних з довжиною рядків і закінченнями рядків, тому не було придатним для довільних двійкових даних; а потім BINARYMIME в 1995 р., що дозволило передавати повідомлення, що містять довільні двійкові дані.
Однак ці стандарти не отримали широкого прийняття. Одна з проблем полягає в тому, що станеться, якщо один стрибок у поштовій ланцюжку підтримує їх, але наступний перехід не робить? Тоді поштовий сервер не може надіслати пошту такою, якою є, він повинен або відхилити її як недостачувану та відмовитись (що навряд чи буде прийнятним для користувачів), або перетворити її (що вимагає значного додаткового коду на поштовому сервері) . Конверсія робиться особливо болісною правилами MIME щодо використання кодувань для передачі вмісту на багаточастинні типи.