Gopher

提供: ArchWiki
移動先: 案内検索

Gopher は HTTP が支配的になる前に人気を博していたインターネットにおける情報転送のためのプロトコルです。現在でも Gopher ユーザーのコミュティが存在し、たびたび発表される複雑で入り組んだプロトコルよりもシンプルなプロトコルが好まれています。Gopher サイトの例は こちら に挙げられています。全てのブラウザが Gopher に対応しているわけではなく、サポートが不完全なブラウザもあります。Firefox は限定的にサポートしていますが、こちらのアドオン で拡張することができます。

GoFish サーバー

GoFish は自分の gopherspace を立てることができるベーシックな Gopher サーバーです。セットアップは他のサーバーと似ていますが、軽快に動作します。

インストール

gofishAUR パッケージをインストールしてください。

設定

サーバーの基本的な設定は /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 ファイルが存在しなくてもサーバーのルートディレクトリに入っているファイルは誰でもダウンロードすることができるので注意してください。

参照