Кіріспе

TCP/IP қолданбалық қабат протоколы

Gopher протоколы (/ɡ/oʊ/f/ər/) – Интернет протоколы желілерінде құжаттарды тарату, іздеу және алуға арналған байланыс протоколы. Gopher протоколының және пайдаланушы интерфейсінің дизайны мәзірлік жүйеге негізделген, ол World Wide Web-ке ерте кезеңдерде балама ретінде ұсынылды, бірақ нәтижесінде HTTP-ге жол берді. Gopher экожүйесі көбінесе World Wide Web-тің тиімді алдағысы ретінде қарастырылады, ол Миннесота университетінде жасалған. Ол Web-те туылмаған кейбір мүмкіндіктерді ұсынады және сақталатын құжаттарға күшті иерархиялық құрылымды налагады. Оның мәтіндік мәзір интерфейсі 1991 жылы құрылған кезде кең таралған қашықтықтан мәтіндік терминалдарға негізделген есептеу орталарына өте қолайлы болды, ал протоколының қарапайымдылығы клиенттік бағдарламалардың кең ауқымын жасауға мүмкіндік берді. Gopher-дің жаңа нұсқалары мен графикалық клиенттері мультимедианы қолдауға қосылды. Gopher-дің иерархиялық құрылымы алғашқы ірі электрондық кітапханалардың байланысына платформа ұсынды. Gopher протоколы энтузиасттар тарапынан әлі де қолданылуда, және ол Web-пен толығымен алмастырылғанымен, белсенді түрде күтіліп келе жатқан серверлердің шағын тобы сақталған.

Шығу тегі

Gopher жүйесі 1991 жылдың ортасында АҚШ-тағы Миннесота университетінің қызметкерлері – Марк П. Маккахилл, Фархад Анклесария, Пол Линднер, Дэниел Торри және Боб Альберти тарапынан жарыққа шығарылды. Оның басты мақсаттары мыналар еді:

Пайдаланушыларға таныс болатын иерархиялық құрылымға ұқсас файлдық жүйе. Жай синтаксис. Жүйені жылдам және төмен құнмен құру мүмкіндігі. Файл жүйесі метафорасын кеңейту; мысалы, іздеулерді қосуға рұқсат беру. Gopher құжаттар иерархиясын WAIS, Archie және Veronica іздеу жүйелерімен, сондай-ақ File Transfer Protocol (FTP) және Usenet сияқты басқа ақпараттық жүйелерге қатынас қамтамасыз ететін шлюздермен үйлестіреді. Ол кездегі жоғары білім берудегі кампус ақпараттық жүйелеріне (CWIS) деген жалпы қызығушылық және Gopher серверлерін орнатудың қарапайымдығы, осы арқылы басқа сайттардың онлайн каталогтары мен ресурстарына сілтемелермен бірден CWIS құруға мүмкіндік берді, Gopher-дің жылдам қабылдануына себеп болды. Анклесария бұл атауды «гофер» сөзінің бірнеше мағынасын ойынға айналдыру арқылы таңдады. Миннесота университетінің талисманы – гофер, гофер – нәрселерді іздеп әкелетін көмекші, ал гофер қалаған жеріне жету үшін жерді қазып өтеді.

Іздеу сұранысы

Сұраныстағы таңдау тізбегінен кейін, міндетті емес түрде, табулатура белгісі және іздеу тізбегі келе берілуі мүмкін. Бұл 7-түрдегі элементтер үшін қолданылады.

Мәзірдің бастапқы коды

Gopher мәзірінің элементтері мәтіндік файлдағы табу белгісімен бөлінген мәндер арқылы анықталады. Бұл файл кейде gophermap деп аталады. Gopher-менюдің бастапқы коды ретінде gophermap веб-беттің HTML файлына ұқсас. Әрбір табу белгісімен бөлінген жол (сайлаушы жол деп аталады) клиенттік бағдарламаға мәзір элементінің сипаттамасын береді: ол не, қалай аталады және қайда жетелейді. Клиент мәзір элементтерін олар gophermap-та пайда болған ретпен көрсетеді. Сайлаушы жолдағы бірінші таңба элемент түрін көрсетеді, бұл клиентке мәзір элементінің қандай файлға немесе протоколға сілтеме жасағанын айтады. Бұл клиентке онымен не істеу керектігін шешуге көмектеседі. Gopher-дің элемент түрлері веб және электрондық пошта тіркемелері қолданатын медиа типтері жүйесінің қарапайым алғы құралы болып табылады. Элемент түрінен кейін пайдаланушыға көрсетілетін тізбек (менюдегі элементті білдіретін сипаттама немесе атау); сайлаушы (сервердегі ресурс жолы немесе басқа тізбек); хост атауы (сервердің домендік аты немесе IP-мекенжайы) және желілік порт келеді. Gopher мәзіріндегі барлық жолдар "CR + LF" арқылы аяқталады. Мәзір бастапқы кодындағы сайлаушы жолдың мысалы: Келесі сайлаушы жол gopher.floodgap.com домендік атындағы, 70-порттағы "/home" каталогына сілтеме жасайды. Элемент түрі сілтемеленген ресурс өзі Gopher мәзірі екенін көрсетеді. "Floodgap Home" деген тізбек клиентке мысал мәзірін қараған кезде пайдаланушыға көрсетіледі. 1Floodgap Home /home gopher.floodgap.com 70

