Co to jest format pliku MHTML?
Plik .mhtml - zapisywany również z rozszerzeniem .mht - to archiwum internetowe MIME HTML, które łączy całą stronę internetową w jeden przenośny dokument. Pakuje on znaczniki .html strony wraz ze wszystkimi jej obrazami, arkuszami stylów i skryptami, przechowując każdy zasób jako oddzielną część MIME w tym samym pliku.
Format ten wykorzystuje tę samą strukturę wiadomości wieloczęściowych, co pliki e-mail .eml. Osadzone zasoby są kodowane w formacie Base64 lub quoted-printable, co pozwala na przesyłanie zasobów binarnych wewnątrz kontenera tekstowego. Ponieważ nie istnieje binarna sygnatura (magic number), plik .mhtml można otworzyć w dowolnym edytorze tekstu; zaczyna się on od nagłówków w stylu e-mail, takich jak MIME-Version: 1.0, Content-Type: multipart/related; boundary=..., Subject: oraz Date:.
Internet Explorer spopularyzował ten format poprzez opcję zapisu „Archiwum sieciowe, pojedynczy plik (.mht)”. Obecnie Google Chrome (od wersji 74), Microsoft Edge (oparty na Chromium) oraz Opera natywnie obsługują zapisywanie stron jako .mhtml. Microsoft Word również potrafi otwierać i eksportować dokumenty w tym formacie.
W systemach macOS i iOS przeglądarka Safari domyślnie używa formatu .webarchive. Firefox nie obsługuje natywnie zapisywania stron jako .mhtml; lukę tę wypełniają rozszerzenia przeglądarki. Wsparcie w przeglądarkach na Android pozostaje niespójne.
- Aby zapisać stronę jako
.mhtmlw Chrome lub Edge: Plik → Zapisz stronę jako → Strona internetowa, pojedynczy plik - Aby sprawdzić surową strukturę: otwórz w dowolnym edytorze tekstu - wszystkie granice MIME i nagłówki są czytelne
Bezpieczeństwo
RYZYKO: MEDIUMPlik .mhtml osadza wszystko, co zawierała oryginalna strona, w tym JavaScript, który może zostać uruchomiony po otwarciu pliku w przeglądarce - dlatego należy traktować MHTML z niezaufanego źródła jak każdą niezaufaną stronę internetową: nie otwierać niespodziewanych plików i preferować konwersję do PDF (który usuwa aktywne skrypty) dla bezpiecznego podglądu. Pliki MHTML są również wykorzystywane w phishingu: atakujący wysyłają załącznik z zapisaną stroną, który lokalnie renderuje przekonujący, fałszywy formularz logowania, aby ominąć filtry URL, więc należy uważać na nieoczekiwane załączniki .mht/.mhtml proszące o dane uwierzytelniające. Sam plik jest bezwładnym tekstem na dysku; ryzyko tkwi w tym, co robią jego skrypty/formularze po wyrenderowaniu.
Szczegóły formatu
w pigułceProgramy otwierające pliki MHTML
Szczegóły techniczne
specyfikacja| Format kontenera | Wiadomość MIME multipart/related - główny dokument HTML plus wszystkie zasoby strony (obrazy, CSS, skrypty) osadzone jako oddzielne części MIME w jednym pliku |
| Kodowanie pliku | Zwykły tekst UTF-8; zasoby binarne (obrazy, fonty) są kodowane w Base64 lub quoted-printable wewnątrz każdej części MIME |
| Sygnatura pliku | Brak binarnych bajtów magicznych - plik zaczyna się od tekstowych nagłówków w stylu e-mail: `MIME-Version: 1.0`, a następnie `Content-Type: multipart/related` |
| Podstawowy typ MIME | `multipart/related`; każdy osadzony podzasób posiada własny typ MIME (np. `image/jpeg`, `text/css`) |
| Alternatywne rozszerzenie | `.mht` - identyczny format; używany przez opcję zapisu „Archiwum sieciowe, pojedynczy plik” w Internet Explorer i obsługiwany przez te same aplikacje |
| Narzut rozmiaru | Kodowanie Base64 zasobów binarnych zwiększa rozmiar pliku o około 33 % w porównaniu do sumy rozmiarów oryginalnych zasobów |
| Granica części | Każdy osadzony zasób jest oddzielony unikalnym ciągiem granicznym (boundary) zadeklarowanym w nagłówku najwyższego poziomu `Content-Type: multipart/related; boundary=...` |
| Obsługa zapisu w przeglądarkach | Google Chrome (v74+), Microsoft Edge (Chromium) oraz Opera natywnie zapisują strony jako `.mhtml`; Firefox wymaga rozszerzenia zewnętrznego |
| Pochodzenie skryptów | Skrypty wewnątrz pliku `.mhtml` są wykonywane z pochodzeniem `null` w przeglądarkach opartych na Chromium; CORS blokuje żądania sieciowe cross-origin wykonywane przez stronę |
| Obsługa Microsoft Office | Microsoft Word i Excel mogą otwierać i zapisywać pliki jako `.mhtml`, osadzając znaczniki Office XML wewnątrz kontenera MIME |
| Możliwość inspekcji | W pełni czytelny dla człowieka w dowolnym edytorze tekstu - nagłówki części MIME, adresy URL `Content-Location` i dane zakodowane w Base64 są widoczne jako tekst |
| Obsługa zasobów offline | Zasoby przechwycone w momencie zapisu są osadzone; wszelkie zewnętrzne adresy URL niepobrane podczas zapisywania są przywoływane tylko przez `Content-Location` i niedostępne offline |
| Deklaracja kodowania znaków | Kodowanie części HTML jest deklarowane zarówno w nagłówku MIME `Content-Type`, jak i w tagu HTML `<meta charset>`; standardem jest UTF-8 |
| Alternatywa dla macOS/iOS | Apple Safari i iOS WebKit zapisują strony jako `.webarchive` (binarny format plist) zamiast `.mhtml`, więc udostępnianie międzyplatformowe może wymagać konwersji |
| Relacja z formatem e-mail | Strukturalnie identyczny z wiadomością e-mail (RFC 2822); plik `.mhtml` można zmienić na `.eml` i otworzyć w wielu klientach pocztowych |
| Wydano | RFC 2557 (1999); popularized by Internet Explorer's 'Web Archive, single file (.mht)' |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | www.rfc-editor.org |
Konwersje MHTML
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki MHTML.