9 Apr 1995

Gopher Clients and Servers

Gopher leads the user through a series of menus organized by common subjects or areas of interest. At Yale, as at many colleges, it is used to organize the online campus information system. Although Gopher tolerates advanced multimedia data types, most Gopher servers supply ordinary text files and a few libraries of downloadable binary programs. As long as Gopher sticks to plain text documents, they can be viewed on DOS or terminal (VT100 or 3270) systems. This has made Gopher an attractive system to organizations that need to deliver simple information to every desktop.

The original idea for Gopher came from the University of Minnesota, whose football team is known as the Golden Gophers. UMN is still the main clearinghouse for information about the protocol and distribution of client and server programs. Most Gopher clients come with a built-in network pointer back to the original UMN Gopher hole.

Gopher leads the user through a sequence of menus arranged by subject matter. Each menu has a list of items each described by a title or sentence. The user selects one of the items, and the Gopher response depends on the type of item:

  1. An item can be another menu. Gopher fetches the menu and displays it on top of or in place of the previous menu.
  2. An item can be an ordinary text file. The file is transferred through the network and is displayed in a popup window using a browser program.
  3. The item can be a type of special data (image, sound) for which a viewer has been configured. Gopher fetches the file and then launches the viewer program to display or play it.
  4. The item can be some other kind of file, typically an archive containing a program or zip archive. Gopher prompts for a file name and directory, then reads the file through the network and stores it as requested.

Although any server will frequently point to files and menus stored on its own disk, a Gopher menu item can also designate menus and items on other servers. If the other server is not available, the attempt to select an item will fail. Such a failure does not mean a problem with the Gopher program nor does it mean that any other item on the same menu will also fail.

Several years ago an enhanced protocol named Gopher+ was proposed. It is not widely exploited. Gopher+ allows the remote client to fetch administrative information about a menu item (the author, date, and a brief description). A document might be available as a Word file, PostScript output, and flat text. The user with Word would prefer that format. Another user with a PostScript viewer may prefer that form of the data. More exotically, Gopher+ allows the server to have several language versions of the item (say a copy in English, one in French, and one in Spanish). The client can then be configured with a list of preferences and will pick up the version most desirable for that individual user.The menus on a Gopher server can be browsed with Web tools such as NCSA Mosaic, Cello, Winweb, and Air Mosaic. The result is not always satisfactory. In particular, the default action for a Web browser is to display anything retrieved on the screen. This is not terribly useful after fetching a binary ZIP file containing a PC program. The default action of a real Gopher client is to display text files, play sound files, and store binary files on disk. This is a more reasonable set of defaults. Gopher-specific clients do a better job of navigating through the details of Gopherspace.

Windows Clients: WSGopher and BCGopher

Originally, Windows on the World proposed Hampson's Gopher as the best Windows Client. Unfortunately, rights to that program were sold to a commercial software house and it has passed out of existence. Terms like "dead gopher" and "Information Roadkill" have been used to describe the result. Now HGOPHER is still a good program, and if you have it there is no particular reason to change unless you see something better. However, it is no longer reasonable to nominate it as the client of choice.


WSGOPHER is a widely used and well recommended Windows client program from Dave Brooks. It is commonly found as WSG-11.ZIP. Although this program has been around for a while, it tends to break WINSOCK packages. You have to use one of the Beta test versions of Trumpet 1.0B to get anything, and make sure to put the latest maintenance on any other WINSOCK package.

WSGOPHER presents Gopherspace as a sequence of cascading menus nested within the application window. Following current Windows practice, there is a toolbar with options to do things like save, print, and copy to the clipboard. The type of each item is represented by a small icon that allows the menus to be displayed quite compactly.

To support several menus simultaneously will require extra memory. The one disadvantage of WSGOPHER is that it needs a lot of RAM (an 8 meg machine is required, a 12 meg machine is nicer).

WSGOPHER is configured through the Configure drop down menus. This allows the user to select an initial home menu, set fonts, determine the programs that view special data types, and select Gopher+ preferences.


This rather massive panel tells WSGOPHER to prefer compressed audio (ulaw) over uncompressed (wav). Similarly JPEG files are more aggressively compressed (especially for photographs) than GIF images. A user would add from the right hand side data types which the client computer can view ("Microsoft-word" for example) and would order them by preference (Word before PostScript).


BCGOPHER from Boston College offers less function. The big icons take up more space and make the menus stretch out. Only one menu is presented at a time, and the user must exit from a lower level menu to go back and make another selection from a previous menu. BCGOPHER is simple to use and configure, but WSGOPHER appears to be a more attractive choice now, unless it breaks your WINSOCK package. Click here to fetch WSG-11.EXE (set your browser to save it to disk).

OS/2 Gopher Client

Once, long ago, your author had a free weekend and wrote the first OS/2 Gopher client. It was a one page REXX program and a one page C support routine (needed because direct REXX access to TCP/IP was not available at the time). This still resides in the "obsolete" directories of some servers and should be avoided at all costs.

The current OS/2 Gophers are written by IBM and NetSuite. The IBM Gopher was produced by David Singer at the IBM Almaden Research facility. It is available from index.almaden.ibm.com which is also an important IBM Gopher server.

The OS/2 Gopher also produces cascading menus, at least when you jump from one server to another. However, they are not contained within an application window but rather exist as peers on the OS/2 desktop screen. Each menu and each selection is managed as a separate task. It is possible to click on a menu item that represents a binary file, fill in the directory and name to which it is to be downloaded, and while it is being transferred select a second and third file and start them going as well. However, the IBM OS/2 Gopher client does not understand Gopher+ protocol.

As you can see from the example menu, the OS/2 Gopher Client (1.61) can be obtained from the Almaden server using Gopher protocol. It is also distributed by IBM on the DEVCON CD, and is available by ftp from software.watson.ibm.com in /pub/os2/ews. It is packaged in with the Warp releases of OS/2.All the Windows Gopher clients work under OS/2. There is only one other native OS/2 Gopher package from NetSuite. It offers about the same function as the IBM Gopher, isn't any better packaged, and comes with a shareware registration fee. There is no particular reason to prefer it to the IBM freeware.

Gopher Servers

Plain Old DOS and Windows do not represent a reasonable platform from which to provide network services, even something as simple as Gopher. Chicago will not make things any better. If you want to make information available on the network, use OS/2, NT, or Unix as the server platform.

Unix Gopher servers are the most common. They fall outside the scope of this article. Look at the main Gopherhole at boombox.micro.umn.edu for information on such servers.

IBM has a rather clever Gopher server for OS/2. It is available as GOSERVE.ZIP in all the same places that the Gopher client is distributed. Each arriving Gopher query launches a REXX program, which examines the request and returns either the data or the name of a file to transfer. This provides a very flexible and powerful system for low volume activity. The overhead of starting a REXX program probably precludes its use as a Enterprisewide Information System.

The EMWAC consortium has written a Gopher server that runs in the background as a "service" in Windows NT. It distributes local files from a local tree of directories. A special file type represents an alias pointer to data residing on another server. This is a fairly simple system to install, configure, and maintain and can support a high volume of activity, particularly on a RISC platform.

Click here to view the EMWAC Gopher server directory.

Continue Back PCLT

Copyright 1995 PC Lube and Tune -- Windows on the World -- H. Gilbert