## The Gopher Lawn Project

gopher://bitreich.org/1/lawn
gopher://hg6vgqziawt5s4dj.onion/1/lawn

by

Christoph Lohmann <[email protected]>

## Introduction to Gopher

* https://en.wikipedia.org/wiki/Gopher_(protocol)

»The Gopher protocol /ˈɡoʊfər/ is a TCP/IP application layer protocol designed
for distributing, searching, and retrieving documents over the Internet. The
Gopher protocol was strongly oriented towards a menu-document design
and presented an alternative to the World Wide Web in its early
stages, but ultimately HTTP became the dominant protocol. The Gopher
ecosystem is often regarded as the effective predecessor of the World
Wide Web.«

»was«?
No!

## Gopher Protocol

       # sends selector
       C: \r\n
       # returns content of selector, this time a menu
       S: 1\tsome menu text\tselector\tserver.org\t70\r\n
          i\tinformational text\tselector\tserver.org\t70\r\n
          0\tfile.bin\tfile.bin\tserver.org\t70\r\n
          .\r\n

menuitem ::= itemtype + \t + description + \t + selector \t + server + \t + port

       C: file.bin\r\n
       S: <content of file.bin>
          # There should be this last line, but most servers leave it out.
          (.\r\n)

Simple, eh?
We want simplicity.

## Gopher URIs

       gopher://$server:$port/$type$selector

* type tells the client how to display the content of the selector
* servers do not return some mime-type, so the client will only know through
 heuristics what the content is

       itemtype        meaning
       0               plain text
       1               menu listing
       2               CSO search query
       3               error message
       4               binhex encododed file
       5               binary archive
       6               uuencoded text file
       7               search engine query
       8               telnet session
       9               binary file
       g               gif image
       h               HTML file (used for redirects)
       i               informational message
       I               image file
       s               audio file
       T               tn3270 session

## Gopher Clients

Major clients used:
* lynx
* elinks
* various gopher http proxies

Commandline clients:
* curl
* snarf

## Gopher Servers

* afterschock
* bucktooth
* geomyid
* geomyidae
* gn
* gofish
* gophernicus
* gophrier
* gophserv
* goscher
* mgod
* motsognir
* pygopherd
* pygs
* spacecookie

## How to access gopherspace

1. Enter from gopherproject.org
       * gopher://gopherproject.org
2. Search via veronica-2
       * gopher://gopherproject.org/7/v2/vs
3. Use a directory?
       * gopher://bitreich.org/1/lawn (!)

## The Gopher Lawn Project

* Announced on 2017-01-15 on the gopher mailinglist at
 [email protected]
* Categories so far
       * ascii
       * gopher
       * history
       * onion
       * phlog
       * software
       * wiki

## Contribute to the Gopher Lawn Project

* Come on bitreich IRC.
* If you want to directly edit, become a member.
* If you are not a member, write to me directly for adding some entry.
* All entries are accepted.
* If you are a member, work on automations to search gopherspace and classify
 it for the categories.

## Thanks

Thank you for listening!

Questions?