JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email

Mas maaga sa buwang ito sa Hacker News ay aktibong tinalakay JMAP protocol binuo sa ilalim ng direksyon ng IETF. Nagpasya kaming pag-usapan kung bakit ito kailangan at kung paano ito gumagana.

JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email
/ mga stock /PD

Ang hindi ko nagustuhan sa IMAP

Protocol IMAP ay ipinakilala noong 1986. Maraming mga bagay na inilarawan sa pamantayan ay hindi na nauugnay ngayon. Halimbawa, maaaring ibalik ng protocol ang bilang ng mga linya ng isang sulat at mga checksum MD5 - Ang functionality na ito ay halos hindi ginagamit sa mga modernong email client.

Ang isa pang problema ay may kaugnayan sa pagkonsumo ng trapiko. Sa IMAP, ang mga email ay iniimbak sa server at pana-panahong naka-synchronize sa mga lokal na kliyente. Kung sa ilang kadahilanan ay masira ang kopya sa device ng user, kailangang i-synchronize muli ang lahat ng mail. Sa modernong mundo, kapag ang libu-libong mga mobile device ay maaaring konektado sa server, ang diskarte na ito ay humahantong sa pagtaas ng pagkonsumo ng trapiko at mga mapagkukunan ng computing.

Ang mga paghihirap ay lumitaw hindi lamang sa protocol mismo, kundi pati na rin sa mga email client na nagtatrabaho dito. Mula nang gawin ito, maraming beses nang sumailalim ang IMAP sa iba't ibang pagbabago - ang kasalukuyang bersyon ngayon ay IMAP4. Kasabay nito, maraming mga opsyonal na extension para dito - sa network nalathala siyamnapung RFC na may mga karagdagan. Isa sa pinakabago ay RFC8514, ipinakilala noong 2019.

Kasabay nito, maraming kumpanya ang nag-aalok ng kanilang sariling pagmamay-ari na mga solusyon na dapat gawing simple ang pagtatrabaho sa IMAP o palitan ito: Gmail, Tanawan, nylas. Ang resulta ay sinusuportahan lamang ng mga kasalukuyang email client ang ilan sa mga available na feature. Ang ganitong pagkakaiba-iba ay humahantong sa segmentasyon ng merkado.

"Bukod dito, ang isang modernong email client ay hindi lamang dapat magpasa ng mga mensahe, ngunit magagawang magtrabaho kasama ang mga contact at mag-synchronize sa kalendaryo," sabi ni Sergei Belkin, pinuno ng pag-unlad sa provider ng IaaS. 1cloud.ru. β€” Ngayon, tulad ng mga protocol ng third-party LDAP, CardDAV ΠΈ CalDAV. Pinapalubha ng diskarteng ito ang pagsasaayos ng mga firewall sa mga corporate network at nagbubukas ng mga bagong vector para sa mga cyber attack."

Ang JMAP ay idinisenyo upang malutas ang mga problemang ito. Ito ay binuo ng mga eksperto sa FastMail sa ilalim ng gabay ng Internet Engineering Task Force (IETF). Ang protocol ay tumatakbo sa tuktok ng HTTPS, gumagamit ng JSON (para sa kadahilanang ito ay angkop hindi lamang para sa pagpapalitan ng mga elektronikong mensahe, kundi pati na rin para sa paglutas ng isang bilang ng mga gawain sa cloud) at pinapasimple ang organisasyon ng pagtatrabaho sa mail sa mga mobile system. Bilang karagdagan sa pagproseso ng mga liham, nagbibigay din ang JMAP ng kakayahang magkonekta ng mga extension para sa pagtatrabaho sa mga contact at isang scheduler ng kalendaryo.

Mga tampok ng bagong protocol

Ang JMAP ay stateless protocol (stateless) at hindi nangangailangan ng permanenteng koneksyon sa mail server. Pinapasimple ng feature na ito ang trabaho sa hindi matatag na mga mobile network at nakakatipid ng baterya sa mga device.

Ang isang email sa JMAP ay kinakatawan sa isang JSON structure format. Naglalaman ito ng lahat ng impormasyon mula sa mensahe RFC5322 (Internet Message Format), na maaaring kailanganin ng mga email application. Ayon sa mga developer, ang diskarte na ito ay dapat na gawing simple ang paglikha ng mga kliyente, dahil ang paglutas ng mga potensyal na paghihirap (na nauugnay sa Mime, pagbabasa ng mga header at pag-encode) tutugon ang server.

