Gopher
Gopher は HTTP が支配的になる前に人気を博していたインターネットにおける情報転送のためのプロトコルです。現在でも Gopher ユーザーのコミュティが存在し、たびたび発表される複雑で入り組んだプロトコルよりもシンプルなプロトコルが好まれています。Gopher サイトの例は こちら に挙げられています。全てのブラウザが Gopher に対応しているわけではなく、サポートが不完全なブラウザもあります。Firefox は限定的にサポートしていますが、こちらのアドオン で拡張することができます。
GoFish サーバー
GoFish は自分の gopherspace を立てることができるベーシックな Gopher サーバーです。セットアップは他のサーバーと似ていますが、軽快に動作します。
インストール
設定
サーバーの基本的な設定は /etc/gofish.conf
ファイルで変更できます。デフォルトのままでも動作に問題はありません。設定を変更しなかった場合、Gopher サーバーのルートディレクトリは /var/gopher
になりポート 70 で動作します (Firefox は Gopher プロトコルをポート 70 でしか使えないため、ポート番号を変更した場合、別のクライアントを使わなくてはならなくなります)。
サーバーを実行するには gofish.service
を起動してください。
ブラウザで gopher://127.0.0.1 を開くことでサーバーに接続できます。
.cache
全てのファイルを自動的に表示する FTP とは異なり、Gopher は各ディレクトリに存在する .cache
ファイルを使用してエンドユーザーに対してどのようにページを表示するか決定します。GoFish には .cache
ファイルの man ページ が付属しています (man dotcache
)。ただ、少しややこしいかもしれません。GoFish にはサーバーのルートディレクトリに存在する全てのディレクトリとファイルを使用するための .cache
ファイルを自動で生成するプログラムが付属しています:
mkcache -r
上記のコマンドを実行すると必要な .cache ファイルが再帰的に作成されます。.cache
ファイルの中身は以下のようになります:
iHello none example.com 70 0ReadMe 0/ReadMe.txt example.com 70 1Ebooks 1/ebooks example.com 70
Gopher プロトコルでは数字を前につけてファイルタイプを表します。0 はプレーンテキストファイルです。1 はディレクトリで 9 はバイナリファイルです。i は画像ですが、'none' にリンクされている場合、プレーンテキストとして表示されます。大抵はサイトの紹介に使われます。プレフィックスに関する詳しい情報は dotcache の man ページを見てください。プレフィックス番号の後ろはクライアントに表示される名前で、リンク先のファイル名と同じ名前にする必要はありません。2番目のカラムはファイルのパスです。'0' や '1' はファイルシステムにおけるディレクトリの名前ではなく、URI に追加されることで Gopher サーバーやエンドユーザーがファイルの中身を知ることができるようにするためのものです。3番目のカラムはサイトのドメイン名で、4番目は Gopher サーバーのポート (デフォルトでは 70) です。4つのカラムの間はタブで区切る必要があり、スペースだと正しく読み込まれません。
例えば ebooks というディレクトリがあった場合、.cache
ファイルは以下のようになります:
9Book 1 9/ebooks/Book1.chm example.com 70 9Book 2 9/ebooks/Book2.pdf example.com 70
URI が 1/ebooks/9Book1.chm ではなく 9/ebooks/Book1.chm となっていることに注意してください。URI の最後のアイテムは常にひとつしかプレフィックス番号が存在しません。また、chm ファイルや pdf ファイルは実際にはバイナリファイルではありませんが、プレフィックスは 9 になっています。GoFish サーバーにおいては、テキストファイルおよびディレクトリではないファイルは全てバイナリプレフィックスが付けられます。たとえ .cache
ファイルが存在しなくてもサーバーのルートディレクトリに入っているファイルは誰でもダウンロードすることができるので注意してください。