什么是Gemini协议?


Gemini是一种(仅)用于访问远程文档的应用层互联网通信协议,虽然类似于 gopher 或 HTTP,但是它旨在作为这些协议的第三种替代方案,可以看成是HTML的极简子集。
网址格式:gemini://gemini.circumlunar.space/docs/specification.gmi
特点:它带有一种特殊的文档格式,通常称为“gemtext”,允许链接到其他文档。
该协议由一个被称为 Solderpunk 的人发起,现在正在协作完成,目前尚未提交给IETF进行标准化。
 
Gemini 是一种客户端-服务器协议,具有请求-响应事务,Gemini连接在单个事务结束时关闭,无法重用。
当Gemini通过 TCP/IP 提供服务时,服务器侦听端口 1965。
Gemini 事务大致相当于 gopher 请求或 HTTP“GET”请求。
事务发生如下,C代表客户端,S代表服务器:

  • C:打开连接
  • S:接受连接
  • C/S:完成 TLS 握手
  • C:验证服务器证书
  • C:发送请求(一个 CRLF 终止行)
  • S :发送响应头(一个 CRLF 终止行),在不成功的情况下关闭连接
  • S:发送响应正文(文本或二进制数据)
  • S:关闭连接
  • C:处理响应

Gemini 强制要求使用具有隐私相关功能的 TLS,并强烈建议首次使用信任(TOFU) 验证。
  
Lagrange:Gemini 的桌面 GUI 客户端github.com/skyjake
是目前最好的 Gemini 客户端。它在几分之一秒内启动,可以获得 Gemini 提供的简洁、干净的页面,无需扩展程序和广告拦截器、javascript 或基于框架的精美页面。专注于让普通的 unicode 文本看起来很漂亮。
  
为什么还需要Gemini?
因为他们玩得很开心,这就足够了。
Gemini 是协议,Gemtext 是文档类型之一。请注意,您可以通过 Gemini 传输 HTML 文档,并且许多客户端渲染的不仅仅是 Gemtext。
Gemtext 很容易解析,因为解析器只需读取一行的第一个字符即可了解一行的语义。
这种面向行的创新还改进了文档的结构,因为使用具有自己行的链接可以轻松导航。
是一种增强版的 Gopher。
可以看成是一种仅仅基于文本的网络浏览器,但是不止这些。