stringtranslate.com

Gopher (protocolo)

El protocolo Gopher ( / ˈ ɡ f ər / ) es unprotocolo de comunicacióndiseñado para distribuir, buscar y recuperar documentos ende protocolo de Internet. El diseño del protocolo Gopher y la interfaz de usuario están basados ​​en menús y presentaron una alternativa a laWorld Wide Webensus primeras etapas, pero finalmente cayeron en desgracia y dieron paso al Protocolo de transferencia de hipertexto (HTTP). El ecosistema Gopher se considera a menudo como 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 no son compatibles de forma nativa con la Web e impone una jerarquía mucho más estricta en los documentos que almacena. Su interfaz de menú de texto es adecuada para entornos informáticos que dependen en gran medida de terminales de computadora remotas orientadas 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. Las revisiones más recientes de Gopher y los clientes gráficos agregaron soporte para multimedia. [ cita requerida ]

La estructura jerárquica de Gopher proporcionó una plataforma para las primeras conexiones de bibliotecas electrónicas a gran escala. [4] El protocolo Gopher todavía es utilizado por entusiastas y, aunque ha sido reemplazado casi por completo por la Web, aún queda una pequeña población de servidores que se mantienen 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 los Estados Unidos. [5] Sus objetivos centrales eran, como se indica en el 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 el Protocolo de transferencia de archivos (FTP) y Usenet .

El interés general en los sistemas de información de 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 los directorios y recursos en línea de otros sitios, fueron los factores que contribuyeron a la rápida adopción de Gopher.

Anklesaria acuñó el nombre como un juego de palabras con varios significados de la palabra "gopher". [7] La ​​mascota de la Universidad de Minnesota es el gopher , [8] un gofer es un asistente que "va por" cosas, y un gopher excava en el suelo para llegar a un lugar deseado. [9]

Rechazar

En 1991, la World Wide Web estaba en pañales y los servicios de Gopher se consolidaron rápidamente. [10] A finales de los años 1990, Gopher había dejado de expandirse. Varios factores contribuyeron a su estancamiento:

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

Censo de servidores

Número de servidores Gopher desde 2012 hasta 2022

Detalles técnicos

La conceptualización del conocimiento en un “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 mucho a un sistema de archivos de red global de solo lectura montable (y hay software disponible, como gopherfs, que puede montar un servidor Gopher como un 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 que se pueden enlazar entre sí. La elección de los elementos y títulos del menú está controlada por el administrador del servidor.

De manera similar a un archivo en un servidor web, un archivo en un servidor Gopher puede vincularse como un elemento de menú desde cualquier otro servidor Gopher. Muchos servidores aprovechan esta vinculación 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 fácil de negociar, lo que permite navegar sin utilizar un cliente.

Solicitud de usuario

En primer lugar, el cliente establece una conexión TCP con el servidor en el puerto 70, el puerto estándar de Gopher. A continuación, el cliente envía una cadena seguida de un retorno de carro seguido de un salto 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

El servidor responde con el elemento solicitado y cierra la conexión. Según el protocolo, antes de cerrar la conexión, el servidor debe enviar un punto (es decir, un carácter de punto) en una línea por sí mismo. Sin embargo, no todos los servidores cumplen con 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 de Gopher fácilmente desde una línea de comandos:

$ echo  jacks/jack.exe | nc gopher.example.org 70 > jack.exe      

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

Solicitud de búsqueda

La cadena de selección en la solicitud puede ir seguida opcionalmente de un carácter de tabulación y una cadena de búsqueda. Esto lo utiliza el tipo de elemento 7.

Código fuente de un menú

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

El primer carácter de una línea de selección indica el tipo de elemento , que le indica 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 los archivos adjuntos de correo electrónico y la Web .

Al tipo de elemento le sigue 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 la dirección IP del servidor) y el puerto de red .

Todas las líneas de un menú gopher terminan con "CR + LF".

Ejemplo de una línea de selección en una fuente de menú: La siguiente línea de selección genera un vínculo 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 menú de Gopher. La cadena "Floodgap Home" es lo que el cliente mostrará al usuario cuando visite el menú de ejemplo.

