Gemini es un protocolo de comunicación de Internet de capa de aplicación para acceder a documentos remotos, similar a HTTP y Gopher . Viene con un formato de documento especial, comúnmente conocido como "gemtext", que permite vincular a otros documentos. Iniciado por una persona seudónima conocida como Solderpunk, el protocolo se está finalizando de forma colaborativa y, a octubre de 2022 [actualizar], no se ha enviado a la organización IETF para su estandarización .
El proyecto Gemini fue iniciado en junio de 2019 por Solderpunk. Una comunidad informal de usuarios ha realizado trabajos adicionales. Según las preguntas frecuentes de Solderpunk, Gemini no pretende reemplazar a Gopher o HTTP, sino coexistir con ellos. [1] Gran parte del desarrollo se realizó en la lista de correo Gemini hasta que la lista desapareció a fines de 2021 debido a un problema de hardware. [2] La creación del grupo de noticias de Usenet comp.infosystems.gemini en octubre de 2021 fue el primer grupo de noticias nuevo en la jerarquía de Big Eight en ocho años. [3]
La especificación Gemini define tanto el protocolo Gemini como un formato de archivo nativo para ese protocolo, análogo a HTML para HTTP, conocido como "gemtext". El diseño está inspirado en Gopher , pero con modernizaciones como el uso obligatorio de Transport Layer Security (TLS) para conexiones y un formato de hipertexto como tipo de contenido nativo. [4]
El diseño no es fácilmente extensible deliberadamente, con el fin de cumplir con el objetivo de simplicidad del proyecto. [5]
Gemini está diseñado dentro del marco de la suite de protocolos de Internet . Al igual que HTTP/S, Gemini funciona como un protocolo de solicitud-respuesta en el modelo informático cliente-servidor. Un servidor Gemini debería escuchar en el puerto TCP 1965. Un navegador Gemini, por ejemplo, puede ser el cliente y una aplicación que se ejecuta en una computadora que aloja un sitio Gemini puede ser el servidor . El cliente envía un mensaje de solicitud Gemini al servidor, y el servidor envía de vuelta un mensaje de respuesta . Gemini utiliza una conexión separada al mismo servidor para cada solicitud de recurso. [6]
Gemini exige el uso de TLS con funciones relacionadas con la privacidad y se recomienda enfáticamente la verificación de confianza en el primer uso (TOFU). [7]
Los recursos de Gemini se identifican y ubican en la red mediante localizadores uniformes de recursos (URL), utilizando el esquema URI gemini:// . Una solicitud de Gemini consta únicamente de dicha URL, terminada en CRLF
; el encabezado de una respuesta de Gemini consta de un código de estado de dos dígitos, un espacio y un campo "meta", también terminado en CRLF
. Si el servidor logra encontrar el archivo solicitado, el campo "meta" es el tipo MIME del archivo devuelto y después del encabezado siguen los datos del archivo.
El formato Gemtext está orientado a líneas y los tres primeros caracteres de una línea determinan su tipo. La sintaxis incluye marcado para titulares, elementos de listas planas, texto preformateado, citas y líneas de enlace. Al igual que con el hipertexto HTTP, los URI se codifican como hipervínculos para formar documentos de hipertexto interconectados en la "web" de Gemini, a la que los usuarios se refieren como Geminispace . [1]
El término "espacio Gemini" designa el conjunto de recursos públicos que la comunidad Gemini publica en Internet a través del protocolo Gemini. De esta forma, Gemini abarca una red de comunicación alternativa, con documentos de hipertexto, incluidos hipervínculos a otros recursos de fácil acceso para el usuario. [1]
A partir de julio de 2024, [actualizar]Geminispace consta de alrededor de 3900 apariciones de Gemini conocidas en línea ("cápsulas") identificadas mediante el rastreo de más de 600 000 URI. [8]
La lista de software de Gemini incluye cliente, servidor, bibliotecas y herramientas. [9] Los servidores proxy
de Gemini a HTTP como Mozz.us pueden ser utilizados por navegadores web que no son compatibles con Gemini. [10]
Gemini es elogiado por su simplicidad, pero criticado por "excluir a las personas que utilizan navegadores web comunes". [11] Se ha dicho que la utilidad de Gemini "depende de los tipos de contenido disponibles en Gemini y de si resulta atractivo o no". [5] Stéphane Bortzmeyer ha dicho que Gemini es retro pero con características modernas. [12]
5 El tipo de medio text/gemini. Los cuerpos de respuesta del tipo "text/gemini" son un tipo de formato de hipertexto liviano, que se inspira en gophermaps y en Markdown.
1 Descripción general. Las conexiones se cierran al final de una sola transacción y no se pueden reutilizar.
4.2 Validación de certificados de servidor. Los clientes pueden validar las conexiones TLS como quieran (incluso no hacerlo en absoluto), pero el enfoque más recomendado es implementar un sistema de fijación de certificados "TOFU" liviano que trate a los certificados autofirmados como ciudadanos de primera clase.