Gopher
| Gopher | |
|---|---|
| Название | Gopher |
| Создан в | 1991 |
| Порт/ID | 70/TCP |
| Спецификация | RFC 1436 |
| Основные реализации (клиенты) | Mozilla Firefox,Windows:Internet Explorer 5,Internet Explorer 6 (ограничено MS),Lynx |
| Разработчик | Mark P. McCahill[вд] и Миннесотский университет |
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. Первое поле содержит один символ и не отделено от второго, остальные разделяются табуляцией.
- Тип содержимого
- 0 = текстовый файл
- 1 = каталог
- 2 = сервер имён CSO
- 3 = ошибка
- 4 = файл Macintosh в форматеBinHex
- 5 = архивZIP
- 6 = файл UNIX, закодированныйuuencode
- 7 = поисковый сервер
- 8 = ссылка наtelnet-сессию
- 9 = бинарный файл
- + = запасной сервер
- h = файл в форматеHTML
- g = графический файл в форматеGIF
- i = информационный текст
- I = графический файл (отображение определяется клиентом)
- T = ссылка на сессиюTN3270
- Строка описания
- Путь (обычно в файловой системе)
- Доменное имя сервера
- Номерпорта сервера
На начало 2013 года в Интернете существует около 310 gopher-серверов[5]. Большинство из них более не обновляется, но некоторые поддерживаются энтузиастами протокола Gopher. Несколько десятков новых серверов было запущено с 1999 года[6]. Сегодня Gopher напоминает почти заброшенный уголок Интернета — можно, например, публиковать адреса электронной почты, не беспокоясь о спаме, и публиковать любую информацию, не заботясь об объёмах трафика. При этом многие серверы Gopher до сих пор регулярно посещаются. Протокол Gopher в той или иной мере поддерживается многими современными веб-браузерами.Протокол Gopher получил дальнейшее развитие в протоколеGemini (протокол).
Программное обеспечение
[править |править код]Клиенты
[править |править код]ВInternet Explorer версий 5.* и 6 для Windows поддержка Gopher отключена с июня2002 года с выходом патча, предназначавшегося для исправления уязвимости в обработчике протокола Gopher; однако её можно вернуть через редактирование реестра[7]. В Internet Explorer 7 Gopher более не поддерживается[8].Internet Explorer для Mac (только на платформеPowerPC) всё ещё поддерживает Gopher.
Другие браузеры, включаяMozilla иAOL, поддерживают протокол лишь частично — наиболее существенным недостатком является то, что они не отображают информационный текст, используемый во многих gopher-меню. Для полной поддержки Gopher вKonqueror необходим плагин, такой как kio_gopher[9].Mozilla Firefox полностью поддерживал Gopher, начиная с версии 1.5 и до 4 (в 4-й версии браузера, вышедшей в марте 2011 года, Gopher перестал поддерживаться[10], но можно установить специальное расширение[11]), и частично — в предшествующих версиях.SeaMonkey иCamino также полностью поддерживают Gopher. Однако, наиболее полная поддержка Gopher доступна в текстовом браузереLynx.
Safari не поддерживает Gopher, для поддержки вOpera требуется прокси-сервер, напримерSquid.
Серверы
[править |править код]Благодаря простоте протокола создано множество реализаций серверов на различных языках программирования:
- НаC:
- UMN Gopherd — классический сервер, разработанный в Университете Миннесоты, не поддерживается
- Geomyidae
- GN
- GoFish
- Gophernicus
- gophrier
- mgod
- Motsognir
- НаPython:
- НаJava:
- НаPerl:
- НаFreeBASIC:
- НаScheme:
- На платформе.NET 3.5:
- НаNode.js (JavaScript):
Gopher+
[править |править код]Gopher+ — обратно совместимое расширение протокола Gopher. Предложено разработчиками оригинального протокола Gopher (также называемого Gopher0) в июле1993 года.[1]
В дополнение к стандартным полям, отправляемым клиенту сервером Gopher0, сервер Gopher+ может отправлять различные метаданные о документе (тип MIME, дату изменения документа, краткое описание, информацию о доступных форматах документа и др.). Клиент Gopher+ может отправлять серверу данные пользовательского ввода аналогично веб-формам.
Предложены также новые типы содержимого:
- : = битовое изображение;
- ; = файл видео;
- < = звуковой файл.
Расширения Gopher+ не были широко реализованы на практике. Лишь немногие из клиентов (UMN Gopher, HGopher[12]) и серверов (UMN Gopherd, Pygopherd[13]) полностью или частично поддерживают Gopher+.
Примечания
[править |править код]- ↑12Gopher+ upward compatible enhancements to the Internet Gopher protocol (30 июля 1993). Архивировано 18 октября 2017 года.
- ↑University of Minnesota Gopher software licensing policyАрхивная копия от 10 января 2006 наWayback Machine The Minnesota Gopher Team
- ↑Johan Söderberg. Hacking Capitalism: The Free and Open Source Software Movement (англ.). —Routledge, 2007. — P. 25. —ISBN 0-415-95543-2.
- ↑comp.infosystems.gopher: UMN Gopher(d) released under the GPL . Дата обращения: 20 января 2013. Архивировано 29 сентября 2021 года.
- ↑Статистика Veronica-2 . gopher.floodgap.com. Архивировано 18 октября 2017 года.
- ↑Список новых серверов Gopher .
- ↑Microsoft Security Bulletin MS02-047 . Microsoft (28 февраля 2003). Дата обращения: 23 марта 2007. Архивировано 25 августа 2011 года.
- ↑Release Notes for Internet Explorer 7 . Microsoft (2006). Дата обращения: 23 марта 2007. Архивировано 25 августа 2011 года.
- ↑kio_gopher — Gopher kioslave . Дата обращения: 18 октября 2011. Архивировано 1 мая 2018 года.
- ↑Lenta.ru: Интернет: Блеск и нищета URL’а . Дата обращения: 28 сентября 2011. Архивировано 30 сентября 2011 года.
- ↑OverbiteFF :: Add-ons for Firefox . Дата обращения: 28 сентября 2011. Архивировано изоригинала 10 июня 2011 года.
- ↑Архивированная копия . Дата обращения: 21 января 2013. Архивировано изоригинала 4 сентября 2013 года.
- ↑Ubuntu Manpage: PyGopherd - Multiprotocol Information Server . Дата обращения: 22 января 2013. Архивировано 1 февраля 2013 года.
Ссылки
[править |править код]- RFC 1436 — описание протокола Gopher
- шлюз из WWW в Gopher
- Gopher+ (недоступная ссылка)
- Uptime и состояние известных серверов Gopher(через http недоступен)
- Спецификация Gopher+
- Википедия:Cite web (некорректный url)
- Википедия:Cite web (не указан язык)
- Википедия:Cite web (заменить webcitation-архив: deadlink no)
- Страницы, использующие волшебные ссылки ISBN
- Википедия:Статьи со ссылками на элементы Викиданных без русской подписи
- ПРО:ИТ:Статьи по алфавиту
- ПРО:ИТ:Последняя правка: в прошлом году
- Википедия:Статьи с нерабочими ссылками
- Страницы, использующие волшебные ссылки RFC