stringtranslate.com

Topo (protocolo)

El protocolo Gopher ( / ˈ ɡ f ər / ) es un protocolo de comunicación diseñado para distribuir, buscar y recuperar documentos en redes de Protocolo de Internet . El diseño del protocolo Gopher y la interfaz de usuario se basa en menús y presentó una alternativa a la World Wide Web en sus primeras etapas , pero finalmente cayó en desgracia y dio paso al Protocolo de transferencia de hipertexto ( HTTP ). El ecosistema Gopher a menudo se considera el predecesor efectivo de la World Wide Web. [1] [2]

Uso

El protocolo Gopher fue inventado por un equipo dirigido por Mark P. McCahill [3] en la Universidad de Minnesota . Ofrece algunas características que la Web no admite de forma nativa e impone una jerarquía mucho más sólida a los documentos que almacena. Su interfaz de menú de texto se adapta bien a entornos informáticos que dependen en gran medida de terminales informáticos remotos orientados a texto , que todavía eran comunes en el momento de su creación en 1991 , y la simplicidad de su protocolo facilitó una amplia variedad de implementaciones de clientes. Más reciente [ ¿cuándo? ] Las revisiones de Gopher y los clientes gráficos agregaron soporte para multimedia. [ cita necesaria ]

La estructura jerárquica de Gopher proporcionó una plataforma para las primeras conexiones de bibliotecas electrónicas a gran escala. [4] Los entusiastas todavía utilizan el protocolo Gopher y, aunque ha sido suplantado casi por completo por la Web, sigue existiendo una pequeña población de servidores mantenidos activamente. [2]

Orígenes

El sistema Gopher fue lanzado a mediados de 1991 por Mark P. McCahill, Farhad Anklesaria, Paul Lindner, Daniel Torrey y Bob Alberti de la Universidad de Minnesota en Estados Unidos. [5] Sus objetivos centrales eran, como se establece en RFC  1436:

Gopher combina jerarquías de documentos con colecciones de servicios, incluidos WAIS , los motores de búsqueda Archie y Veronica , y puertas de enlace a otros sistemas de información como File Transfer Protocol (FTP) y Usenet .

El interés general en los sistemas de información para todo el campus (CWIS) en la educación superior en ese momento, [6] y la facilidad de configuración de los servidores Gopher para crear un CWIS instantáneo con enlaces a directorios y recursos en línea de otros sitios, fueron los factores que contribuyeron a la rápida adopción de Gopher.

El nombre fue acuñado por Anklesaria como un juego de varios significados de la palabra "tuza". [7] La ​​mascota de la Universidad de Minnesota es la tuza , [8] un recadero es un asistente que "va tras" cosas, y una tuza excava en el suelo para llegar al lugar deseado. [9]

Rechazar

La World Wide Web estaba en su infancia en 1991 y los servicios de Gopher rápidamente se establecieron. [10] A finales de la década de 1990, Gopher había dejado de expandirse. Varios factores contribuyeron al estancamiento de Gopher:

Gopher sigue siendo utilizado activamente por sus entusiastas y ha habido intentos de revivir Gopher en plataformas y dispositivos móviles modernos. Un intento es The Overbite Project, [17] que alberga varias extensiones de navegador y clientes modernos.

censo de servidores

Número de servidores Gopher de 2012 a 2022

Detalles técnicos

La conceptualización del conocimiento en el "espacio Gopher" o una "nube" como información específica en un archivo particular, y la prominencia del FTP, influyeron en la tecnología y la funcionalidad resultante de Gopher.

Características de la tuza

Gopher está diseñado para funcionar y parecerse a un sistema de archivos de red global de sólo lectura montable (y hay software disponible, como gopherfs, que puede montar un servidor Gopher como recurso FUSE ). Como mínimo, todo lo que se puede hacer con archivos de datos en un CD-ROM , se puede hacer en Gopher.

Un sistema Gopher consta de una serie de menús jerárquicos con hipervínculos. La elección de los elementos del menú y los títulos está controlada por el administrador del servidor.

De manera similar a un archivo en un servidor web, se puede vincular un archivo en un servidor Gopher como elemento de menú desde cualquier otro servidor Gopher. Muchos servidores aprovechan este enlace entre servidores para proporcionar un directorio de otros servidores a los que el usuario puede acceder.

