Протокол Gopher

Ресурсы Gopher

Gopher представляет весь Internet (серверы Gopher) в виде единой иерархической системы. Gopher-серверы объединены в единое информационное пространство на Internet. Многие архи­вы дублируют информацию из других архивов (так называемые «зеркала» — mirrors).

В табл. 6.4 приведены основные типы ресурсов, доступных в системах Gopher, и их коды (для сетевых протоколов).

Каждый файл на сервере должен быть описан следующим образом (табл. 6.5). Пример описания:

Numb=l

Name=--> Welcome to my Gopher Server <--

Host—+

Port=+

Type=i

Path=\About.txt #

Numb=2 Name= Host—+ Port=+ Type=i

Path=\About.txt #

Numb=3

Name=All the Worlds Gophers Host=gopher.floodgap.com Port=70 Type=l

Path=/world #

Numb=4

Name=Example.txt Host=gopher.nowhere.net Port='70 Type=0

Path=/foo/bar/example.txt

На экране пользователя отобразится следующая информация:

-> Welcome to my Gopher Server <- All the Worlds Gophers Example.txt

Таблица 6.4. Типы и коды ресурсов Gopher  
Код (Символ) Описание Пример
Файл  
Каталог
Сервер телефонного справочника CSO  
Ошибка  
Файл BinHexed Macintosh hqx-фаЙЛ
Некоторые типы бинарных архивов DOS zip-файл 1
UU-кодированный файл Unix Индекс WAIS !
Сервер Index-Search
Указатель на текстовую сессию Telnet  
Бинарный файл ехе-файл
+ Резервный сервер  
i Информационная строка, не обязательно яв­ляющаяся ссылкой  
Я Графический файл в формате GIF  
h HTML-файл  
s Любые звуковые файлы wav-файл
Т Указатель на текстовый сеанс tn3270  
; I Некоторые файлы образов (клиент должен сам выбрать способ отображения)  

 

* Символы от 0 до Z зарезервированы. Для типов 5 и 9 клиент должен быть готов к чтению до завершения сеанса TCP. В конце таких файлов отсутствует за­вершающая точка в пустой строке, сеанс для этих файлов имеет бинарный тип и клиент должен самостоятельно выбирать способ отображения. Gopher не преду­сматривает предопределенной классификации информации, поэтому структура ресурса определяется исключительно соображениями владельца сервера.

Таблица 6.5. Описание файла на сервере Gopher
Пункт Значение Описание
Numb l Номер строки
Name Host Port -> Welcome to my Gopher Server <-- Отображаемое название
gopher.floodgap.com 70 Имя хоста Порт Gopher-cepeepa
Type i \About.txt Тип данных
Path Путь к данным
#   Разделитель между описаниями файлов

 

Протокол Gopher предназначен для работы по модели «кли­ент — сервер», при этом программа-клиент установлена на рабо­чем месте пользователя. Эта программа посылает запрос-селектор в ТСР-порт 70 (строку текста, которая может быть и пустой), а за­тем сервер отвечает блоком текста, в конце которого стоит точка. Никакой информации о состоянии соединения сервер клиенту не сообщает и, в свою очередь, не запрашивает. После ответа серве­ра соединение разрывается, а при новом запросе оно должно быть установлено заново. Простота этого алгоритма позволяет реали­зовать его даже на маломощных персональных компьютерах.

Возвращаемый сервером текст представляет собой справку о содержании текущей директории (каталога), каждый элемент ко­торой включает:

• тип (объекта в директории);

• имя (используется для отображения и в запросах);

• неотображаемую строку выбора, которая обычно описыва­ет путь, используемый удаленным хостом для доступа к объекту (селектор);

• имя хоста (машины, к которой надо обращаться за инфор­мацией);

• номер порта (на котором сервер данного объекта ожидает запрос).

Пользователь реально видит только имя объекта. Програм- ма-клиент может воспользоваться триадой селектор, хост, порт для поиска каждого объекта.

Для использования поискового объекта из директории Gopher клиент посылает запрос специальному поисковому сер­веру Gopher. В этом случае клиент посылает серверу строку-се­лектор и ключевые слова, а получает от сервера список адресов документов, удовлетворяющих запросу.

Программы, обслуживающие взаимодействие по протоколу Gopher, существуют практически для всех типов компьютерных платформ.