Гофер () је комуникациони протокол дизајниран за дистрибуцију, претраживање и преузимање докумената у мрежама Интернет протокола. Дизајн Гофер протокола и корисничког интерфејса је вођен менијима и представљао је алтернативу Веб-у у раним фазама, али је на крају изгубио на популарности, уступајући место протоколу за пренос хипертекста (HTTP). Екосистем Гофера се често сматра ефективним претходником Веба.

Употреба мини|Фајерфокс 1.5 (2005)

Гофер протокол је изумео тим предвођен Марком П. Мекејхилом на Универзитету Минесоте. Нуди неке функције које нису изворно подржане на Вебу и намеће много строжу хијерархију на документе које чува. Његов текстуални мени интерфејс је добро прилагођен рачунарским окружењима која се у великој мери ослањају на удаљене текстуално оријентисане рачунарске терминале, који су још увек били уобичајени у време његовог настанка 1991. године, а једноставност протокола је омогућила широк спектар клијентских имплементација.

Хијерархијска структура Гофера пружила је платформу за прве велике електронске библиотечке везе. Гофер протокол и даље користе ентузијасти, и иако је скоро у потпуности замењен Вебом, остала је мала популација активно одржаваних сервера.

Настанак Гофер систем су објавили средином 1991. године Марк П. Мекејхил, Фархад Анклесарија, Пол Линднер, Данијел Тори и Боб Алберти са Универзитета Минесота у Сједињеним Државама. Његови централни циљеви су, како је наведено у , били:

Хијерархијски распоред налик систему датотека који би био познат корисницима. Једноставна синтакса. Систем који се може брзо и јефтино направити. Проширивост метафоре система датотека, на пример, омогућавање додавања претрага.

Гофер комбинује хијерархије докумената са колекцијама услуга, укључујући WAIS, Archie и Veronica претраживаче, и мрежне пролазе до других информационих система као што су File Transfer Protocol (FTP) и Usenet.

Опште интересовање за Campus-Wide Information Systems (CWIS) у високом образовању у то време, и лакоћа постављања Гофер сервера за креирање инстант CWIS-а са везама ка онлајн директоријумима и ресурсима других сајтова, били су фактори који су допринели брзом усвајању Гофера.

Име је смислио Анклесарија као игру речи на неколико значења речи „гопхер”. Мекејхил приписује Анклесарији заслуге за именовање Гофера. Маскота Универзитета Минесота је гопхер (гофер), гофер је помоћник који иде по ствари, а гофер копа тунеле испод земље да би стигао до жељене локације.

Опадање World Wide Web је био у повоју 1991. године, а Гофер услуге су се брзо успоставиле. До касних 1990-их, Гофер је престао да се шири. Неколико фактора је допринело стагнацији Гофера:

У фебруару 1993. године, Универзитет Минесоте је објавио да ће наплаћивати лиценцне накнаде за коришћење своје имплементације Гофер сервера. Корисници су постали забринути да би се накнаде могле наплаћивати и за независне имплементације. Ширење Гофера је стагнирало, на корист Веба, који је објавио WWW софтвер у јавно власништво у априлу 1993.,https://cds.cern.ch/record/1164399/ а одржавао га је CERN. У септембру 2000. године, Универзитет Минесоте је поново лиценцирао свој Гофер софтвер под ГНУ-овом општом јавном лиценцом. Функционалност Гофер клијента је брзо дуплирао рани Mosaic веб прегледач, који је преузео његов протокол. Гофер има строжу структуру од слободног облика хипертекст маркап језика (HTML) Веба. Сваки Гофер документ има дефинисан формат и тип, а типичан корисник навигира кроз један мени дефинисан од стране сервера да би дошао до одређеног документа. Ово се може значајно разликовати од начина на који корисник проналази документе на Вебу. Неуспех у праћењу модела отворених система и лош публицитет у поређењу са Вебом.

Гофер је и даље у активној употреби међу својим ентузијастима, а било је и покушаја да се Гофер оживи на модерним платформама и мобилним уређајима. Један покушај је Пројекат Овербајт (The Overbite Project), који хостује разне екстензије за прегледаче и модерне клијенте.

