L'objectif initial du projet est de mettre au point une version améliorée du mécanisme de FTP anonyme (communication avec un serveur FTP sans identifiants de connexions), en l'agrémentant d'une navigation hypertexte (navigation entre contenus liés entre eux par des liens permettant de passer de l'un à l'autre). Le protocole Gopher intègre également un moteur de recherche distribué de documents. Sa conception est entérinée par la publiciation du RFC1436 (The Internet Gopher Protocol en mars 1993).

L'implémentation de Gopher nécessite, tout comme FTP, l'utilisation d'un serveur d'un côté et d'un client de l'autre. Le 7 octobre 1991, une annonce est passée dans le groupe de news comp.sys.mac.announce annonçant la mide à disposition de clients et de serveurs sous le titre Internet Gopher- a distributed campus-wide information system. De part sa syntaxe simple, sa simplicité d'installation et d'utilisation, Gopher va rapidement détrôné FTP pour la diffusion de documents sur le réseau Internet.

Gopher va également devenir le premier système d'aggrégation de contenus issus des systèmes :

  • WAIS (Wide Area Information Servers), client-serveur de recherche en mode texte, possédant son protocole de transport (et non TCP/IP), apparu fin des années 1980
  • Archie, outil d'indexation de contenu des serveurs FTP, implémenté dès 1990
  • Veronica, moteur de recherche basé sur l'indexation du contenu des serveurs Gopher, développé en 1992
  • passerelles vers des serveurs FTP
  • passerelles vers des serveurs Usenet


L'adoption de Gopher par les université fût immédiate dans la mesure où ce dernier facilitait la mise en ligne de documents avec la possibilité de les lier aux répertoires en ligne d'autres sites : de 30 serveurs en 1999 à une centaine en 2007, puis environ 125 en 2008, d'après les indexations faites par le moteur de recherche Veronica-2.

Le protocole technique mis en oeuvre par Gopher s'avère très simple :

  • le client se connecte au port d'écoute du serveur Gopher (usuellement le port 70)
  • le client interroge le serveur via la commande / suivi du type de demande
  • si le contenu n'est pas trouvé, le serveur affiche le répertoire par défaut
  • une fois la réponse faite, le serveur ferme la connexion


Pour lister un répertoire, on utilisera par exemple l'URL :

  • gopher://hal3000.cx:2347/1)

Pour rechercher les ressources Software, on utilisera :

  • gopher://hal3000.cx:2347/7?/Software


Peu de serveurs Gopher subsistent de nos jours, le serveurs du World Wide Web les ayant supplanté.