Caractéristiques techniques de MMM

Documents de références, standards

Le développement de MMM a été dicté par le respect des différents standards en vigueur ou proposés pour les applications Web. Ces standards sont pour la plupart définis par des RFCs ou des recommandations du Consortium Web :

Toutefois, il faut noter que le butineur MMM n'est pas toujours conforme à ces spécifications. Quelques lacunes connues sont décrites ci-dessous. Si vous trouvez d'autres cas de non-respect des standard, merci de me les rapporter, en donnant si possible

Attention

MMM est beaucoup moins tolérant que les autres navigateurs pour les documents incorrects. Aussi, si MMM se plaint d'erreurs dans un document ou n'affiche pas ce document correctement selon vous, alors que Mozilla ou Explorer ne disent rien, le coupable n'est pas forcément MMM, ce peut être le document. De plus, et ca ne sera jamais assez répété:

L'implantation des tables est boguée.
L'implantation des tables est boguée.
L'implantation des tables est boguée.
L'implantation des tables est boguée.
L'implantation des tables est boguée.
L'implantation des tables est boguée.
L'implantation des tables est boguée.
L'implantation des tables est boguée.
Voilà. Vous êtes prévenus.
Et en plus elle est lente.
Et elle consomme beaucoup de mémoire.
Merci de ne pas vous plaindre au sujet des tables. Je crois sincèrement qu'il n'y a aucun moyen de les supporter correctement avec la version courante de Tk (4.2).

Composants

Logiquement parlant, le butineur est formé de plusieurs composants relativement indépendants.

Protocoles

Afficheur HTML

MMM implémente un afficheur HTML (documents de type text/html), conforme à HTML 2.0, et sur quelques points à HTML 3.2. L'analyse lexicale et syntaxique de HTML se fait en respect (en principe) de SGML (sous ensemble utilisé par les standards HTML) et des DTD respectives de HTML 2.0 et HTML 3.2. Seules les règles de minimisation de SGML sont utilisées. L'analyse syntaxique ne vérifie pas les attributs des balises (l'afficheur par contre en vérifie naturellement certains). La capacité d'afficher des images in-line est exactement déterminée par les types d'images supportés par Tk. Actuellement, Tk sait charger des images GIF, de type MIME image/gif, (sauf les GIF interlacés et les GIF animés, et avec un traitement approximatif des GIF transparents), les images PNM et XBM. Des extensions de Tk sous forme de bibliothèque partagées chargées dynamiquement peuvent permettre l'affichage de nouveaux formats d'image. Actuellement, il est ainsi possible de charger des images PNG et JPEG (non progressives, et autres restrictions). Dans les versions récentes de MMM, les GIFs animés sont supportés grâce à une gestion spéciale.

Chargement des images

Il existe plusieurs mode de chargement des images, configurable dans les Préférences. Le chargement des images se fait par une file d'attente, avec une limite sur le nombre maximum de connexions réseaux réservées aux images in-line.

Autres afficheurs

Pour les autres types de documents (hormis text/plain pour lequel il existe également un afficheur interne), MMM fait appel à metamail. Une configuration correcte de metamail, à travers le fichier ~/.mailcap, permet de visualiser correctement la plupart des documents présents sur le Web.

Cache

Il existe deux niveaux de cache dans MMM: le premier niveau est un cache graphique, qui consiste à garder un certain nombre de documents affichés par fenêtre du navigateur en réserve. Le deuxième niveau est un cache en mémoire, qui garde un certain nombre de documents, uniquement de type text/html.

Bugs connus

Non respect des standards HTML
Les problèmes suivants sont connus
Protocole HTTP
Seul le sous-ensemble le plus communément utilisé de HTTP/1.0 est implémenté. Seules les méthodes GET, HEAD and POST sont supportées.