Gemini (protocole)

Gemini

Informations
Fonction Transmission d'hypertexte
Sigle gemini
Date de création juin 2019
Port 1965
RFC non standardisé par l'IETF
Gemini
Caractéristiques
Extension
.gmi, .gmni, .gemini
Type MIME
text/gemini (non officiel)
Développé par
Solderpunk
Version initiale
Type de format
Spécification
Site web

Gemini est un protocole de communication client-serveur. C'est un protocole de la couche application qui utilise le protocole TCP comme couche de transport. Il permet notamment d'accéder à des documents texte simples de type hypertexte. Les échanges entre le client et le serveur sont sécurisés à l'aide du protocole TLS. Le protocole est mis au point de manière collaborative mais n'est pas un standard internet.

Présentation[modifier | modifier le code]

Le protocole a été créé afin de répondre aux dérives du web selon ses auteurs[1]. Le but n'est pas de remplacer le web ou Gopher mais de proposer une alternative[2]. Gemini est à mi-chemin entre la simplicité de Gopher et la complexité du Web, comme, dans le domaine spatial, le Programme Gemini a servi d’étape intermédiaire entre le Programme Mercury et le Programme Apollo[3]. Le port utilisé, 1965, est une référence à l’année de lancement de Gemini 3, premier vol Gemini habité.

Les ressources Gemini sont identifiées au moyen d'URL dont le schéma est gemini://. Contrairement au protocole HTTPS qui possède un équivalent non chiffré (HTTP), le protocole Gemini ne définit volontairement pas d'équivalent non-chiffré.

Le langage de balisage privilégié n'est pas HTML mais un langage léger (comme l'est Markdown) appelé Gemtext.

Implémentation[modifier | modifier le code]

Serveurs[modifier | modifier le code]

De nombreux serveurs ont été développés pour ce protocole dans des langages de programmation divers[4]. Certains possèdent des fonctionnalités avancées comme la création de Virtual Host, la prise en charge des interfaces CGI ou encore du proxy inverse.

Il existe également différents proxy permettant d'accéder à gemini via HTTP et donc en utilisant un navigateur web.

Clients[modifier | modifier le code]

Des clients sont disponibles sur les principaux systèmes d'exploitation existant. Certains n'implémentent que des fonctionnalités de bases, d'autres sont capables d'afficher des images ou de jouer un son.

Statistiques[modifier | modifier le code]

Le 23 décembre 2020, le réseau Gemini[5]comptait 506 capsules (et 64 000 URI), dont 17 % utilisaient des certificats fournis par Let's Encrypt, réparties sur 371 adresses IP dont 17 % en IPv6.

Au 11 mars 2022, le réseau Gemini comptait 2824 capsules[6].

Le projet Gemini a également fait l'objet d'une présentation lors du FOSDEM 2021[7] et son essor rapide suscite l'intérêt de la communauté pour sa prise en charge dans la commande cURL[8],[9] bien que le schéma d'URI ne soit pas enregistré auprès de l'IANA.

Bibliographie[modifier | modifier le code]

  • Lee Phillips, « Gopher, Gemini, and the rise of the small Internet », Linux Magazine, no 245,‎ (ISSN 1471-5678, lire en ligne, consulté le )

Références[modifier | modifier le code]

  1. « Blog Stéphane Bortzmeyer: Le protocole Gemini, revenir à du simple et sûr pour distribuer l'information en ligne ? », sur www.bortzmeyer.org (consulté le )
  2. « Project Gemini FAQ », sur gemini.circumlunar.space (consulté le )
  3. « Ploum.net: Gemini, le protocole du slow web », sur ploum.net (consulté le ) par Ploum
  4. Krispin Schulz, kr1sp1n/awesome-gemini, (lire en ligne)
  5. « Blog Stéphane Bortzmeyer: Developing and running an Internet crawler », sur bortzmeyer.org (consulté le )
  6. « Statistics on the Gemini space »
  7. « FOSDEM 2021 - Gemini, a modern protocol that looks retro », sur fosdem.org (consulté le )
  8. « Curl: Re: [PATCH New protocol: gemini] », sur curl.se (consulté le )
  9. « The Gemini protocol seen by this HTTP client person », sur Daniel.haxx.se (consulté le )

Liens externes[modifier | modifier le code]