Попис сервера мини|Број Гофер сервера од 2012. до 2022. године , остало је око 160 гофер сервера индексираних од стране Веронике-2, што одражава спори раст од 2007. године када их је било мање од 100. Обично се ретко ажурирају. На овим серверима, Вероника је индексирала приближно 2,5 милиона јединствених селектора. Хобисти су сваке године постављали неколико нових сервера, са преко 50 постављених и додатих на Флудгеп-ову листу од 1999. године. Снимак Гофер простора из 2007. године циркулисао је на БитТоренту и још увек је био доступан 2010. године. Због једноставности Гофер протокола, постављање нових сервера или додавање Гофер подршке у прегледаче често се ради у шали, углавном на Први април.. The same text appears in the 5.10 release of 27 August 2009 further down the page, copied from the 5.9.2 unstable branch. The Floodgap list referred to is at Floodgap: new Gopher servers and does not itself refer to April Fools' Day.

+ Статистике индекса Вероника-2 Датум индекса Гофер сервери Јединствени селектори 86 740.000 148 1.220.665 144 144 3.314.158 137 4.396.061 146 5.176.602 260 297 3.946.750 320 395 358 5.973.552 343 5.294.599 333 5.098.733 323 5.113.957 296 5.113.382 432 5.254.158 411 5.856.111

Технички детаљи Концептуализација знања у „Гофер простору” или „облаку” као специфичне информације у одређеној датотеци, и истакнутост FTP-а, утицали су на технологију и резултујућу функционалност Гофера.

Карактеристике Гофера Гофер је дизајниран да функционише и да изгледа слично као глобални мрежни систем датотека само за читање (и софтвер, као што је gopherfs, је доступан и може заправо монтирати Гофер сервер као FUSE ресурс). У најмању руку, све што се може урадити са датотекама података на ЦД-РОМ-у, може се урадити и на Гоферу.

Гофер систем се састоји од серије хијерархијских менија са хипервезама. Избор ставки менија и наслова контролише администратор сервера.

Слично датотеци на веб серверу, датотека на Гофер серверу може бити повезана као ставка менија са било ког другог Гофер сервера. Многи сервери користе ову предност повезивања међу серверима како би обезбедили директоријум других сервера којима корисник може приступити.

Протокол Гофер протокол је први пут описан у . Интернет додељивач бројева (IANA) је доделио ТЦП порт 70 Гофер протоколу. Протокол је једноставан за преговарање, што омогућава прегледање без употребе клијента.

Кориснички захтев Прво, клијент успоставља ТЦП конекцију са сервером на порту 70, стандардном гофер порту. Клијент затим шаље стринг праћен carriage return-ом и line feed-ом („CR + LF” секвенца). Ово је селектор, који идентификује документ који треба преузети. Ако би селектор ставке био празан ред, изабрао би се подразумевани директоријум.

Одговор сервера Сервер затим одговара са траженом ставком и затвара конекцију. Према протоколу, пре него што се конекција затвори, сервер треба да пошаље тачку (тј. карактер тачке) у посебном реду. Међутим, не придржавају се сви сервери овог дела протокола и сервер може затворити конекцију без враћања завршне тачке. Главни тип одговора сервера је текстуални или бинарни ресурс. Алтернативно, ресурс може бити мени: облик структурираног текстуалног ресурса који даје референце на друге ресурсе.

Због једноставности Гофер протокола, алати као што је netcat омогућавају лако преузимање Гофер садржаја из командне линије: $ echo jacks/jack.exe | nc gopher.example.org 70 > jack.exe Протокол је такође подржан од стране cURL-а од верзије 7.21.2-DEV, објављене 2010. године.

Претрага Стринг селектора у захтеву опционо може бити праћен табулатором и стрингом за претрагу. Ово се користи код типа ставке 7.

Изворни код менија Ставке Гофер менија су дефинисане линијама вредности раздвојених табулатором у текстуалној датотеци. Ова датотека се понекад назива *gophermap*. Као изворни код гофер менија, gophermap је отприлике аналоган HTML датотеци за веб страницу. Свака линија раздвојена табулатором (звана *селектор линија*) даје клијентском софтверу опис ставке менија: шта је, како се зове и куда води. Клијент приказује ставке менија оним редом којим се појављују у gophermap-у.