1Inicio de Floodgap /inicio gopher.floodgap.com 70

Tipos de artículos

En el código fuente de un menú de 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 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, de modo que el tipo de elemento de Gopher pudiera determinarse por la propia URL. La mayoría de los navegadores Gopher aún disponibles utilizan estos prefijos en sus URL.3his

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

/Referencia1CIA World Factbook /Archivos/mirrors/textfiles.com/politics/CIA gopher.quux.org 700Jargon 4.2.0 /Referencia/Jargon 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 701Diccionario geográfico de EE. UU. /Referencia/Diccionario geográfico de EE. UU. gopher.quux.org 70 +Este archivo contiene información sobre Estados Unidos falso (NULL) 0icidades, condados y áreas geográficas. Tiene falsos (NULL) 0latitud/longitud, población, superficie terrestre y acuática, falso (NULL) 0y códigos postales. falso (NULL) 0yo finjo (NULL) 0Para buscar una ciudad, ingrese el nombre de la ciudad. Para buscar una ciudad falsa (NULL) 0Si se trata de un condado, utilice el nombre más Condado; por ejemplo, falso (NULL) 0Condado de iDallas. falso (NULL) 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 por el espacio de Gopher siguiendo los enlaces. [5] Este menú incluye un recurso de texto (itemtype 0en la tercera línea), múltiples enlaces a submenús (itemtype 1, en la segunda línea, así como en las líneas 4 a 6) y un mensaje de información no estándar (a partir de la línea 7), dividido en varias líneas al proporcionar valores ficticios para selector, host y puerto.

Históricamente, para crear un enlace a un servidor web, se utilizaba "GET /" como pseudoselector para emular una petición HTTP GET . [26] John Goerzen creó una adición [27] al protocolo Gopher, comúnmente denominada " 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, 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 al servidor y recibirán una página de redirección HTML).h

Tuza+

