Plus tôt ce mois-ci
, le protocole JMAP,
développé sous la direction de l'IETF , a
été activement discuté à Hacker News. Nous avons décidé de parler des raisons pour lesquelles cela était nécessaire et comment cela fonctionne.
/ PxHere / PDCe qui n'a pas plu à IMAP
IMAP a été introduit en 1986. Beaucoup des choses décrites dans la norme ne sont plus pertinentes aujourd'hui. Par exemple, le protocole peut renvoyer le nombre de lignes de message et de
sommes de contrôle MD5 - cette fonctionnalité n'est pratiquement pas utilisée dans les clients de messagerie modernes.
Un autre problème est la consommation de trafic. Dans le cas d'IMAP, les e-mails sont stockés sur le serveur et synchronisés périodiquement avec les clients locaux. Si, pour une raison quelconque, la copie sur l'appareil de l'utilisateur "se gâte", vous devez resynchroniser tous les messages. Dans le monde moderne, lorsque des milliers d'appareils mobiles peuvent être connectés au serveur, cette approche entraîne une consommation accrue de trafic et de ressources informatiques.
Des difficultés surviennent non seulement avec le protocole lui-même, mais aussi avec les clients de messagerie qui fonctionnent avec lui. Depuis sa création, IMAP a subi plusieurs révisions à plusieurs reprises - la version actuelle est IMAP4 aujourd'hui. De plus, il existe de nombreuses extensions optionnelles pour lui - quatre-vingt-dix RFC avec ajouts sont
publiés sur le réseau. L'un des plus récents est le
RFC8514 , introduit en 2019.
Dans le même temps, de nombreuses entreprises proposent leurs propres solutions propriétaires qui devraient simplifier le travail avec IMAP ou même le remplacer:
Gmail ,
Outlook ,
Nylas . Le résultat est que les clients de messagerie existants ne prennent en charge que quelques-unes des fonctionnalités disponibles. Cette diversité entraîne une segmentation du marché.
«De plus, un client de messagerie moderne ne doit pas seulement transférer des messages, mais être capable de travailler avec des contacts et de se synchroniser avec le calendrier», explique Sergey Belkin, responsable du développement pour le fournisseur IaaS 1cloud.ru . - Aujourd'hui, des protocoles tiers tels que LDAP , CardDAV et CalDAV sont utilisés à ces fins. Cette approche complique la configuration des pare-feu dans les réseaux d'entreprise et ouvre de nouveaux vecteurs pour les cyberattaques. »
JMAP est appelé pour résoudre les problèmes désignés. Il est développé par des experts de FastMail sous la direction de l'Internet Engineering Council (IETF). Le protocole fonctionne au-dessus de HTTPS, utilise JSON (pour cette raison, il convient non seulement pour échanger des messages électroniques, mais aussi pour résoudre un certain nombre de tâches dans le cloud) et simplifie l'organisation du travail avec le courrier dans les systèmes mobiles. En plus de traiter les lettres, JMAP offre également la possibilité de connecter des extensions pour travailler avec des contacts et le planificateur de calendrier.
Caractéristiques du nouveau protocole
JMAP est
un protocole sans état et ne nécessite pas de connexion permanente au serveur de messagerie. Cette fonctionnalité simplifie le travail dans les réseaux mobiles instables et économise les appareils alimentés par batterie.
L'e-mail dans JMAP est présenté au format d'une structure JSON. Il contient toutes les informations du message
RFC5322 (format de message Internet) dont les applications de messagerie peuvent avoir besoin. Selon les développeurs, cette approche devrait simplifier la création de clients, car le serveur sera chargé de résoudre les difficultés potentielles (liées au
MIME , à la lecture des en-têtes et au codage).
Le client utilise l'API pour accéder au serveur. Pour ce faire, il génère une requête POST authentifiée, dont les propriétés sont décrites dans l'objet de session JMAP. La demande est au format application / json et se compose d'un seul objet de demande JSON. Le serveur génère également un objet de réponse unique.
Dans la
spécification (paragraphe 3), les auteurs donnent l'exemple suivant avec une requête:
{ "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ], "methodCalls": [ [ "method1", { "arg1": "arg1data", "arg2": "arg2data" }, "c1" ], [ "method2", { "arg1": "arg1data" }, "c2" ], [ "method3", {}, "c3" ] ] }
Voici un exemple de la réponse que le serveur formera:
{ "methodResponses": [ [ "method1", { "arg1": 3, "arg2": "foo" }, "c1" ], [ "method2", { "isBlah": true }, "c2" ], [ "anotherResponseFromMethod2", { "data": 10, "yetmoredata": "Hello" }, "c2"], [ "error", { "type":"unknownMethod" }, "c3" ] ], "sessionState": "75128aab4b1b" }
La spécification JMAP complète avec des exemples d'implémentation est disponible sur
le site officiel du projet. Au même endroit, les auteurs ont publié une description des spécifications des
contacts JMAP et des
calendriers JMAP - ils visent à travailler avec des calendriers et des listes de contacts. Selon
les auteurs, les contacts et les calendriers ont été séparés dans des documents distincts afin de pouvoir être développés et standardisés indépendamment du «noyau». Le code source de JMAP se trouve dans le
référentiel sur GitHub .
/ PxHere / PDPerspectives
Bien que le travail sur la norme n'ait pas encore été officiellement achevé, elle est déjà mise en œuvre dans des environnements de production. Par exemple, les créateurs du serveur de messagerie ouvert
Cyrus IMAP ont implémenté sa version JMAP. Les développeurs de FastMail ont
publié une infrastructure de serveur pour le nouveau protocole Perl, tandis que les auteurs de JMAP ont introduit un
serveur proxy .
On peut s'attendre à ce qu'à l'avenir, il y ait de plus en plus de projets basés sur JMAP. Par exemple, il est probable que les développeurs d'Open-Xchange créeront un nouveau protocole et créeront un serveur IMAP pour les systèmes Linux. Pour refuser IMAP, ils sont très
sollicités par les membres de la communauté qui s'est formée autour des outils de l'entreprise.
Les développeurs de l'IETF et de FastMail affirment que de plus en plus d'utilisateurs voient la nécessité d'un nouveau standard ouvert pour la messagerie. Les auteurs de JMAP espèrent qu'à l'avenir davantage d'entreprises commenceront à mettre en œuvre ce protocole.
Nos ressources et sources supplémentaires:
Comment vérifier la conformité des cookies au RGPD - un nouvel outil ouvert vous aidera
Comment économiser de l'argent en utilisant l'interface de programmation d'application
DevOps dans un service cloud en utilisant 1cloud.ru comme exemple
1cloud Cloud Architecture Evolution
Attaques potentielles contre HTTPS et moyens de se protéger contre celles-ci
Comment protéger un serveur sur Internet: expérience 1cloud.ru
Programme éducatif court: qu'est-ce que l'intégration continue