Protocolo

El protocolo Gopher se describió por primera vez en RFC  1436. La Autoridad de Números Asignados de Internet (IANA) ha asignado el puerto 70 del Protocolo de control de transmisión (TCP) al protocolo Gopher. El protocolo es sencillo de negociar, lo que permite navegar sin utilizar un cliente.

Solicitud de usuario

Primero, el cliente establece una conexión TCP con el servidor en el puerto 70, el puerto gopher estándar. Luego, el cliente envía una cadena seguida de un retorno de carro seguido de un avance de línea (una secuencia "CR + LF"). Este es el selector, que identifica el documento que se va a recuperar. Si el selector de elementos fuera una línea vacía, se seleccionaría el directorio predeterminado.

Respuesta del servidor

Luego, el servidor responde con el elemento solicitado y cierra la conexión. Según el protocolo, antes de que se cierre la conexión, el servidor debe enviar un punto (es decir, un punto) en una línea por sí mismo. Sin embargo, no todos los servidores se ajustan a esta parte del protocolo y el servidor puede cerrar una conexión sin devolver un punto final. El principal tipo de respuesta del servidor es un recurso de texto o binario. Alternativamente, el recurso puede ser un menú: una forma de recurso de texto estructurado que proporciona referencias a otros recursos.

Debido a la simplicidad del protocolo Gopher, herramientas como netcat permiten descargar contenido Gopher fácilmente desde una línea de comando:

$ jacks de eco  /jack.exe | nc gopher.ejemplo.org 70 > jack.exe      

El protocolo también es compatible con cURL a partir de 7.21.2-DEV. [23]

Solicitud de búsqueda

Opcionalmente, la cadena de selección en la solicitud puede ir seguida de un carácter de tabulación y una cadena de búsqueda. Esto lo utiliza el tipo de artículo 7.

Código fuente de un menú.

Los elementos del menú Gopher se definen mediante líneas de valores separados por tabulaciones en un archivo de texto . Este archivo a veces se denomina mapa de gopher . Como código fuente de un menú de gopher, un mapa de gopher es más o menos análogo a un archivo HTML para una página web . Cada línea separada por tabulaciones (llamada línea selectora ) le da al software del cliente una descripción del elemento del menú: qué es, cómo se llama y adónde conduce. El cliente muestra los elementos del menú en el orden en que aparecen en el mapa de gopher.

El primer carácter en una línea de selección indica el tipo de elemento , que le dice al cliente a qué tipo de archivo o protocolo apunta el elemento del menú. Esto ayuda al cliente a decidir qué hacer con él. Los tipos de elementos de Gopher son un precursor más básico del sistema de tipos de medios utilizado por la Web y los archivos adjuntos de correo electrónico .

El tipo de elemento va seguido de la cadena de visualización del usuario (una descripción o etiqueta que representa el elemento en el menú); el selector (una ruta u otra cadena para el recurso en el servidor); el nombre de host (el nombre de dominio o dirección IP del servidor) y el puerto de red .

Todas las líneas en un menú de tuza terminan en "CR + LF".

Ejemplo de una línea de selección en una fuente de menú: La siguiente línea de selección genera un enlace al directorio "/home" en el subdominio gopher.floodgap.com, en el puerto 70. El tipo de elemento 1 indica que el recurso vinculado es un Gopher menú en sí. La cadena "Floodgap Home" es lo que el cliente mostrará al usuario cuando visite el menú de ejemplo.

1Floodgap Inicio /home gopher.floodgap.com 70

Tipos de artículos

En el código fuente de un menú Gopher, un código de un carácter indica qué tipo de contenido debe esperar el cliente. Este código puede ser un dígito o una letra del alfabeto; las letras distinguen entre mayúsculas y minúsculas .

