Gopher は、インターネット上でドキュメントを配布、検索、取得するために設計されたインターネット プロトコルです。1990 年代初頭にミネソタ大学で開発された Gopher は、World Wide Web の前身であり、オンライン ドキュメントをナビゲートするためのテキストベースで階層的かつユーザー フレンドリな方法を提供しました。
ゴーファーの起源と進化
Gopher プロトコルは、ミネソタ大学の Mark P. McCahill 率いるチームによって 1991 年に考案されました。大学のマスコットである「Golden Gopher」にちなんで名付けられたこのプロトコルは、当初はキャンパス内のインターネット リソースにアクセスするために使用されていました。
Gopher は、そのシンプルさと情報を階層的に整理する機能により、グラフィカルな World Wide Web が登場する前からインターネット ユーザーの間で人気がありました。しかし、Web の普及、特に 1993 年に Mosaic Web ブラウザが導入されて以降、テキストと一緒にグラフィックを表示できる Web の機能と、より魅力的なインターフェイスにより、Gopher は大きく影を潜めてしまいました。
Gopherの徹底調査
Gopher はクライアント サーバー アーキテクチャに基づいており、Gopher クライアントは Gopher サーバーに接続して情報を要求します。Gopher によって提供される情報は、ファイル システムに似た階層構造に編成されます。ユーザーが Gopher リンクを選択すると、クライアントはサーバーにクエリを送信し、サーバーは要求されたドキュメントを返します。リンクがディレクトリの場合は、リンクのディレクトリを返します。
このプロトコルはキーワード検索もサポートしており、Gopher クライアントは検索文字列を Gopher サーバーに送信でき、サーバーは検索文字列に一致するすべてのドキュメントを返します。ただし、Gopher は HTTPS、Cookie、インタラクティブ フォームなど、最新のプロトコルに見られるより高度な機能をサポートしていないことに注意してください。
ゴーファーの内部:その動作メカニズムを理解する
Gopher はクライアント サーバー モデルで動作し、Gopher クライアントは Gopher サーバーに情報要求を送信します。サーバーは要求されたテキスト ファイルまたはメニューを送信して応答します。メニューはメニュー項目を表す行を含む単純なテキスト ファイルです。各項目は、人間が判読できる名前と、項目が見つかるサーバー アドレスで構成されます。
Gopher は独自の URL スキームを使用します。Gopher URL は「gopher://」で始まり、サーバーのアドレス、リソースの種類、セレクター文字列が含まれます。セレクター文字列は、サーバー上のリソースへのパスです。
Gopherの特徴
- シンプルさ: Gopher の設計は単純なので、Gopher クライアント、サーバー、ドキュメントを簡単に作成できます。
- 階層構造: Gopher は、ファイルシステムに似た、明確な階層形式で情報を提示します。
- 効率的なネットワーク使用: Gopher は HTTP などのグラフィカル プロトコルよりも少ない帯域幅を使用するため、低速接続でもブラウジングが高速になります。
- 検索可能性: Gopher は Gopher サーバー上でのキーワード検索をサポートしています。
- プレーンテキストベース: Gopher ドキュメントは主にプレーンテキストですが、プロトコルではバイナリ ファイルも配布できます。
ゴーファーの種類
Gopher では、アイテム行の先頭にある 1 文字のコードを使用して、さまざまなタイプのアイテムが識別されます。よく使用されるアイテム タイプには、次のようなものがあります。
タイプコード | 説明 |
---|---|
0 | テキスト ファイル: このアイテム タイプは、ドキュメントまたはその他の種類のテキスト データを表します。 |
1 | ディレクトリ: この項目タイプは、より多くの項目を含む Gopher メニューです。 |
7 | 検索エンジン: このアイテム タイプは、検索可能なインデックスを示します。 |
9 | バイナリ ファイル: このアイテム タイプは、画像、オーディオ、ビデオなどのテキスト以外のデータ ファイルに使用されます。 |
私 | 情報メッセージ: この項目タイプは、Gopher メニュー内に情報テキストを表示するために使用されます。 |
Gopher の活用: 用途、課題、解決策
Gopher は Web ほど人気はありませんが、主にレトロ コンピューティングや技術愛好家のコミュニティ内で熱心なユーザー ベースがまだあります。Gopher は、テキスト ベースのドキュメントやファイルを配布したり、簡単にナビゲートできるリンク メニューを作成したりするために使用されます。
しかし、Gopher にはいくつかの課題があります。最新の Web ブラウザはデフォルトで Gopher をサポートしておらず、プロトコルには暗号化や Cookie などの高度な機能がありません。それでも、専用の Gopher クライアントとプロキシ サービスを使用して Gopher サイトにアクセスすることができ、プロトコルのシンプルさを維持しながら最新化するための取り組みが行われています。
類似プロトコルとの比較
特徴 | ゴーファー | HTTP (ウェブ) | FTP |
---|---|---|---|
暗号化 | いいえ | はい | はい |
クッキー | いいえ | はい | いいえ |
検索可能性 | はい | はい | いいえ |
階層構造 | はい | いいえ | はい |
Gopher の将来: 何が待ち受けているのか?
Gopher は過去の遺物のように思えるかもしれませんが、そのシンプルさと効率性から、このプロトコルの使用と開発に対する関心は続いています。開発者は、暗号化のサポートを追加するなど、Gopher を近代化するプロジェクトに取り組んでおり、Gopher を現代の Web と同等のものにするための「Gopherspace」と呼ばれる取り組みも進行中です。
Gopher におけるプロキシ サーバーの役割
最新のブラウザはデフォルトで Gopher プロトコルをサポートしていないため、プロキシ サーバーは Gopher サイトへのアクセスに重要な役割を果たします。Gopher から HTTP へのプロキシを使用すると、ユーザーは標準の Web ブラウザを使用して Gopher コンテンツにアクセスできます。プロキシ サーバーは要求された Gopher コンテンツを取得し、それをブラウザで表示できる HTTP コンテンツに変換します。これにより、最新の Web と Gopher の間に橋が架けられ、ユーザーは Gopherspace のユニークでテキスト中心の世界を探索できるようになります。
関連リンク
- オーバーバイトプロジェクト: Gopher を Firefox と Chrome に戻す取り組み。
- Floodgap パブリック Gopher プロキシ: パブリック Gopher-to-HTTP プロキシ。
- ゴーファープロトコル: オリジナルの Gopher プロトコル仕様。
- SDF パブリック アクセス Unix システム: よく知られている Gopher サイト。
- ゴーファーローン: アクティブな Gopher サイトの厳選リスト。