Gopher (protocol)
{{short descrile |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| 7 || Gopher full-text search |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| 8 || Telnet |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| 9 || Binary file |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| + || Mirror or alternate server (for load balancing or in case of primary server downtime) |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| g || GIF file |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| I || Image file |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| T || Telnet 3270 |- ! colspan="2" style="background:#FFB; color:black;vertical-align:middle;text-align:center; " class="table-partial"|gopher+ types |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| : || Bitmap image |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| ; || Movie file |- | style="background: #FFD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"| < || Sound file |- ! colspan="2" style="background: #8FD; color:black; vertical-align: middle; text-align: center; " class="partial table-partial"|Non-canonical types |- |style="background:#adffe6; text-align:center" | d || Doc. Seen used alongside PDF and .DOC files |- | style="background:#adffe6; text-align:center" | h || HTML file |- | style="background:#adffe6; text-align:center" | i || Informational message, widely used.[1] |- | style="background:#adffe6; text-align:center" | p || image file "(especially the png format)" | |- | style="background:#adffe6; text-align:center" | r || document rtf file "rich text Format") | |- | style="background:#adffe6; text-align:center" | s || Sound file (especially the WAV format) | |- | style="background:#adffe6; text-align:center" | P || document pdf file "Portable Document Format") | |- | style="background:#adffe6; text-align:center" | X || document xml file "eXtensive Markup Language" ) |}
Here is an example gopher session where the user requires a gopher menu (/Reference
on the first line):
/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
The gopher menu sent back from the server, is a sequence of lines each of which describes an item that can be retrieved. Most clients will display these as hypertext links, and so allow the user to navigate through gopherspace by following the links.[2]
This menu includes a text resource (itemtype 0
on the third line), multiple links to submenus (itemtype 1
, on the second line as well as lines 4-6) and a non-standard information message (from line 7 on), broken down to multiple lines by providing dummy values for selector, host and port.
External links
Historically, to create a link to a Web server, "GET /" was used as a pseudo-selector to emulate an HTTP GET request.[3] John Goerzen created an addition[4] to the Gopher protocol, commonly referred to as "URL links", that allows links to any protocol that supports URLs. For example, to create a link to http://gopher.quux.org/, the item type is h
, the display string is the title of the link, the item selector is "URL:http://gopher.quux.org/", and the domain and port are that of the originating Gopher server (so that clients that do not support URL links will query the server and receive an HTML redirection page).
Gopher+
Gopher+ is a forward compatible enhancement to the Gopher protocol. Gopher+ works by sending metadata between the client and the server. The enhancement was never widely adopted by Gopher servers.[5][6][7]
The client sends a tab followed by a +. A Gopher+ server will respond with a status line followed by the content the client requested. An item is marked as supporting Gopher+ in the Gopher directory listing by a tab + after the port (this is the case of some of the items in the example above).
Other features of Gopher+ include:
- Item attributes, which can include the items
- Administrator
- Last date of modification
- Different views of the file, like PostScript or plain text, or different languages
- Abstract, or description of the item
- Interactive queries
Client software
Gopher clients
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 | G |
- ^ "Directory entry says what? Current Gopher type field types". 5 March 2019.
- ^ Cite error: The named reference
wwwunleashed
was invoked but never defined (see the help page). - ^ "Gopher in the World-Wide Web". Retrieved 2021-09-29.
- ^ "Gopher: gopher.2002-02". Gopher.quux.org. Retrieved 2015-08-12.
- ^ Matjaž Mešnjak (16 Feb 2009). "Re: New Gopher server and client". gmane.network.gopher.general. Archived from the original on 10 March 2015. Retrieved 3 February 2012.
- ^ JumpJet Mailbox (14 Jan 2008). "Re: Server Contact Information". gmane.network.gopher.general. Archived from the original on 10 March 2015. Retrieved 3 February 2012.
- ^ Hoffman, P. (November 2005). "RFC 4266: The gopher URI Scheme". RFC Editor. Archived from the original on Jul 30, 2023.