Ce qu'est un fichier MHT
Quand Internet Explorer, Word ou l'option Enregistrer au format MHTML de Chrome ont écrit une page dans un seul fichier, ils ont produit un message électronique conforme à la RFC 2557. Un corps multipart/related contient le HTML et toutes les images, feuilles de style et scripts que la page référençait, chaque partie étiquetée avec l'URL dont elle provient. C'est un format parfaitement raisonnable que presque plus rien n'ouvre.
Comment la page est affichée
Les parties sont séparées, chacune est décodée depuis son codage de transfert (généralement quoted-printable pour le texte, base64 pour les images), puis les références du HTML racine sont réécrites. Cette dernière étape est tout le travail : chaque src, href et url() CSS pointe encore vers l'adresse absolue d'origine, si bien que sans réécriture la page s'affiche nue. Chaque référence est appariée à la partie enregistrée pour elle — par Content-Location, ou par Content-ID pour les références cid: — et pointe désormais vers les octets de cette partie.
Rien n'est récupéré, rien ne s'exécute
La page reconstruite est placée dans une iframe avec sandbox="allow-same-origin" et rien d'autre. Il n'y a pas d'allow-scripts : aucun script de l'archive ne peut s'exécuter.
Une Content-Security-Policy en default-src 'none' est en outre injectée dans la page. Cela compte plus qu'il n'y paraît : toute référence que l'archive n'a pas enregistrée reste une URL http absolue après réécriture, et un navigateur qui l'affiche irait la chercher discrètement. La politique l'en empêche. Seules les URL blob: et data: — les parties qui sont dans le fichier — sont autorisées.
Archives incomplètes
Les archives web sont enregistrées de façon incomplète en permanence : une image de fond déclarée dans une feuille de style que l'enregistreur n'a pas suivie, une image chargée paresseusement, une police sur un autre domaine. Ces références sont comptées et listées. Si la page semble fausse, cette liste explique généralement pourquoi, et c'est une bien meilleure réponse qu'une icône d'image cassée.
Également affiché
L'objet, la date d'enregistrement de la page et l'URL d'origine — le Content-Location de la partie racine, d'où la page venait réellement. Plus chaque partie avec son type MIME, son codage de transfert, son jeu de caractères déclaré et sa taille décodée, ainsi qu'un basculement pour lire le code source du HTML racine.
Confidentialité
L'archive est ouverte dans votre navigateur. Elle n'est pas envoyée, et ni elle ni l'outil ne contactent le réseau.
Tiny Online Tools