La especificación técnica de Gopher, RFC  1436, define 14 tipos de elementos. La especificación posterior de gopher+ definió 3 tipos adicionales. [24] Un código de un carácter indica qué tipo de contenido debe esperar el cliente. El tipo de elemento es un código de error para el manejo de excepciones . Los autores del cliente Gopher improvisaron tipos de elementos (HTML), (mensaje informativo) y ( archivo de sonido ) después de la publicación de RFC 1436. Los navegadores como Netscape Navigator y las primeras versiones de Microsoft Internet Explorer anteponían el código de tipo de elemento al selector como se describe en RFC  4266, para que el tipo de elemento de tuza pueda ser determinado por la propia URL. La mayoría de los navegadores Gopher que aún están disponibles utilizan estos prefijos en sus URL.3his

A continuación se muestra un ejemplo de sesión de Gopher en la que el usuario requiere un menú de Gopher ( /Referenceen la primera línea):

/Referencia1CIA World Factbook /Archives/mirrors/textfiles.com/politics/CIA gopher.quux.org 700Jerga 4.2.0 /Referencia/Jerga 4.2.0 gopher.quux.org 70 +1Bibliotecas en línea /Referencia/Bibliotecas en línea gopher.quux.org 70 +1RFC: Estándares de Internet /Computadoras/Estándares y especificaciones/RFC gopher.quux.org 701EE.UU. Diccionario geográfico /Referencia/Diccionario geográfico de EE. UU. gopher.quux.org 70 +iEste archivo contiene información sobre Estados Unidos falso (NULL) 0Ciudades, condados y áreas geográficas. Tiene falso (NULL) 0latitud/longitud, población, superficie terrestre y acuática, falso (NULL) 0y códigos postales. falso (NULO) 0finjo (NULL) 0iPara buscar una ciudad, ingrese el nombre de la ciudad. Para buscar falso (NULL) 0Si es un condado, use el nombre más Condado; por ejemplo, falso (NULL) 0Condado de Dallas. falso (NULO) 0

El menú de gopher enviado desde el servidor es una secuencia de líneas, cada una de las cuales describe un elemento que se puede recuperar. La mayoría de los clientes los mostrarán como enlaces de hipertexto y así permitirán al usuario navegar a través del espacio gopher siguiendo los enlaces. [5] Este menú incluye un recurso de texto (tipo de elemento 0en la tercera línea), múltiples enlaces a submenús (tipo de elemento 1, en la segunda línea y en las líneas 4 a 6) y un mensaje de información no estándar (a partir de la línea 7). desglosado en varias líneas proporcionando valores ficticios para el selector, el host y el puerto.

Históricamente, para crear un enlace a un servidor web, se utilizaba "GET/" como pseudoselector para emular una solicitud HTTP GET . [26] John Goerzen creó una adición [27] al protocolo Gopher, comúnmente conocido como " enlaces URL ", que permite enlaces a cualquier protocolo que admita URL. Por ejemplo, para crear un enlace a http://gopher.quux.org/, el tipo de elemento es , la cadena de visualización es el título del enlace y el selector de elementos es "URL:http://gopher.quux.org /", y el dominio y el puerto son los del servidor Gopher de origen (de modo que los clientes que no admiten enlaces URL consultarán el servidor y recibirán una página de redirección HTML).h

tuza+

Gopher+ es una mejora compatible con versiones posteriores del protocolo Gopher. Gopher+ funciona enviando metadatos entre el cliente y el servidor. La mejora nunca fue adoptada ampliamente por los servidores Gopher. [28] [29] [30] El cliente envía una tabulación seguida de un +. Un servidor Gopher+ responderá con una línea de estado seguida del contenido que solicitó el cliente. Un elemento se marca como compatible con Gopher+ en el directorio de Gopher mediante una pestaña + después del puerto (este es el caso de algunos de los elementos del ejemplo anterior).

Otras características de Gopher+ incluyen:

Software de cliente

Clientes de Gopher

Se trata de clientes, bibliotecas y utilidades diseñadas principalmente para acceder a recursos de Gopher.

Otros clientes

A los clientes les gustan los navegadores web, bibliotecas y utilidades diseñadas principalmente para acceder a recursos web, pero que mantienen el soporte de Gopher.

