Gopher 是一种互联网协议,用于在互联网上分发、搜索和检索文档。Gopher 由明尼苏达大学于 20 世纪 90 年代初开发,是万维网的前身,提供了一种基于文本、层次化且用户友好的在线文档浏览方法。
Gopher 的起源与演化
Gopher 协议由明尼苏达大学的 Mark P. McCahill 领导的团队于 1991 年构思。该协议以该校吉祥物“金地鼠”命名,最初用于访问校园内的互联网资源。
在图形万维网出现之前,Gopher 的简单性和分层组织信息的能力使其成为互联网用户的热门选择。然而,网络的兴起,尤其是 1993 年推出 Mosaic 网络浏览器之后,由于网络能够显示文本旁边的图形和更吸引人的界面,Gopher 的光芒大大盖过了 Gopher。
深入探索 Gopher
Gopher 基于客户端-服务器架构,Gopher 客户端连接到 Gopher 服务器以请求信息。Gopher 呈现的信息被组织成类似于文件系统的层次结构。当用户选择 Gopher 链接时,客户端会向服务器发送查询,然后服务器返回所请求的文档或链接目录(如果链接是目录)。
该协议还支持关键字搜索,Gopher 客户端可以向 Gopher 服务器发送搜索字符串,服务器会返回与搜索字符串匹配的所有文档。不过,值得注意的是,Gopher 不支持现代协议中更高级的功能,例如 HTTPS、cookie 或交互式表单。
Gopher 内部:理解其工作机制
Gopher 采用客户端-服务器模型,Gopher 客户端向 Gopher 服务器发送信息请求。服务器通过发送请求的文本文件或菜单进行响应。菜单是简单的文本文件,其中的行表示菜单项。每个菜单项都包含一个可读的名称和一个可以找到该菜单项的服务器地址。
Gopher 使用自己独特的 URL 方案。Gopher URL 以“gopher://”开头,包含服务器地址、资源类型和选择器字符串。选择器字符串是服务器上资源的路径。
Gopher 的显著特点
- 简单: Gopher 的设计非常简单,可以轻松创建 Gopher 客户端、服务器和文档。
- 层次结构: Gopher 以清晰、分层的格式呈现信息,类似于文件系统。
- 高效的网络使用: Gopher 比 HTTP 等图形协议占用更少的带宽,因此在慢速连接上浏览速度更快。
- 可搜索性: Gopher 支持在 Gopher 服务器上进行关键字搜索。
- 基于纯文本: Gopher 文档主要是纯文本,尽管该协议也可以分发二进制文件。
不同类型的地鼠
在 Gopher 中,不同类型的物品使用物品行开头的单字符代码来标识。一些常用的物品类型包括:
类型代码 | 描述 |
---|---|
0 | 文本文件:此项类型代表文档或任何其他类型的文本数据。 |
1 | 目录:此项类型是包含更多项目的 Gopher 菜单。 |
7 | 搜索引擎:此项类型表示可搜索的索引。 |
9 | 二进制文件:此项类型用于非文本数据文件,例如图像、音频或视频。 |
我 | 信息消息:此项类型用于在 Gopher 菜单内显示信息文本。 |
Gopher 的实际应用:用途、挑战和解决方案
尽管 Gopher 不如 Web 那么流行,但它仍然拥有一批忠实的用户,主要来自复古计算和技术爱好者社区。Gopher 用于分发基于文本的文档和文件,以及创建易于导航的链接菜单。
然而,Gopher 也面临一些挑战。现代网络浏览器默认不支持 Gopher,而且该协议缺乏加密和 Cookie 等高级功能。尽管如此,专用的 Gopher 客户端和代理服务可用于访问 Gopher 网站,并且人们正在努力在保持协议简单性的同时对其进行现代化改造。
与类似协议的比较
特征 | 地鼠 | HTTP(网络) | 文件传输协议 |
---|---|---|---|
加密 | 不 | 是的 | 是的 |
饼干 | 不 | 是的 | 不 |
可搜索性 | 是的 | 是的 | 不 |
层次结构 | 是的 | 不 | 是的 |
Gopher 的未来:将会有什么?
尽管 Gopher 似乎已成为历史,但人们对使用和开发该协议的兴趣一直不减,这主要是因为它的简单性和效率。开发人员正在开展一些项目来使 Gopher 现代化,例如增加对加密的支持,并且正在努力创建一个与现代 Web 相当的 Gopher,即“Gopherspace”。
Gopher 的代理服务器的作用
鉴于现代浏览器默认不支持 Gopher 协议,代理服务器在访问 Gopher 网站时起着至关重要的作用。Gopher 到 HTTP 代理允许用户使用标准 Web 浏览器访问 Gopher 内容。代理服务器获取请求的 Gopher 内容并将其转换为浏览器可以显示的 HTTP 内容。这在现代 Web 和 Gopher 之间架起了一座桥梁,使用户可以探索独特的、以文本为中心的 Gopherspace 世界。
相关链接
- 深覆合项目:一项将 Gopher 重新带回 Firefox 和 Chrome 的计划。
- Floodgap 公共 Gopher 代理:公共的 Gopher 到 HTTP 代理。
- Gopher 协议:原始的 Gopher 协议规范。
- SDF 公共访问 Unix 系统:一个著名的 Gopher 站点。
- 地鼠草坪:活跃 Gopher 站点的精选列表。