Ginagamit ng kliyente ang API para makipag-ugnayan sa server. Upang gawin ito, bumubuo ito ng isang napatunayang kahilingan sa POST, ang mga katangian nito ay inilalarawan sa object ng session ng JMAP. Ang kahilingan ay nasa application/json na format at binubuo ng isang JSON request object. Bumubuo din ang server ng isang object ng tugon.

Π’ mga pagtutukoy (punto 3) ang mga may-akda ay nagbibigay ng sumusunod na halimbawa na may isang kahilingan:

{
  "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
  "methodCalls": [
    [ "method1", {
      "arg1": "arg1data",
      "arg2": "arg2data"
    }, "c1" ],
    [ "method2", {
      "arg1": "arg1data"
    }, "c2" ],
    [ "method3", {}, "c3" ]
  ]
}

Nasa ibaba ang isang halimbawa ng tugon na bubuo ng server:

{
  "methodResponses": [
    [ "method1", {
      "arg1": 3,
      "arg2": "foo"
    }, "c1" ],
    [ "method2", {
      "isBlah": true
    }, "c2" ],
    [ "anotherResponseFromMethod2", {
      "data": 10,
      "yetmoredata": "Hello"
    }, "c2"],
    [ "error", {
      "type":"unknownMethod"
    }, "c3" ]
  ],
  "sessionState": "75128aab4b1b"
}

Ang buong detalye ng JMAP na may mga halimbawang pagpapatupad ay matatagpuan sa opisyal na website proyekto. Doon ay nag-post din ang mga may-akda ng isang paglalarawan ng mga pagtutukoy para sa Mga Contact ng JMAP ΠΈ Mga Kalendaryo ng JMAP β€” ang mga ito ay naglalayong magtrabaho kasama ang mga kalendaryo at mga listahan ng contact. Sa pamamagitan ng ayon sa ang mga may-akda, Mga Contact at Mga Kalendaryo ay pinaghiwalay sa magkahiwalay na mga dokumento upang sila ay higit pang mabuo at ma-standardize nang hiwalay sa "core". Mga source code para sa JMAP - sa mga repositoryo sa GitHub.

JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email
/ mga stock /PD

Prospect

Sa kabila ng katotohanan na ang gawain sa pamantayan ay hindi pa opisyal na nakumpleto, ito ay ipinatupad na sa mga kapaligiran ng produksyon. Halimbawa, ang mga tagalikha ng open mail server Cyrus IMAP ipinatupad ang bersyon ng JMAP nito. Mga developer mula sa FastMail pinakawalan server framework para sa bagong protocol sa Perl, at ipinakita ang mga may-akda ng JMAP proxy server.

Maaari nating asahan na sa hinaharap ay dadami ang mga proyektong nakabase sa JMAP. Halimbawa, may ilang posibilidad na ang mga developer mula sa Open-Xchange, na gumagawa ng IMAP server para sa mga Linux system, ay lumipat sa bagong protocol. Talagang tanggihan ang IMAP sa kanila tanong ng mga miyembro ng komunidad, na nabuo sa paligid ng mga tool ng kumpanya.

Sinasabi ng mga developer mula sa IETF at FastMail na parami nang parami ang mga user na nakakakita ng pangangailangan para sa isang bagong bukas na pamantayan para sa pagmemensahe. Ang mga may-akda ng JMAP ay umaasa na sa hinaharap ay mas maraming kumpanya ang magsisimulang ipatupad ang protocol na ito.

Ang aming mga karagdagang mapagkukunan at mapagkukunan:

JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email Paano suriin ang cookies para sa pagsunod sa GDPR - makakatulong ang isang bagong bukas na tool

JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email Paano Mag-save gamit ang Application Programming Interface
JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email DevOps sa isang cloud service gamit ang halimbawa ng 1cloud.ru
JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email Ang ebolusyon ng cloud architecture 1cloud

JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email Mga Potensyal na Pag-atake sa HTTPS at Paano Magpoprotekta Laban sa Kanila
JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email Paano protektahan ang isang server sa Internet: karanasan sa 1cloud.ru
JMAP - isang bukas na protocol na papalit sa IMAP kapag nagpapalitan ng mga email Isang maikling programang pang-edukasyon: ano ang Patuloy na Pagsasama

Pinagmulan: www.habr.com

Magdagdag ng komento