Los navegadores sin soporte nativo de Gopher aún pueden acceder a los servidores utilizando una de las puertas de enlace Gopher a HTTP o un servidor proxy que convierte los menús de Gopher en HTML ; Los proxies conocidos son el proxy Gopher público de Floodgap y el proxy Gopher. De manera similar, ciertos paquetes de servidor como GN y PyGopherd tienen interfaces Gopher a HTTP integradas . El software Squid Proxy conecta cualquier gopher://URL al contenido HTTP, lo que permite que cualquier navegador o agente web acceda fácilmente al contenido de Gopher.

Para Mozilla Firefox y SeaMonkey , las extensiones Overbite [17] amplían la navegación Gopher y admiten las versiones actuales de los navegadores (Firefox Quantum v ≥57 y versiones equivalentes de SeaMonkey):

OverbiteWX incluye soporte para acceder a servidores Gopher que no están en el puerto 70 usando una lista blanca y para consultas CSO/ph . OverbiteFF siempre usa el puerto 70. Para Chromium y Google Chrome , Burrow [38] está disponible. Redirige gopher://las URL a un proxy. En el pasado, estaba disponible una extensión basada en proxy Overbite para estos navegadores, pero ya no se mantiene y no funciona con las versiones actuales (>23). [17] Para Konqueror , Kio gopher [43] está disponible.

Como la sencilla interfaz de Gopher, que ahorra ancho de banda, puede ser una buena opción para teléfonos móviles y asistentes digitales personales (PDA), [44] a principios de la década de 2010 se produjo un renovado interés en los clientes nativos de Gopher para los teléfonos inteligentes más populares .

La popularidad de Gopher estaba en su apogeo en un momento en el que todavía había muchas arquitecturas informáticas y sistemas operativos igualmente competitivos. Como resultado, hay varios clientes Gopher disponibles para Acorn RISC OS , AmigaOS , Atari MiNT , Conversational Monitor System (CMS), DOS , Mac OS clásico , MVS , NeXT , OS/2 Warp , la mayoría de los sistemas operativos tipo Unix , VMS . , Windows 3.x y Windows 9x . GopherVR era un cliente diseñado para visualización 3D, e incluso existe un cliente Gopher en MOO . [45] [46] La mayoría de estos clientes están codificados para funcionar en el puerto 70 del Protocolo de control de transmisión (TCP). [47]

software de servidor

Debido a que el protocolo es trivial de implementar de manera básica, todavía hay muchos paquetes de servidor disponibles y algunos aún se mantienen.

Ver también

