Geminiとは、Gemini space英語版上にあるドキュメントへのアクセスを提供する分散型ハイパーテキストシステムのアプリケーションレイヤーのプロトコルである。

Transport Layer Security などの技術により、既存のWebと比較して、プライバシーとユーザの主体性の向上を目的としている。Gemini プロトコルは有志が協同して設計を進行中だが、現在インターネット標準としては標準化がなされてはいない。

Gopher をもとに設計されているが、TLSの使用が必須であるなど現代的になっている。しかし HTTP ほどは複雑ではない[1]。プライバシー関連機能を備えたトランスポート層セキュリティの使用を義務付けている。 仕様は設計中ではあるが、Gemini プロトコルに対応したブラウザやサーバなどが有志により実装されている[2]

トランザクション 編集

v0.14.3 の暫定仕様[3]より。サーバはTCP/1965で接続を待つ。

  1. クライアントがサーバに接続要求をする
  2. サーバはクライアントからの接続要求をacceptする
  3. クライアント-サーバ間でTLSハンドシェイクを完了させる
  4. クライアントがサーバの証明書を検証する
  5. クライアントはリクエストをサーバへ送る
  6. サーバはレスポンスヘッダをクライアントへ送る
    1. 成功ではない場合、接続を閉じる
  7. サーバはレスポンスボディをクライアントへ送る
  8. サーバは接続を閉じる
  9. クライアントはレスポンスを処理する

セッション例 編集

ソフトウェア 編集

関連項目 編集

参考文献 編集

  1. ^ ew0k (2020-12-06). gemini://tilde.team/~ew0k/posts/certificate-security.gmi. Retrieved 2020-12-08. "Most gemini browsers will make a fair attempt at validating the certificate: first check if the Common Name or Subject Alternative Names match the requested hostname, then check the not-valid-before and not-valid-after dates, then check if we've visited this host before and if the cert provided now matches the cert provided last time."
  2. ^ Gemini clients”. gemini.circumlunar.space. 2021年2月4日閲覧。
  3. ^ Gemini protocol specification”. gemini.circumlunar.space. 2021年2月4日閲覧。

Webリンク 編集