Элемент түрі Пайдаланушыға көрсетілетін тізбек Сайлаушы Хост атауы Порт 1 Floodgap Home /home gopher.floodgap.com 70

Gopher клиенттері

Бұл клиенттер, кітапханалар және негізінен Gopher ресурстарына қол жеткізуге арналған қосымша құралдар. Клиент | Жаңартылған | Лицензия | Тіл | Түрі | Ескертулер ACID | 2021 | ? | C | GUI (Windows) | Бет кэшін, TFTP-ні қолдайды және G6 кеңейтуі бар. Bombadillo | 2022 | GPLv3 | Go | TUI (Linux, BSD, OSX) | Gopher, Gemini, Finger қолдайды. cURL | 2022 | | C | CLI | elpher | 2022 | GPLv3 | Emacs Lisp | TUI/GUI | Elpher: GNU Emacs үшін Gopher, Finger және Gemini клиенті. eva | 2022 | GPLv3 | Rust | GUI | Eva (қызметтік көлік қызметі немесе ғарышқа шығу) GTK 4-тегі Gemini және Gopher протоколының браузері. Gopher Browser | 2019 | Жабық кодты | VB. NET | GUI (Windows) | Gopher Client | 2018 | | | App (iOS) | Мәтінді қайта ағынды ету, бетбелгілер, тарих және т.б. қолдайды. gophercle | 2022 | MIT | Java | App (Android) | Бетбелгілер, сессия тарихы, жүктеулер және т.б. сияқты негізгі функцияларды ғана қолдайды. Gopherus | 2020 | BSD 2 clause | C | TUI (Linux, BSD, Windows, DOS) | Бетбелгілер мен беттерді кэштеу мүмкіндігі бар. Gophie | 2020 | GPLv3 | Java | GUI (Windows, MacOS, Linux) | Kristall | 2020 | GPLv3 | C++ | GUI (Linux) | Gopher, Finger және www қолдауы бар Gemini GUI клиенті. Lagrange | 2022 | BSD 2 clause | C | GUI | Gopher және Finger қолдауы бар Gemini GUI клиенті. Басты/түптік навигацияда gophermap/тип 1 сұраныстарына ауысады. Little Gopher Client | 2019 | | Pascal | Linux, Mac, Windows | Иерархиялық көрініспен бүйірлік панель. ncgopher | 2022 | BSD 2 clause | Rust | TUI | ncgopher – ncurses-ті пайдаланатын Gopher және Gemini клиенті. Pocket Gopher | 2019 | Unlicense | Java | App (Android) | Бетбелгілер, тарих, жүктеулер және т.б. қолдайды. sacc | 2022 | | C | TUI | sacc(omys) – терминалдық Gopher клиенті. snarf | 2020 | GPL | C | CLI | Қарапайым, әрекеттеспейтін, барлық мақсаттағы ресурс іздеуші. w3m | 2021 | MIT | C | TUI | w3m – мәтіндік веб-браузер.

Серверлік бағдарламалық қамтамасыз ету

Протоколды қарапайым түрде іске асыру оңай болғандықтан, көптеген серверлік пакеттер әлі де қол жетімді, ал кейбіреулері күтіліп тұр. Серверді әзірлеген Соңғы нұсқасы Шығарылған күні Лицензия Жазылған тілі Ескермелер Aftershock Rob Linwood 1.0.1 MIT Java Apache::GopherHandler Timm Murray 0.1 GPLv2 немесе кез келген кейінгі нұсқадағы Perl Apache 2 плагині, Gopher Server-ді іске қосу үшін. Atua Charles Childers 2017.4 ISC Forth Bucktooth (gopher сілтемесі) (проксиленген сілтеме) Cameron Kaiser 0.2.10 Floodgap Free Software License Perl Flask Gopher Michael Lazar 2.2.1 GPLv3 Python geomyid Quinn Evans 0.0.1 2 тармақты BSD Common Lisp geomyidae (gopher сілтемесі) (проксиленген сілтеме) Christoph Lohmann 0.96 MIT CREST динамикалық скрипттеу, gopher TLS қолдауы, басқа gopher карталарымен үйлесімділік қабаты GoFish Sean MacLennan 1.2 GPLv2 C go gopher James Mills MIT Go Gopher Сервері Timm Murray 0.1.1 GPLv2 Perl Gophernicus Kim Holviala және басқалар 3.1.1 2 тармақты BSD C gophrier Guillaume Duhamel 0.2.3 GPLv2 C Goscher Aaron W. Hsu 8.0 ISC Scheme mgod Mate Nagy 1.1 GPLv3 C Motsognir Mateusz Viste 1.0.13 MIT C кеңейтілген, қолданушы gopher карталары, CGI және PHP скрипттері арқылы Pituophis dotcomboom 1.1 2 тармақты BSD Python Python негізіндегі Gopher кітапханасы, сервер және клиенттік қолдаумен PyGopherd Michael Lazar 3.0.1 GPLv2 Python Сондай-ақ HTTP, WAP және Gopher+ қолдайды Redis Salvatore Sanfilippo 6.2.5 3 тармақты BSD C 7 нұсқасынан бастап қолдау алынып тасталды, gopher серверін сақтаңыз SSS8555 0.777 Perl G6 кеңейтімі және TFTP Spacecookie Lukas Epple 1.0.0.0 GPLv3 Haskell Xylophar Nathaniel Leveck 0.0.1 GPLv3 FreeBASIC