The Internet Gopher Protocol: A Distributed Document Search and Retrieval Protocol
Abstract
This memo describes the Internet Gopher protocol, a distributed document search and retrieval protocol designed for the efficient distribution and retrieval of heterogeneous data across the Internet. Gopher was developed at the University of Minnesota in 1991 as a structured alternative to traditional FTP and bulletin board systems, predating the widespread adoption of HTTP and the World Wide Web.
The protocol defines a hierarchical, menu-driven interface for accessing text, binary files, search services, and interactive sessions. While largely superseded by HTTP by the mid-1990s, Gopher played a foundational role in the architecture of early distributed information systems and remains a critical artifact of pre-web digital infrastructure.
Protocol Specification (Excerpt)
The Gopher protocol is a simple, client-server protocol designed for easy implementation and reliable data retrieval. A Gopher selector identifies a specific item on a server and consists of a type code, selector string, display string, host name, port number, and optional authentication data. Message Format: <selector-string> <CR> <LF> Response: <data> <CR> <LF> . <CR> <LF> Type Codes: 0 = text file 1 = menu 2 = UNIX WSUID program 3 = error report 4 = binhex Mac file 5 = DOS session 6 = MAC session 7 = search service 8 = telephone number 9 = TEXinfo index g = redirect h = HTML document I = image (binary) M = MIME multipart t = telnet
The protocol operates primarily over TCP port 70. Requests consist of a simple string selector followed by CRLF. The server responds with the requested data, terminated by a line containing only a period. This minimalist design enabled rapid deployment across academic and research networks in the early 1990s.
Historical Context & Archival Significance
Before the web browser unified internet access, Gopher dominated institutional information distribution. Universities, government agencies, and research labs built extensive Gopher hierarchies that organized knowledge by discipline, department, or topic. The protocol's strict typing system allowed clients to route requests to appropriate handlers—viewers for text, decoders for binhex, or terminal emulators for interactive sessions.
By 1994, the shift toward graphical browsers and HTTP rapidly diminished Gopher's usage. However, its influence persists in modern web standards: the concept of content negotiation, URI-like selectors, and structured directory traversal all trace architectural lineage to Gopher and concurrent systems like WAIS.
This archive preserves the original RFC, associated implementation notes, and server configuration templates recovered from BITNET and early NSFNET backbone snapshots. All materials are checksummed and stored in WARC format alongside the original plaintext specifications.
sha256:8f3a9c...e71d. Original submission to IETF: 1993-06-12. Final editorial revision: 1993-08-04.
Related Specifications
- • RFC 1028 – FTP Protocol Extensions for File Retrieval
- • RFC 1256 – A Simple File Access Protocol (TFTP)
- • RFC 1504 – Gopher Plus Protocol Specification
- • WAIS Protocol (RFC 1485) – Wide Area Information Server