All'inizio del mese su Hacker News del protocollo JMAP, . Abbiamo deciso di parlare di perché sia stato necessario e come funziona.
/ / PD
Cosa non va con l'IMAP
Protocollo è stato introdotto nel 1986. Molti aspetti descritti nello standard non sono più attuali oggi. Ad esempio, il protocollo è in grado di restituire il numero di righe di un'email e le checksum — questa funzionalità è praticamente inutilizzata nei moderni client di posta.
Un altro problema è legato al consumo di traffico. Nel caso dell'IMAP, le email sono memorizzate sul server e sincronizzate periodicamente con i client locali. Se per qualche motivo la copia sul dispositivo dell'utente si 'rovina', è necessario risincronizzare l'intera posta. In un mondo moderno, dove migliaia di dispositivi mobili possono connettersi al server, questo approccio porta a un aumento del consumo di traffico e delle risorse computazionali.
Le complessità non riguardano solo il protocollo stesso, ma anche i client di posta che lo utilizzano. Da quando è stato creato, l'IMAP ha subito numerose revisioni: la versione attuale è l'IMAP4. Esistono molte estensioni opzionali per questo protocollo nel rete. novanta RFC con aggiustamenti. Uno dei più recenti è , presentato nel 2019.
Molte aziende offrono anche soluzioni proprietarie, progettate per semplificare l'uso di IMAP o per sostituirlo del tutto: , , . Ciò significa che i client di posta esistenti supportano solo alcune delle funzionalità disponibili. Questa varietà porta a una segmentazione del mercato.
«Inoltre, un moderno client di posta non deve semplicemente inoltrare messaggi, ma deve essere in grado di gestire contatti e sincronizzarsi con il calendario», afferma Sergey Belkin, responsabile dello sviluppo del provider IaaS . «Oggi, per questi scopi, si utilizzano protocolli esterni come , e . Questo approccio complica la configurazione dei firewall nelle reti aziendali e apre nuovi vettori per gli attacchi informatici.
JMAP è progettato per affrontare questi problemi. È sviluppato da specialisti di FastMail sotto la guida del Consiglio di ingegneria di Internet (IETF). Il protocollo funziona sopra HTTPS, utilizza JSON (per questo motivo è adatto non solo per lo scambio di email, ma anche per risolvere una serie di compiti nel cloud) e semplifica l'organizzazione del lavoro con la posta nei sistemi mobili. Oltre a gestire le email, JMAP prevede anche la possibilità di collegare estensioni per lavorare con contatti e un calendario-pianificatore.
Caratteristiche del nuovo protocollo
JMAP è (stateless) e non richiede una connessione costante con il server di posta. Questa caratteristica semplifica l'uso in reti mobili instabili e consente di risparmiare la batteria dei dispositivi.
Un'email in JMAP è rappresentata in formato JSON. Contiene tutte le informazioni del messaggio (Internet Message Format), che potrebbe essere utile per le applicazioni di posta. Secondo gli sviluppatori, questo approccio dovrebbe semplificare la creazione di client, poiché il server gestirà le potenziali complessità (relative a , la lettura degli header e la codifica).
Per interagire con il server, il client utilizza l'API. A tal fine, forma una richiesta POST autenticata, le cui proprietà sono descritte nell'oggetto sessione JMAP. La richiesta ha formato application/json ed è composta da un solo oggetto JSON di richiesta. Il server genera anche un oggetto di risposta.
In (punto 3) gli autori forniscono il seguente esempio di richiesta:
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Di seguito è riportato un esempio di risposta che genererà il server:
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hello"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
È possibile trovare la specifica JMAP completa con esempi di implementazione su progetti. Lì, gli autori hanno pubblicato la descrizione delle specifiche per e – sono destinati a lavorare con calendari e liste di contatti. Secondo degli autori, Contacts e Calendars sono stati separati in documenti distinti, in modo da poter essere sviluppati e standardizzati indipendentemente dal "nucleo". I codici sorgente per JMAP sono disponibili nel .

/ / PD
Prospettive
Nonostante il fatto che ufficialmente il lavoro sullo standard non sia ancora completato, è già in fase di implementazione in ambienti di produzione. Ad esempio, i creatori del server di posta open source hanno realizzato la versione JMAP. Gli sviluppatori di FastMail un framework server per il nuovo protocollo in Perl, e gli autori di JMAP hanno presentato .
Ci si può aspettare che in futuro ci saranno sempre più progetti basati su JMAP. Ad esempio, esiste una certa probabilità che gli sviluppatori di Open-Xchange, che stanno creando un server IMAP per sistemi Linux, passeranno al nuovo protocollo. I membri della community , formata attorno agli strumenti dell'azienda.
Gli sviluppatori di IETF e FastMail affermano che sempre più utenti vedono la necessità di un nuovo standard aperto per la messaggistica. Gli autori di JMAP sperano che in futuro più aziende inizieranno a implementare questo protocollo.
Le nostre risorse e fonti aggiuntive:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Fonte: habr.com
