Почему появился и как устроен протокол Gemini

Рассказываем, как этот клиент-серверный протокол связан с Gopher, и где с ним поработать.

agfeggbalgcfjmh7b1hrcwh-kb8.jpeg
Фото — ZU photography — Unsplash

Что это за протокол


Gemini — это клиент-серверный протокол для передачи файлов, ориентированный на скорость. В каком-то смысле он является заменой WWW. Его автор — инженер, скрывающийся под ником Solderpunk. Но в разработке протокола активно участвовало ИТ-сообщество — например, свой вклад внес создатель открытого вики-движка Oddmuse Алекс Шрёдер (Alex Schroeder).

Как он устроен


Реализация Gemini напоминает Gopher. Это — протокол, который был популярен в начале 1990-х и служил своеобразной заменой FTP. На его основе была построена система распространения информации из группы связанных гиперссылками меню — с директориями, файлами и ссылками на другие страницы. Сами страницы были без оформления и скриптов.


Аналогичным образом дела обстоят в Gemini — ответ протокола содержит только текст или бинарные данные. Он не поддерживает сжатие, разбиение сообщений и методы сетевого кодирования. Сервер разрывает соединение сразу после передачи последнего байта и не отправляет сообщение end of response. Gemini требует, чтобы все транзакции производились с использованием TLS 1.2 или выше.

Протокол работает по TCP/IP с портом 1965 и имеет одноименный идентификатор ресурса (URI). Его синтаксис прописан в RFC 3986. URL закодирован UTF-8 и имеет максимальную длину в 1024 байта.

Что думают о протоколе


В треде на Hacker News высказали мнение, что новый протокол может стать альтернативой WWW — по крайней мере, для хостинга личных сайтов и блогов. Немаловажную роль в этом может сыграть понятная спецификация, в которой относительно легко разобраться.

jsfie2cnnyxafgluxohrxpfzokw.jpeg
Фото — Sourabh Gijare — Unsplash

Встретилось и альтернативное мнение. Gemini представляет собой переосмысление протокола Gopher, которому около 30 лет. Возврат к истокам интернета для некоторых выглядит как шаг назад в технологическом плане. Хотя многие проблемы Gopher разработчикам Gemini удалось разрешить — например, они добавили редиректы, если контент по ссылке был перемещен, и поддержку MIME-типов.

Кто реализует на практике


Gemini использует несколько сайтов — например, Gemini_Wiki с описанием возможностей протокола, разработанный уже упомянутым Алексом Шрёдером. Хотя сайт может отображаться и с использованием привычных HTTP и HTML.

Также есть специальный браузер Castor, написанный на Rust. Он поддерживает работу с протоколами Gemini и Gopher — его выложили на платформе совместной разработки SourceHut. К слову, одним из последних браузеров, поддерживающих Gopher, был Firefox, но эту функцию убрали в 2010 году. Теперь отдельные энтузиасты постепенно возвращают утерянную функциональность.


Короткое пятничное видео:



Больше материалов в корпоративном блоге:

nh3bvginmatsrsxcu6loffpn5yc.pngИстория системы доменных имен: «войны» протоколов
nh3bvginmatsrsxcu6loffpn5yc.pngПотенциальные атаки на HTTPS и как от них защититься
nh3bvginmatsrsxcu6loffpn5yc.pngУчастие в open source проектах может быть выгодным для компаний — почему и что это дает
nh3bvginmatsrsxcu6loffpn5yc.pngКраткая история Fidonet — проекта, которому «нет дела» до победы над интернетом

© Habrahabr.ru