Tabla de contenidos
Acceso a Internet
En pocas palabras, el Gopher es un sistema distribuido de búsqueda y recuperación de documentos. Combina las mejores características de exploración a través de colecciones de información y de bases de datos completamente indexadas. El protocolo y el software siguen un modelo cliente/servidor y permiten a los usuarios de los más variados sistemas de sobremesa explorar, buscar y recuperar documentos residentes en múltiples servidores distribuidos.
El protocolo Gopher se desarrolló en la Universidad de Minesota y está disponible en el RFC 1436. Su estado es informacional.
La razón de desarrollar el Gopher fue la necesidad de un sistema de información a nivel de campus que permitiese a cualquiera publicar documentos o información incluso con un pequeño ordenador de sobremesa. El software de clientes Gopher concede a los usuarios una jerarquía de ítems y directorios muy parecida a un sistema de ficheros. De hecho, la interfaz del Gopher está diseñada para asemejarse a un sistema de ficheros, ya que un sistema de ficheros es un buen modelo para localizar documentos y servicios. De este modo, al conectarse a un servidor Gopher se tiene una lista de distintos ítems, similar a la apariencia de directorio raíz de un PC. Después de seleccionar un ítem del menú, se obtienen todos los ítems incluidos en él, de forma similar a un subdirectorio, y así sucesivamente. Si se selecciona un ítem que representa un fichero, el fichero se transmite automáticamente y se le muestra al cliente. No es necesario que el fichero esté localizado en el mismo servidor Gopher donde se obtuvo la información del sistema de archivos. Un menú Gopher puede incluir ítems de servidores Gopher distintos y el usuario se conecta de modo automático al servidor donde se halla el ítem seleccionado. El usuario no sabe ni le importa el hecho de que los ítems a seleccionar puedan residir en muchas máquinas distintas en Internet.
Un ejemplo sencillo:
Te gustaría echarle un vistazo al menú de la cafetería
Puede que la ruta al archivo sea muy compleja, y que muchos servidores Gopher de todo el mundo estén implicados
Para implementar la jerarquía mencionada anteriormente, el cliente Gopher necesita alguna información acerca del tipo de objeto con el fin de mostrar el ítem que representa el fichero o el directorio, por ejemplo. El tipo de Gopher se codifica con un sólo dígito al comienzo de cada línea. La siguiente es una lista de tipos conocidos del Gopher que se incluyen en el RFC:
Los siguientes párrafos describen el funcionamiento básico del protocolo Gopher
En esencia, el protocolo Gopher consiste en una conexión de un cliente a un servidor y en enviar al servidor un selector(una línea de texto, que puede estar vacía) por medio de una conexión TCP/IP. El servidor responde con un bloque de texto terminado en una línea que contiene un punto, y cierra la conexión. El servidor no retiene información de estado entre transacciones con un cliente. Asumir, por ejemplo, que un servidor Gopher escucha en el puerto 70. La única información de configuración que el software del cliente retiene es el nombre del servidor y el número de puerto(en este ejemplo la máquina es rawBits.micro.umn.edu y el puerto el 70). En el ejemplo de abajo el carácter F denota al carácter TAB.
Cliente: {Abre la conexión con rawBits.micro.umn.edu en el puerto 70} Server: {Acepta la conexión pero no dice nada} Client: <CR><LF> {Envía una línea vacía, queriendo decir: "Muestra lo que tienes"} Server: {Envía una serie de líneas, cada una acabada en CR LF} 0About internet GopherFStuff:About usFrawBits.micro.umn.eduF70 1Around University of MinnesotaFZ,5692,AUMFunderdog.micro.umn.eduF70 1Microcomputer News & PricesFPrices/Fpserver.bookstore.umn.eduF70 1Courses, Schedules, CalendarsFFevents.ais.umn.eduF9120 1Student-Staff DirectoriesFFuinfo.ais.umn.eduF70 1Departmental PublicationsFStuff:DP:FrawBits.micro.umn.eduF70 {.....etc.....} . {$Period on a line by itself$} {El servidor cierra la conexión}
El primer carácter de cada línea describe el tipo de Gopher como se muestra más arriba. Los siguientes caracteres hasta llegar a un TAB constituyen la ristra de caracteres a mostrar al usuario para que haga su selección. Los caracteres que sigan a ese TAB hasta llagar al siguiente forma una ristra selectora que el cliente debe enviar al servidor para recuperar el documento(o el listado de un directorio). En la práctica, la ristra selectora suele ser una ruta de acceso u otro selector de un fichero que permita al servidor localizar el ítem deseado. Los dos siguientes campos delimitados por TAB denotan el nombre del dominio del host o directorio que posee el documento, y el puerto con el que conectarse. Un CR/LF denota el fin del ítem. El cliente puede presentar el flujo de datos descrito arriba del modo siguiente:
About Internet Gopher Around the University of Minnesota... Microcomputer News & Prices... Courses, Schedules, Calendars... Student-Staff Directories... Departmental Publications...
En este caso, los directorios se muestran con una elipsis, y los ficheros sin ninguna. Sin embargo, dependiendo de la plataforma para la que se ha diseñado el cliente y del gusto del autor, los ítems se pueden representar con otras marcas de texto o con iconos.
En el ejemplo, la línea 1 describe un documento que el usuario verá como "About Internet Gopher". Para recuperar este documento, el software cliente debe enviar la cadena: "Stuff:About us" to rawBits.micro.umn.edu at port 70. Si el cliente hace esto, el servidor responderá con los contenidos del documento, terminados en una línea. Como se puede ver en el ejemplo, el usuario no conoce o no le importa que los ítems a seleccionar pueden hallarse en distintas máquinas de Internet. La conexión entre servidor y cliente sólo existe mientras la información es transferida. Después de esto el cliente se puede conectar con un servidor diferente con el fin de conseguir los contenidos de un directorio dado.
Para más información acerca del protocolo Gopher, remitirse al RFC 1436. Para una lista de FAQs , incluyendo los FTPs anonónimos para obtener el código del cliente y el servidor Gopher, descargar el siguiente fichero del FTP anónimo: URL:ftp://rtfm.mit.edu/pub/usenet/news.answers/gopher-faq.
A pesar de lo interesante que puede ser explorar el "Gopherespacio", puede que un día quieras recuperar alguna información o un fichero de un servidor Gopher. El problema es como acceder a los servidores adecuados con la información necesaria sin tener que llamar a interminables menús Gopher. Afortunadamente, hay una forma de hacer el Gopher aún más sencillo de usar.
Esta herramienta se llama Veronica("Very Easy Rodent-Oriented Net-wide Index to Computerized Archives") y hace por el Gopherespacio lo que Archie por los sitios FTP.
Veronica es un sistema de localización de recursos que proporciona acceso a información de recursos que tienen la mayoría (99% o más) de los servidores Gopher de todo el mundo. Además de los datos del Gopher nativo, Veronica incluye referencias a muchos recursos suministrados por otros tipos de servidores de información, como servidores WWW, archivos usenet, y servicios de información accesible por telnet.
Las consultas de Veronica son búsquedas que manejan una clave a buscar en un título de un ítem. Una simple consulta puede ser muy potente porque un elevado número de servidores de información se incluyen en el índice.
El acceso a Veronica se efectúa por medio de clientes Gopher. Un usuario de Veronica envía una consulta(a través de un cliente Gopher), que puede contener una expresión clave booleana además de directivas especiales de Veronica. El resultado de la búsqueda de Veronica es un menú Gopher que incluye los ítems de información cuyos títulos contienen la clave especificada. Estos menús se pueden explorar como cualquier otro menú de Gopher.
En enero de 1995, estaban indexados 5057 servidores Gopher. El índice incluye también ítems de aproximadamente otros 5000 servidores, en los casos donde estos últimos son referenciados desde menús del Gopher. Estos otros servidores consisten principalmente en 3905 servidores WWW y alrededor de 1000 servicios de tipo TELNET.
Veronica se puede encontrar en la mayoría de los servidores Gopher, seleccionando "Other Gopher and Information Services" en el menú principal y luego "Searching through Gopherspace using Veronica". Si el servidor Gopher no proporciona estos servicios, es posible conectarse directamente a Veronica via Gopher://veronica.scs.unr.edu.:70/11/veronica. Allí se puede encontrar además información adicional sobre Veronica.