什麼是Gemini協議?

banq發表於2021-11-21

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。
可以看成是一種僅僅基於文字的網路瀏覽器,但是不止這些。
 

相關文章