Gopher


Gopher (англ. gopher [ˈɡoʊfər] — го́уфер, го́фер) — сетевой протокол распределённого поиска и передачи документов, который был широко распространён в Интернете до 1993 года. Протокол предназначается для предоставления доступа к документам в Интернет, но имеет меньше возможностей, чем HTTP, и впоследствии был почти полностью вытеснен им.

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

Протокол был разработан в Университете Миннесоты весной 1991 года и документирован в RFC 1436. Летом 1993 года опубликован набор дополнений к протоколу, получивший название Gopher+[1].

В феврале 1993 года Университет Миннесоты объявил о намерении взимать лицензионные отчисления за использование созданной им реализации сервера Gopher.[2] В результате пользователи и разработчики стали отдавать предпочтение развивавшейся тогда технологии World Wide Web, имевшей и ряд других преимуществ[3]. В сентябре 2000 года Университет Миннесоты выпустил программное обеспечение Gopher (клиент и сервер) под лицензией GNU GPL[4].

Протокол основан на клиент-серверной технологии, за ним закреплён 70-й порт TCP. После того, как клиент установит TCP-подключение с сервером, он посылает строку (заканчивающуюся CR LF), которая содержит запрос на нужный документ либо пустую строку для получения первой страницы сайта. Сервер отвечает и закрывает соединение.

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