Referencias

  1. ^ Carlson, Scott (5 de septiembre de 2016). "Cómo Gopher casi ganó Internet". Crónica de la Educación Superior . Consultado el 12 de septiembre de 2016 .
  2. ^ ab Barras, Colin (12 de marzo de 2009). "Cómo la ley de Moore nos salvó de la red de Gopher". Nuevo científico . Archivado desde el original el 31 de agosto de 2011 . Consultado el 20 de septiembre de 2011 .
  3. ^ Mark P. McCahill entrevistado en el programa de televisión Triangulación de la red TWiT.tv
  4. ^ Suzan D. McGinnis (2001). Gestión de cobros electrónicos. Rutledge. págs. 69–72. ISBN 0-7890-1309-6.
  5. ^ ab diciembre, John; Randall, Neil (1994). La World Wide Web desatada . Editorial Sams. pag. 20.ISBN 1-57521-040-1.
  6. ^ "PAPEL: Temas". Grupo de noticias : bit.listserv.cwis-l. 12 de enero de 1992 . Consultado el 27 de julio de 2011 .
  7. ^ Mark McCahill, Farhad Anklesaria. "Soluciones inteligentes: Internet Gopher" (Flash) . Minneapolis: Molino de medios de la Universidad de Minnesota. El evento ocurre a las 2:40. Archivado desde el original el 20 de julio de 2011.McCahill le da crédito a Anklesaria por nombrar a Gopher
  8. ^ "Gophersports.com - Sitio web oficial de atletismo de la Universidad de Minnesota". Archivado desde el original el 14 de agosto de 2010 . Consultado el 17 de agosto de 2010 .
  9. ^ ab Gihring, Tim (11 de agosto de 2016). "El ascenso y la caída del protocolo Gopher". minnpost.com . Consultado el 12 de agosto de 2016 .
  10. ^ Gregersen, Erik; Featherly, Kevin (11 de mayo de 2016). "ARPANET". Enciclopedia Británica . Consultado el 3 de mayo de 2023 .
  11. ^ "Asunto: Política de licencias de software Gopher de la Universidad de Minnesota". Funet.fi . Consultado el 12 de agosto de 2015 .
  12. ^ JQ Johnson (25 de febrero de 1993). "licencia de tuza". Grupo de noticias : comp.infosystems.gopher . Consultado el 27 de julio de 2011 .
  13. ^ Joel Rubin (3 de marzo de 1999). "CW desde la página del servidor VOA". Grupo de noticias : rec.radio.shortwave . Consultado el 27 de julio de 2011 .
  14. ^ Johan Söderberg (2007). Hackear el capitalismo: el movimiento del software libre y de código abierto . Rutledge. pag. 25.ISBN 978-0-415-95543-0.
  15. ^ "¡UMN Gopher (d) lanzado bajo GPL!". Grupo de noticias : comp.infosystems.gopher. 1 de septiembre de 2000 . Consultado el 12 de agosto de 2015 .
  16. ^ Christopher (Cal) Lee (23 de abril de 1999). "¿Adónde se han ido todos los Gophers? Por qué la Web venció a Gopher en la batalla por el protocolo Mind Share".
  17. ^ abcde "El proyecto Overbite". Brecha de inundación . Consultado el 25 de julio de 2010 .
  18. ^ abcdefghi "Gopher de puerta de enlace HTTP de Floodgap Gopher://gopher/0/v2/vstat". Gopher.floodgap.com . Consultado el 5 de enero de 2017 .
  19. ^ Kaiser, Cameron (19 de marzo de 2007). "Por el agujero de la tuza". TidBITS . Consultado el 23 de marzo de 2007 .
  20. ^ "Este es un enlace de Gopher". gopher.floodgap.com . Archivado desde el original el 4 de agosto de 2011.
  21. ^ "Descargar un fragmento de la historia de Internet". El registro de cambios. 28 de abril de 2010. Archivado desde el original el 23 de julio de 2011 . Consultado el 27 de julio de 2011 .
  22. ^ "Notas de la versión - OmniWeb 5 - Productos". El Grupo Omni. Archivado desde el original el 7 de agosto de 2011 . Consultado el 27 de julio de 2011 . OmniWeb 5.9.2 Lanzado el 1 de abril de 2009: Se implementó un soporte innovador para el revolucionario protocolo Gopher, ¡una novedad para los navegadores basados ​​en WebKit! Para obtener una lista de servidores Gopher, consulte la lista de Floodgap. ¡Disfrutar!. El mismo texto aparece en la versión 5.10 del 27 de agosto de 2009 más abajo en la página, copiado de la rama inestable 5.9.2. La lista de Floodgap a la que se hace referencia está en Floodgap: nuevos servidores Gopher y no se refiere al Día de los Inocentes.
  23. ^ "Curl: Re: parches de Gopher para cURL (incluye conjunto de pruebas)". biblioteca curl (lista de correo). 25 de agosto de 2010. Archivado desde el original el 21 de abril de 2019 . Consultado el 9 de marzo de 2020 .
  24. ^ "Especificación del protocolo Gopher +". GitHub .
  25. ^ "¿La entrada del directorio dice qué? Tipos de campos de tipo Gopher actuales". 5 de marzo de 2019.
  26. ^ "Gopher en la World Wide Web" . Consultado el 29 de septiembre de 2021 .
  27. ^ "Tuza: tuza.2002-02". tuza (lista de correo). Gopher.quux.org . Consultado el 12 de agosto de 2015 .
  28. ^ Mešnjak, Matjaž (16 de febrero de 2009). "Re: Nuevo servidor y cliente Gopher". Grupo de noticias : gmane.network.gopher.general. Archivado desde el original el 10 de marzo de 2015 . Consultado el 3 de febrero de 2012 .
  29. ^ Buzón JumpJet (14 de enero de 2008). "Re: Información de contacto del servidor". Grupo de noticias : gmane.network.gopher.general. Archivado desde el original el 10 de marzo de 2015 . Consultado el 3 de febrero de 2012 .
  30. ^ P. Hoffman (noviembre de 2005). El esquema URI de tuza. Grupo de Trabajo de Red. doi : 10.17487/RFC4266 . RFC 4266. Norma propuesta. Obsoleto RFC 1738.
  31. ^ Charles Childers. "Cliente Gopher en la App Store". iTunes . Archivado desde el original el 24 de mayo de 2022.
  32. ^ skyjake (24 de enero de 2022). "v1.10.2". géminis/lagrange . Gitea. Archivado desde el original el 12 de marzo de 2023.
  33. ^ Fonseca, Jonas (24 de diciembre de 2004). "[ANUNCIO] ELinks-0.10.0 (Thelma)". elinks-usuarios (lista de correo). Linux desde cero . Archivado desde el original el 20 de febrero de 2007 . Consultado el 22 de mayo de 2010 .
  34. ^ asakura42; rkd77 (5 de marzo de 2021). "¿Qué ventajas tiene Elinks sobre la versión original actual de Links?". rkd77/elinks . GitHub . Archivado desde el original el 13 de marzo de 2023.
  35. ^ ab "Kio tuza". Wiki de la base de usuarios de KDE . Archivado desde el original el 1 de mayo de 2018 . Consultado el 1 de mayo de 2018 .
  36. ^ Fuerte, Robert; et al. (14 de julio de 2007). "Error 388195: se elimina la compatibilidad con el protocolo Gopher para Firefox". Bugzilla . Consultado el 15 de junio de 2010 .
  37. ^ hotaru.luciérnaga; et al. (2 de mayo de 2009). "Problema 11345: el protocolo Gopher no funciona". Problemas - cromo . Consultado el 25 de julio de 2011 .
  38. ^ ab "Burrow: Gopherspace Explorer para Chrome". Tienda web de Chrome . Archivado desde el original el 26 de enero de 2024 . Consultado el 1 de julio de 2019 .
  39. ^ "Boletín de seguridad de Microsoft MS02-047". Microsoft . 28 de febrero de 2003. Archivado desde el original el 4 de julio de 2011 . Consultado el 23 de marzo de 2007 .
  40. ^ "Notas de la versión para Internet Explorer 7". Microsoft . 2006. Archivado desde el original el 4 de agosto de 2011 . Consultado el 23 de marzo de 2007 .
  41. ^ Sharps, Linda (1 de abril de 2009). "OmniWeb 5.9.2 ahora incluye compatibilidad con Gopher". El Grupo Omni . Archivado desde el original el 14 de agosto de 2011 . Consultado el 3 de abril de 2009 .
  42. ^ "Una lista completa de cambios para cada versión de OmniWeb". El Grupo Omni . 1 de abril de 2009. Archivado desde el original el 7 de agosto de 2011 . Consultado el 3 de abril de 2009 .
  43. ^ "Kio tuza" . Consultado el 1 de abril de 2017 .
  44. ^ Lore Sjöberg (12 de abril de 2004). "Gopher: tecnología subterránea". Noticias por cable . Archivado desde el original el 12 de octubre de 2008 . Consultado el 27 de julio de 2011 .
  45. ^ Riddle, Prentiss (13 de abril de 1993). "GopherCon '93: Taller de Internet Gopher y Conferencia de Internet Gopher". PrentissRiddle.com . Consultado el 20 de mayo de 2008 .
  46. ^ Maestro, L.; Ostrom, E. (junio de 1993). "Recuperación colaborativa de información: Gopher de MOO" (PDF) . Las actas del INET . vol. 93.
  47. ^ Tobillerasaria, Farhad; McCahill, Mark P; Lindner, Pablo; Johnson, David; Torrey, Daniel; Alberti, Bob (marzo de 1993). El Protocolo Gopher de Internet (un protocolo distribuido de búsqueda y recuperación de documentos). Grupo de Trabajo de Red. doi : 10.17487/RFC1436 . RFC 1436. Informativo.
  48. ^ "Eliminar la compatibilidad con el protocolo Gopher. Por yoav-steinberg · Solicitud de extracción n.º 9057 · redis/Redis". GitHub .
  49. ^ "La verdad sobre Archie, Gopher, Veronica y Jughead".

Enlaces externos