Први знак у линији селектора означава *тип ставке*, који говори клијенту какав тип датотеке или протокола ставка менија показује. Ово помаже клијенту да одлучи шта да ради са њом. Типови ставки Гофера су основни претходник система медијских типова које користе Веб и прилози е-поште.

Тип ставке прати *стринг приказа за корисника* (опис или ознака која представља ставку у менију); селектор (путања или други стринг за ресурс на серверу); *име хоста* (име домена или ИП адреса сервера) и мрежни порт.

Све линије у гофер менију завршавају се са „CR + LF”.

Пример линије селектора у изворном коду менија: Следећа линија селектора генерише везу до „/home” директоријума на поддомену gopher.floodgap.com, на порту 70. Тип ставке означава да је повезани ресурс сам по себи Гофер мени. Стринг „Floodgap Home” је оно што ће клијент показати кориснику приликом посећивања примера менија.

1Floodgap Home /home gopher.floodgap.com 70

Тип ставке Стринг приказа за корисника Селектор Име хоста Порт 1 Floodgap Home /home gopher.floodgap.com 70

Типови ставки У изворном коду Гофер менија, код од једног знака означава какав тип садржаја клијент треба да очекује. Овај код може бити цифра или слово абецеде; слова су осетљива на величину.

Техничка спецификација за Гофер, , дефинише 14 типова ставки. Каснија спецификација гофер+ дефинисала је додатна 3 типа. Код од једног знака означава какав тип садржаја клијент треба да очекује. Тип ставке је код грешке за руковање изузецима. Аутори Гофер клијената су импровизовали типове ставки (HTML), (информативна порука) и (звучна датотека) након објављивања RFC 1436. Прегледачи попут Netscape Navigator-а и раних верзија Microsoft Internet Explorer-а би додавали код типа ставке на селектор како је описано у , тако да се тип гофер ставке може одредити из самог URL-а. Већина гофер прегледача који су још увек доступни, користи ове префиксе у својим URL-овима.

colspan="2" Текстуална датотека Гофер подмени CCSO именски сервер Код грешке који враћа Гофер сервер да означи неуспех BinHex-кодирана датотека (превасходно за Macintosh рачунаре) DOS датотека uuencoded датотека Гофер претрага пуног текста Телнет Бинарна датотека Огледало или алтернативни сервер (за балансирање оптерећења или у случају недоступности примарног сервера) GIF датотека Слика Телнет 3270 colspan="2" Битмап слика Филмска датотека Звучна датотека colspan="2" d Документ. Виђено употребљено уз .doc и .pdf датотеке h HTML датотека i Информативна порука, широко коришћена. p Слика "(посебно PNG формат)" r RTF документ ("Rich Text Format") s Звучна датотека (посебно WAV формат) P PDF (Portable Document Format) датотека X XML (Extensible Markup Language) датотека

Ево примера гофер сесије где корисник тражи гофер мени ( у првом реду):

/Reference 1CIA World Factbook /Archives/mirrors/textfiles.com/politics/CIA gopher.quux.org 70 0Jargon 4.2.0 /Reference/Jargon 4.2.0 gopher.quux.org 70 + 1Online Libraries /Reference/Online Libraries gopher.quux.org 70 + 1RFCs: Internet Standards /Computers/Standards and Specs/RFC gopher.quux.org 70 1U.S. Gazetteer /Reference/U.S. Gazetteer gopher.quux.org 70 + iThis file contains information on United States fake (NULL) 0 icities, counties, and geographical areas. It has fake (NULL) 0 ilatitude/longitude, population, land and water area, fake (NULL) 0 iand ZIP codes. fake (NULL) 0 i fake (NULL) 0 iTo search for a city, enter the city's name. To search fake (NULL) 0 ifor a county, use the name plus County -- for instance, fake (NULL) 0 iDallas County. fake (NULL) 0

Гофер мени враћен са сервера је секвенца линија, од којих свака описује ставку која се може преузети. Већина клијената ће их приказати као хипертекст везе, и тако омогућити кориснику да навигира кроз гофер простор пратећи везе.