
Фото 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 по крайней мере, для хостинга личных сайтов и блогов. Немаловажную роль в этом может сыграть понятная спецификация, в которой относительно легко разобраться.

Фото Sourabh Gijare Unsplash
Встретилось и альтернативное мнение. Gemini представляет собой переосмысление протокола Gopher, которому около 30 лет. Возврат к истокам интернета для некоторых выглядит как шаг назад в технологическом плане. Хотя многие проблемы Gopher разработчикам Gemini удалось разрешить например, они добавили редиректы, если контент по ссылке был перемещен, и поддержку MIME-типов.
Кто реализует на практике
Gemini использует несколько сайтов например, Gemini_Wiki с описанием возможностей протокола, разработанный уже упомянутым Алексом Шрёдером. Хотя сайт может отображаться и с использованием привычных HTTP и HTML.
Также есть специальный браузер Castor, написанный на Rust. Он поддерживает работу с протоколами Gemini и Gopher его выложили на платформе совместной разработки SourceHut. К слову, одним из последних браузеров, поддерживающих Gopher, был Firefox, но эту функцию убрали в 2010 году. Теперь отдельные энтузиасты постепенно возвращают утерянную функциональность.
Короткое пятничное видео:
Больше материалов в корпоративном блоге:



