An introduction to the Gopher protocol 2011 February 22 @ 16:34 -------------------------------------- I first came across the gopher protocol in the fall of 1999, about 3 or 4 years after first stumbling about the internet (courtesy of my high school), and well after the gopher protocol had faded from the public’s mind. But for some particular reason, I was favourably disposed towards the protocol, more so than I was to http. Gopherspace was what I imagined the internet, prior to commercialisation, was like: a vast sea of text documents, some pictures, perhaps a video, or sound clip, or two, and nary an advertisement in sight (excluding those websites maintained by corporations, which may or may not qualify as ads). There was something elegant about the stark simplicity of gopherspace, and that elegance appealed to my spartan nature. And so it remains, almost ten years later, that gopherspace still holds the same appeal for me today, as it did when I first came across it. Granted I have yet to setup my own gopher server (a long-standing, but unfulfilled, goal), so until then, this page will have to serve as my small contribution to the promotion of the gopher protocol. Ave Goopher://! A Short & Incomplete History ---------------------------- The gopher protocol began its life at the University of Minnesota way back in 1991. Developers there were looking for a way of efficiently sharing documents amongst academics and researchers using a consistent interface, and lo-and-behold they came up with gopher. Gopher is a network protocol that organises files in hierarchical, text-based lists, and uses the following item-types (which include the original item-types, the gopher+ item-types, and common but unofficial item-types) to identify different files and items that appear in the hierarchy: 0 – text file (original) 1 – directory (original) 2 – CSO phone-book/name server (original) 3 – error (original) 4 – Macintosh HQX [BinHexed] file (original) 5 – PC (DOS) binary (original) 6 – UNIX unencoded file (original) 7 – full text index [gopher menu] (original) 8 – telnet session (original) 9 – binary file (original) + – redundant server (original) : – bitmap image (Gopher+) ; – movie type (Gopher+) < – sound type (Gopher+) c – calendar e – event g – GIF image (original) h – HTML file i – in-line text that is not an item m – BSD format mbox file s – sound file I – image [other than GIF] (original) M – MIME multipart/mixed message P – PDF document T – tn3270 session (original) For the next few years, gopher was THE protocol of the internet, and gopher servers began to spring up all over the place. By 1995, you couldn’t swing a dead cat on the internet without hitting a gopher server. Unfortunately for gopher, 1995 also marked the year that http began to overtake it due to the ability to integrate text, images, audio, and video, into one page, and the lack of a strict hierarchical file organisation structure. But even http’s technical advantages need not have spelled quite the doom that gopher has since suffered. Unfortunately (again) for gopher, the University of Minnesota began charging a licencing fee for gopher servers. Thus http’s rapid rise to dominance was assured. Fortunately, the University of Minnesota eventually had a change of heart, releasing gopher under the GPL in 2000, and while wide adoption of gopher is likely not going to happen (the University of Minnesota has even shut down their gopher server), there are still dedicated hobbyists and enthusiasts out there, tending the remaining gopher servers, helping to keep an important part of electronic history alive. Origins Of The Name ------------------- I have seen three theories as to the origin of the gopher name. Any one, or combination of, which might be true. * It is a play on the words ‘go for’ * Information is accessed through a serious of menus that are analogous to a gopher warren * It was named in honour of the University of Minnesota’s sports teams, which are named the ‘Golden Gophers’