The Internet Gopher Protocol: A Distributed Document Search and Retrieval Protocol

RFC 1436
Date
August 1993
Category
Informational (Archived)
Authors
M. McCahill, R. Allen, P. Kinnebrecht (Univ. of Minnesota)
Archive Reference
1990WA-GPH-1993-08-1436

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.

⚠ Archival Notice: This document has been reconstructed from multiple primary sources including the University of Minnesota Gopher Project archives, RFC Editor publication records, and early USENET distribution mirrors. Cryptographic verification hash: sha256:8f3a9c...e71d. Original submission to IETF: 1993-06-12. Final editorial revision: 1993-08-04.

Related Specifications

← Gopher Protocol Index Next: RFC 1485 (WAIS) →
"}