Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
TCP/IP қолданбалық қабат протоколы
TCP/IP application layer protocol
Gopher протоколы (/ɡ/oʊ/f/ər/) – Интернет протоколы желілерінде құжаттарды тарату, іздеу және алуға арналған байланыс протоколы. Gopher протоколының және пайдаланушы интерфейсінің дизайны мәзірлік жүйеге негізделген, ол World Wide Web-ке ерте кезеңдерде балама ретінде ұсынылды, бірақ нәтижесінде HTTP-ге жол берді. Gopher экожүйесі көбінесе World Wide Web-тің тиімді алдағысы ретінде қарастырылады, ол Миннесота университетінде жасалған. Ол Web-те туылмаған кейбір мүмкіндіктерді ұсынады және сақталатын құжаттарға күшті иерархиялық құрылымды налагады. Оның мәтіндік мәзір интерфейсі 1991 жылы құрылған кезде кең таралған қашықтықтан мәтіндік терминалдарға негізделген есептеу орталарына өте қолайлы болды, ал протоколының қарапайымдылығы клиенттік бағдарламалардың кең ауқымын жасауға мүмкіндік берді. Gopher-дің жаңа нұсқалары мен графикалық клиенттері мультимедианы қолдауға қосылды. Gopher-дің иерархиялық құрылымы алғашқы ірі электрондық кітапханалардың байланысына платформа ұсынды. Gopher протоколы энтузиасттар тарапынан әлі де қолданылуда, және ол Web-пен толығымен алмастырылғанымен, белсенді түрде күтіліп келе жатқан серверлердің шағын тобы сақталған.
The Gopher protocol ('/ɡ//oʊ//f//ər/) is a communication protocol designed for distributing, searching, and retrieving documents in Internet Protocol networks. The design of the Gopher protocol and user interface is menu driven, and presented an alternative to the World Wide Web in its early stages, but ultimately fell into disfavor, yielding to HTTP. The Gopher ecosystem is often regarded as the effective predecessor of the World Wide Web. at the University of Minnesota. It offers some features not natively supported by the Web and imposes a much stronger hierarchy on the documents it stores. Its text menu interface is well suited to computing environments that rely heavily on remote text oriented computer terminals, which were still common at the time of its creation in 1991, and the simplicity of its protocol facilitated a wide variety of client implementations. More recent Gopher revisions and graphical clients added support for multimedia. Gopher's hierarchical structure provided a platform for the first large scale electronic library connections. The Gopher protocol is still in use by enthusiasts, and although it has been almost entirely supplanted by the Web, a small population of actively maintained servers remains.
Шығу тегі
Gopher жүйесі 1991 жылдың ортасында АҚШ-тағы Миннесота университетінің қызметкерлері – Марк П. Маккахилл, Фархад Анклесария, Пол Линднер, Дэниел Торри және Боб Альберти тарапынан жарыққа шығарылды. Оның басты мақсаттары мыналар еді:
The Gopher system was released in mid 1991 by Mark P. McCahill, Farhad Anklesaria, Paul Lindner, Daniel Torrey, and Bob Alberti of the University of Minnesota in the United States. Its central goals were, as stated in :
Пайдаланушыларға таныс болатын иерархиялық құрылымға ұқсас файлдық жүйе. Жай синтаксис. Жүйені жылдам және төмен құнмен құру мүмкіндігі. Файл жүйесі метафорасын кеңейту; мысалы, іздеулерді қосуға рұқсат беру. Gopher құжаттар иерархиясын WAIS, Archie және Veronica іздеу жүйелерімен, сондай-ақ File Transfer Protocol (FTP) және Usenet сияқты басқа ақпараттық жүйелерге қатынас қамтамасыз ететін шлюздермен үйлестіреді. Ол кездегі жоғары білім берудегі кампус ақпараттық жүйелеріне (CWIS) деген жалпы қызығушылық және Gopher серверлерін орнатудың қарапайымдығы, осы арқылы басқа сайттардың онлайн каталогтары мен ресурстарына сілтемелермен бірден CWIS құруға мүмкіндік берді, Gopher-дің жылдам қабылдануына себеп болды. Анклесария бұл атауды «гофер» сөзінің бірнеше мағынасын ойынға айналдыру арқылы таңдады. Миннесота университетінің талисманы – гофер, гофер – нәрселерді іздеп әкелетін көмекші, ал гофер қалаған жеріне жету үшін жерді қазып өтеді.
A file like hierarchical arrangement that would be familiar to users. A simple syntax. A system that can be created quickly and inexpensively. Extensibility of the file system metaphor; allowing addition of searches for example. Gopher combines document hierarchies with collections of services, including WAIS, the Archie and Veronica search engines, and gateways to other information systems such as File Transfer Protocol (FTP) and Usenet. The general interest in campus wide information systems (CWISs) in higher education at the time, and the ease of setup of Gopher servers to create an instant CWIS with links to other sites' online directories and resources, were the factors contributing to Gopher's rapid adoption. The name was coined by Anklesaria as a play on several meanings of the word "gopher". The University of Minnesota mascot is the gopher, a gofer is an assistant who "goes for" things, and a gopher burrows through the ground to reach a desired location.
Іздеу сұранысы
Сұраныстағы таңдау тізбегінен кейін, міндетті емес түрде, табулатура белгісі және іздеу тізбегі келе берілуі мүмкін. Бұл 7-түрдегі элементтер үшін қолданылады.
The selector string in the request can optionally be followed by a tab character and a search string. This is used by item type 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
Gopher menu items are defined by lines of tab separated values in a text file. This file is sometimes called a gophermap. As the source code to a gopher menu, a gophermap is roughly analogous to an HTML file for a web page. Each tab separated line (called a selector line) gives the client software a description of the menu item: what it is, what it is called, and where it leads to. The client displays the menu items in the order that they appear in the gophermap. The first character in a selector line indicates the item type, which tells the client what kind of file or protocol the menu item points to. This helps the client decide what to do with it. Gopher's item types are a more basic precursor to the media type system used by the Web and email attachments. The item type is followed by the user display string (a description or label that represents the item in the menu); the selector (a path or other string for the resource on the server); the hostname (the domain name or IP address of the server), and the network port. All lines in a gopher menu are terminated by "CR + LF". Example of a selector line in a menu source: The following selector line generates a link to the "/home" directory at the subdomain gopher. floodgap. com, on port 70. The item type of indicates that the linked resource is a Gopher menu itself. The string "Floodgap Home" is what the client will show to the user when visiting the example menu. 1Floodgap Home /home gopher. floodgap. com 70
Элемент түрі Пайдаланушыға көрсетілетін тізбек Сайлаушы Хост атауы Порт 1 Floodgap Home /home gopher.floodgap.com 70
Item type User display string Selector Hostname Port 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 – мәтіндік веб-браузер.
These are clients, libraries, and utilities primarily designed to access gopher resources. Client Updated License Language Type Notes ACID 2021 ? C GUI (Windows) Supports page cache, TFTP and has G6 extension. Bombadillo 2022 GPLv3 Go TUI (Linux, BSD, OSX) Supports Gopher, Gemini, Finger cURL 2022 C CLI elpher 2022 GPLv3 Emacs Lisp TUI/GUI Elpher: a gopher, finger, and gemini client for GNU Emacs eva 2022 GPLv3 Rust GUI Eva (as in extra vehicular activity, or spacewalk) is a Gemini and Gopher protocol browser in GTK 4. Gopher Browser 2019 Closed Source VB. NET GUI (Windows) Gopher Client 2018 App (iOS) Supports text reflow, bookmarks, history, etc gophercle 2022 MIT Java App (Android) Supports only basic functionalities like bookmarks, session history, downloads, etc. Gopherus 2020 BSD 2 clause C TUI (Linux, BSD, Windows, DOS) Features bookmarks and page caching. Gophie 2020 GPLv3 Java GUI (Windows, MacOS, Linux) Kristall 2020 GPLv3 C++ GUI (Linux) Gemini GUI client with support for Gopher, Finger, and www. Lagrange 2022 BSD 2 clause C GUI Gemini GUI client with Gopher and finger support. Switches to gophermap/type 1 requests in parent/root navigation. Little Gopher Client 2019 Pascal Linux, Mac, Windows Sidebar with a hierarchical view ncgopher 2022 BSD 2 clause Rust TUI ncgopher is a gopher and gemini client using ncurses. Pocket Gopher 2019 Unlicense Java App (Android) Supports bookmarks, history, downloads, etc sacc 2022 C TUI sacc(omys) is a terminal gopher client. snarf 2020 GPL C CLI Simple Non interactive All purpose Resource Fetcher w3m 2021 MIT C TUI w3m is a text based web browser
Серверлік бағдарламалық қамтамасыз ету
Протоколды қарапайым түрде іске асыру оңай болғандықтан, көптеген серверлік пакеттер әлі де қол жетімді, ал кейбіреулері күтіліп тұр. Серверді әзірлеген Соңғы нұсқасы Шығарылған күні Лицензия Жазылған тілі Ескермелер 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
Because the protocol is trivial to implement in a basic fashion, there are many server packages still available, and some are still maintained. Server Developed by Latest version Release date License Written in Notes Aftershock Rob Linwood 1.0.1 MIT Java Apache::GopherHandler Timm Murray 0.1 GPLv2 or any later version Perl Apache 2 plugin to run Gopher Server. Atua Charles Childers 2017.4 ISC Forth Bucktooth (gopher link) (proxied link) 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 clause BSD Common Lisp geomyidae (gopher link) (proxied link) Christoph Lohmann 0.96 MIT CREST dynamic scripting, gopher TLS support, compatibility layer for other gophermaps GoFish Sean MacLennan 1.2 GPLv2 C go gopher James Mills MIT Go Gopher Server Timm Murray 0.1.1 GPLv2 Perl Gophernicus Kim Holviala and others 3.1.1 2 clause 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 extensible through custom gophermaps, CGI and PHP scripts Pituophis dotcomboom 1.1 2 clause BSD Python Python based Gopher library with both server and client support PyGopherd Michael Lazar 3.0.1 GPLv2 Python Also supports HTTP, WAP, and Gopher+ Redis Salvatore Sanfilippo 6.2.5 3 clause BSD C Support removed in version 7 save gopher server SSS8555 0.777 Perl with G6 extension and TFTP Spacecookie Lukas Epple 1.0.0.0 GPLv3 Haskell Xylophar Nathaniel Leveck 0.0.1 GPLv3 FreeBASIC