Gopher+ es una mejora compatible con el futuro del protocolo Gopher. Gopher+ funciona enviando metadatos entre el cliente y el servidor. La mejora nunca fue ampliamente adoptada 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 solicitado por el cliente. Un elemento se marca como compatible con Gopher+ en la lista de directorios de Gopher mediante una tabulación + después del puerto (este es el caso de algunos de los elementos en el 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 los recursos de Gopher.

Otros clientes

Clientes como navegadores web, bibliotecas y utilidades diseñadas principalmente para acceder a recursos de la World Wide Web, pero que mantienen (o mantenían) soporte para gopher.

Los navegadores que no tienen compatibilidad nativa con Gopher pueden acceder a los servidores utilizando una de las puertas de enlace de Gopher a HTTP disponibles o un servidor proxy que convierte los menús de Gopher en HTML ; los proxies conocidos son el proxy Gopher público 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 convierte cualquier gopher://URL en 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 , está disponible Burrow [38] . Redirecciona gopher://las URL a un proxy. En el pasado, estaba disponible una extensión basada en proxy de Overbite para estos navegadores, pero ya no se mantiene y no funciona con las versiones actuales (>23). [17] Para Konqueror , está disponible Kio gopher [43] .

Como la interfaz simple de ahorro de ancho de banda de Gopher 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 vio un renovado interés en los clientes nativos de Gopher para los teléfonos inteligentes más populares .

La popularidad de Gopher alcanzó su punto máximo en una época en la que todavía había muchas arquitecturas informáticas y sistemas operativos que competían por igual. 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 la visualización 3D, e incluso hay 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

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

Véase también

Referencias

  1. ^ Carlson, Scott (5 de septiembre de 2016). «Cómo Gopher casi ganó Internet». Chronicle of Higher Education . 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 telaraña de Gopher». New Scientist . 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 Triangulation de la cadena TWiT.tv
  4. ^ Suzan D. McGinnis (2001). Gestión de colecciones electrónicas. Routledge. Págs. 69-72. ISBN. 0-7890-1309-6.
  5. ^ ab December, John; Randall, Neil (1994). La World Wide Web desatada . Sams Publishing. p. 20. ISBN 1-57521-040-1.
  6. ^ "PAPER: Topics". Grupo de noticias : bit.listserv.cwis-l. 12 de enero de 1992. Consultado el 27 de julio de 2011 .
  7. ^ Mark McCahill, Farhad Anklesaria. "Smart Solutions: Internet Gopher" (Flash) . Minneapolis: University of Minnesota Media Mill. 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 haberle dado el nombre 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). "gopher licensing". 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). Hackeando el capitalismo: el movimiento del software libre y de código abierto . Routledge. pág. 25. ISBN 978-0-415-95543-0.
  15. ^ "UMN Gopher(d) publicado bajo la 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 Gopher? Por qué la Web venció a Gopher en la batalla por la distribución de información en el protocolo".
  17. ^ abcde "The Overbite Project". Floodgap . Consultado el 25 de julio de 2010 .
  18. ^ abcdefghi «Puerta de enlace Gopher-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). "Down the Gopher Hole". 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". 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". The Omni Group. Archivado desde el original el 7 de agosto de 2011. Consultado el 27 de julio de 2011. OmniWeb 5.9.2 Publicado el 1 de abril de 2009: Se implementó un soporte innovador para el protocolo Gopher revolucionario, ¡una novedad para los navegadores basados ​​en WebKit! Para obtener una lista de servidores Gopher, consulte la lista Floodgap. ¡Disfrute!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 se encuentra en Floodgap: nuevos servidores Gopher y no hace referencia al Día de los Inocentes.
  23. ^ "Curl: Re: Parches Gopher para cURL (incluye paquete de pruebas)". curl-library (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. ^ "¿Qué dice la entrada del directorio? Tipos de campos del tipo Gopher actual". 5 de marzo de 2019.
  26. ^ "Gopher en la World Wide Web" . Consultado el 29 de septiembre de 2021 .
  27. ^ "Gopher: gopher.2002-02". gopher (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 Gopher. Grupo de trabajo de redes. doi : 10.17487/RFC4266 . RFC 4266. Norma propuesta. Deja obsoleta la RFC 1738.
  31. ^ Charles Childers. "Gopher Client 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". gemini/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-users (Lista de correo). Linux From Scratch . 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. ^ Strong, Robert; et al. (14 de julio de 2007). «Bug 388195 – Remove Gopher protocol support for Firefox» (Error 388195: eliminar la compatibilidad del protocolo Gopher para Firefox). Bugzilla . Consultado el 15 de junio de 2010 .
  37. ^ hotaru.firefly; et al. (2 de mayo de 2009). "Problema 11345: el protocolo gopher no funciona". Problemas - chromium . Consultado el 25 de julio de 2011 .
  38. ^ ab "Burrow: Gopherspace Explorer para Chrome". Chrome Web Store . Archivado desde el original el 26 de enero de 2024. Consultado el 1 de julio de 2019 .
  39. ^ "Microsoft Security Bulletin 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 de 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». The Omni Group . 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". The Omni Group . 1 de abril de 2009. Archivado desde el original el 7 de agosto de 2011. Consultado el 3 de abril de 2009 .
  43. ^ "Kio gopher" . Consultado el 1 de abril de 2017 .
  44. ^ Lore Sjöberg (12 de abril de 2004). «Gopher: tecnología subterránea». Wired News . 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 sobre Internet Gopher y Conferencia sobre Internet Gopher". PrentissRiddle.com . Consultado el 20 de mayo de 2008 .
  46. ^ Masinter, L.; Ostrom, E. (junio de 1993). "Recuperación de información colaborativa: Gopher de MOO" (PDF) . Actas de INET . Vol. 93.
  47. ^ Anklesaria, Farhad; McCahill, Mark P; Lindner, Paul; Johnson, David; Torrey, Daniel; Alberti, Bob (marzo de 1993). Protocolo Gopher de Internet (un protocolo distribuido de búsqueda y recuperación de documentos). Network Working Group. doi : 10.17487/RFC1436 . RFC 1436. Informativo.
  48. ^ "Eliminar la compatibilidad con el protocolo Gopher. Por yoav-steinberg · Solicitud de incorporación de cambios n.° 9057 · redis/Redis". GitHub .
  49. ^ "Todo sobre Archie, Gopher, Verónica y Jughead".

Enlaces externos