Gopher is an Internet protocol that follows a client-server model, and is described as a "distributed document search and retrieval system" by its developers. Gopher was released in 1991, the same year as the World Wide Web, and was/is viewed as an alternative to it. The Gopher protocol was invented at the Microcomputer Center at the University of Minnesota, by a team of computer scientists, led by Mark McCahill, and which included: Bob Alberti, Daniel Torrey, Farhad Anklesaria and Paul Lindner. Minnesota is nicknamed the "Gopher State", and the sports teams of the University of Minnesota are known as the "Golden Gophers". The specification for the Gopher protocol was outlined in RFC 1436; which was published in March 1993. IANA, the organisation who manages Internet numbers, assigned TCP port number 70 for the Gopher protocol.
Gopher works on a client-server model, and until the release of the Mosaic web browser (client) in 1993 - the browser that popularised the web - the Gopher protocol was a serious competitor to the World Wide Web. The Gopher protocol is part of the application layer of the Internet protocol suite, and the first Gopher server was hosted at the University of Minnesota; this server could connect to Gopher server's worldwide. One of the strengths of Gopher was/is the ease by which a gopher server can be setup; from 1991-1993, the use of the Gopher protocol expanded rapidly, with most universities in the US setting up their own server. However, a strategical error was made in 1993, which led to downfall of Gopher as the dominant document retrieval system: when the University of Minnesota stated it would charge a fee for people to set up a Gopher server; whereas CERN and Tim Berners-Lee disclaimed any ownership of the web in the same year.
Gopher's designers state that its strength lie in its simplicity: the protocol was described, by them, as "sparse and simple" and easy to write software for. Documents reside on Gopher servers, and are typically retrieved using a client program - though the protocol can be negotiated without a client. The Gopher interface resembles a file system, with servers returning either a directory list or a document list. There are two types of Gopher servers: directory servers and search servers. Gopher's structure is rigid, efficient and has a strong hierarchy; this rigidity lacks the fluid 'freedom' of the World Wide Web. Items listed within the Gopher file system are assigned a type number or character, such as: text file (0), DOS file (5), unencoded file (6), GIF file (g), and image file (i).
Gopher software development was at its zenith during the early 1990s, with software being designed for a range of platforms, such as the: Acorn, Amiga, Atari, DOS, Mac, NeXT, UNIX, and Windows. Server and client software designed specifically for the Gopher protocol included: Aftershock, Arachne, Atua, Bucktooth, Gophernicus, GOPHSERV, Goscher, Motsognir, PyGopherd and Spacecookie. A range of early web browsers, and a handful of modern web browsers, also provide support for the Gopher protocol, such as: Agora, Amaya, Camino, Classilla, Cyberjack, Chrome, Flock, Internet Explorer, Line Mode Browser, Lynx, Firefox, Netscape Navigator, NetSurf, SeaMonkey, Safari, TkWWW and XB Browser.
Early Gopher developers were innovative, and were copied by their web counterparts: the Veronica search engine predates any web search engine, and was copied as a means by which to find web content. The Mosaic web browser, which is credited with popularising the web, copied features found in early Gopher clients. However, as the web expanded exponentially from 1994 onwards, use of the Gopher protocol stagnated, and in 2017 Veronica indexes in the region of 150 Gopher servers.