Что такое формат файла MHTML?
Файл .mhtml (также сохраняемый с расширением .mht) представляет собой веб-архив MIME HTML, который объединяет всю веб-страницу в один переносимый документ. Он упаковывает разметку .html вместе со всеми изображениями, таблицами стилей и скриптами, сохраняя каждый ресурс как отдельную часть MIME внутри одного файла.
Формат заимствует ту же структуру многокомпонентного сообщения, которая используется в файлах электронной почты .eml. Встроенные ресурсы кодируются в Base64 или quoted-printable, что позволяет бинарным активам перемещаться внутри текстового контейнера. Поскольку у него нет бинарного «магического числа», файл .mhtml можно открыть в любом текстовом редакторе; он начинается с заголовков в стиле электронной почты, таких как MIME-Version: 1.0, Content-Type: multipart/related; boundary=..., Subject: и Date:.
Internet Explorer популяризировал этот формат через опцию сохранения «Веб-архив, один файл (.mht)». Сегодня Google Chrome (начиная с версии 74), Microsoft Edge (на базе Chromium) и Opera нативно поддерживают сохранение страниц в формате .mhtml. Microsoft Word также может открывать и экспортировать документы в этом формате.
В macOS и iOS Safari по умолчанию использует формат .webarchive. Firefox не поддерживает сохранение страниц в .mhtml нативно; этот пробел восполняют браузерные расширения. Поддержка в браузерах для Android остается непоследовательной.
- Чтобы сохранить страницу как
.mhtmlв Chrome или Edge: Файл → Сохранить страницу как → Веб-страница, полностью (один файл) - Чтобы изучить структуру: откройте в любом текстовом редакторе - все границы MIME и заголовки доступны для чтения
Безопасность и защита
РИСК: MEDIUMФайл .mhtml встраивает все, что содержала исходная страница, включая JavaScript, который может запуститься при открытии файла в браузере. Поэтому относитесь к MHTML из ненадежных источников как к любой подозрительной веб-странице: не открывайте неожиданные файлы и предпочитайте конвертацию в PDF (который удаляет активные скрипты) для безопасного просмотра. Файлы MHTML также используются в фишинге: злоумышленники присылают вложение с сохраненной страницей, которая локально отображает убедительную поддельную форму входа, чтобы обойти фильтры URL. Будьте осторожны с незапрошенными вложениями .mht/.mhtml, запрашивающими учетные данные. Сам файл является инертным текстом на диске; риск заключается в том, что делают его скрипты/формы после рендеринга.
Детали формата
в двух словахПрограммы, открывающие файлы MHTML
Технические подробности
глубокая спецификация| Формат контейнера | Сообщение MIME multipart/related - основной HTML-документ плюс все ресурсы страницы (изображения, CSS, скрипты), встроенные как отдельные части MIME в один файл |
| Кодировка файла | Обычный текст UTF-8; бинарные ресурсы (изображения, шрифты) кодируются в Base64 или quoted-printable внутри каждой части MIME |
| Сигнатура файла | Нет бинарных магических байтов - файл открывается текстовыми заголовками в стиле электронной почты: `MIME-Version: 1.0`, за которым следует `Content-Type: multipart/related` |
| Основной MIME-тип | `multipart/related`; каждый встроенный подресурс имеет свой собственный MIME-тип (например, `image/jpeg`, `text/css`) |
| Альтернативное расширение | `.mht` - идентичный формат; использовался в Internet Explorer при выборе «Веб-архив, один файл» и поддерживается теми же приложениями |
| Избыточность размера | Кодирование бинарных активов в Base64 увеличивает размер файла примерно на 33 % по сравнению с суммой размеров оригинальных ресурсов |
| Граница частей | Каждый встроенный ресурс отделяется уникальной строкой-разделителем, объявленной в заголовке верхнего уровня `Content-Type: multipart/related; boundary=...` |
| Поддержка сохранения в браузерах | Google Chrome (v74+), Microsoft Edge (Chromium) и Opera нативно сохраняют страницы как `.mhtml`; Firefox требует стороннего расширения |
| Происхождение скриптов | Скрипты внутри файла `.mhtml` выполняются с источником (origin) `null` в браузерах на базе Chromium; CORS блокирует кросс-доменные сетевые запросы, которые делает страница |
| Поддержка Microsoft Office | Microsoft Word и Excel могут открывать и сохранять файлы как `.mhtml`, встраивая XML-разметку Office внутрь контейнера MIME |
| Возможность проверки | Полностью читаем человеком в любом текстовом редакторе - заголовки частей MIME, URL-адреса `Content-Location` и данные в Base64 видны как текст |
| Обработка ресурсов офлайн | Ресурсы, захваченные в момент сохранения, встраиваются; любые внешние URL, не загруженные при сохранении, упоминаются только через `Content-Location` и недоступны офлайн |
| Объявление кодировки | Кодировка части HTML объявляется как в заголовке MIME `Content-Type`, так и в теге HTML `<meta charset>`; стандартом является UTF-8 |
| Альтернатива для macOS/iOS | Apple Safari и iOS WebKit сохраняют страницы как `.webarchive` (бинарный формат plist), а не `.mhtml`, поэтому для кроссплатформенного обмена может потребоваться конвертация |
| Связь с форматами почты | Структурно идентичен сообщению электронной почты (RFC 2822); файл `.mhtml` можно переименовать в `.eml` и открыть во многих почтовых клиентах |
| Выпущен | RFC 2557 (1999); popularized by Internet Explorer's 'Web Archive, single file (.mht)' |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.rfc-editor.org |
Конвертации MHTML
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах MHTML.