https://image.nostr.build/e4c38ca61dbf37c9433756440674620360899e6f30cd00266b031ce0a73b03f8.jpg
O protocolo **Gemini** é um protocolo de comunicação da camada de aplicação projetado para acessar documentos remotos, situando-se em termos de complexidade entre o #Gopher e a Web moderna (HTTP). Lançado em 2019, ele foca na #simplicidade, #privacidade e no compartilhamento eficiente de informações textuais.
Abaixo estão os detalhes de como o protocolo funciona tecnicamente:
### 1. Modelo de Conexão e Segurança
* **Transporte e Porta:** O Gemini utiliza o protocolo **TCP** como camada de transporte e opera por padrão na **porta 1965**.
* **TLS Obrigatório:** Diferente do HTTP, o Gemini exige o uso obrigatório de **criptografia TLS** para todas as conexões. Não existe uma versão não criptografada do protocolo.
* **Conexões Efêmeras:** O protocolo utiliza uma conexão separada para cada solicitação de recurso, e a conexão é encerrada imediatamente após o envio da resposta pelo servidor.
### 2. O Ciclo de Requisição e Resposta
O funcionamento do Gemini segue um modelo direto de requisição e resposta:
* **A Requisição:** O cliente envia uma mensagem contendo apenas a **URL do recurso** (usando o esquema `gemini://`), terminada por uma quebra de linha (CRLF).
* **O Cabeçalho de Resposta:** O servidor responde com um cabeçalho composto por um **código de status de dois dígitos**, um espaço e um campo "meta", também terminados por CRLF.
* **O Conteúdo:** Se a solicitação for bem-sucedida (status **20**), o campo "meta" especifica o tipo MIME (geralmente `text/gemini`) e os dados do arquivo seguem imediatamente após o cabeçalho.
### 3. Formato de Conteúdo (Gemtext)
O formato nativo de documentos no Gemini é o **Gemtext** (arquivos com extensão **.gmi**).
* **Minimalismo:** O #Gemtext é orientado por linhas e simplifica a renderização, oferecendo suporte apenas para três níveis de títulos, listas simples, blocos de texto pré-formatado, citações e linhas de links.
* **Sem Elementos Dinâmicos:** O protocolo foi projetado para ser deliberadamente não extensível, por isso **não suporta cookies, JavaScript, cabeçalhos de rastreamento ou pop-ups**.
* **Imagens e Mídia:** Diferente da Web, os navegadores #Gemini geralmente baixam apenas o texto, e links para imagens ou outros recursos são tratados separadamente, sem carregamento automático de recursos externos embutidos no documento.
### 4. Terminologia do "Geminispace"
* **Cápsulas:** No ecossistema #Gemini, os sites ou páginas hospedadas são chamados de **cápsulas**.
* **Geminispace:** O conjunto de todos os recursos e cápsulas públicas disponíveis através do protocolo é conhecido como #Geminispace.
* **Clientes:** Para acessar esse conteúdo, é necessário um navegador específico (cliente) que suporte o protocolo, como o #Lagrange, #Amfora ou #Elpher.