Redis 和 Gopher 协议

Redis Gopher 协议实现

** 注意:Redis 7.0 中删除了对 Gopher 的支持 **

Redis 包含 Gopher 协议的实现,如 RFC 1436 的 1436 中。

Gopher 协议在 90 年代后期非常流行。这是一个替代方案 到 Web,服务器端和客户端的实现都非常简单 Redis 服务器只有 100 行代码即可实现这一点 支持。

你现在用 Gopher 做什么?好吧,Gopher 从未真正死去过,而且 最近有一场运动,目的是让 Gopher 的内容更具层次感 仅由要复活的纯文本文档组成。有些人想要一个更简单的 互联网,也有人认为主流互联网变得太过分了 受控,为人们创造一个替代空间是很酷的 想要呼吸一下新鲜空气。

无论如何,在 Redis 的 10 岁生日那天,我们给了它 Gopher 协议 作为礼物。

运作方式

Redis Gopher 支持使用 Redis 的内联协议,特别是 两种无论如何都是非法的内联请求:空请求 或任何以 “/” 开头的请求(没有以 用这样的斜线)。正常的 RESP2/RESP3 请求完全超出 路径,并且也照常提供。

如果您在启用 Gopher 时打开与 Redis 的连接并发送它 像 “/foo” 这样的字符串,如果有一个名为 “/foo” 的键,则通过 Gopher 协议。

为了创建一个真正的 Gopher“洞”(Gopher 中 Gopher 站点的名称 talking),您可能需要一个脚本,例如 https://github.com/antirez/gopher2redis 中的脚本。

安全警告

如果您计划将 Redis 放在 Internet 上可公开访问的地址中 服务器 Gopher 页面,请确保为实例设置密码。 设置密码后:

  1. Gopher 服务器(启用时,不是默认)将通过 Gopher 终止服务内容。
  2. 但是,在客户端进行身份验证之前,不能调用其他命令。

因此,请使用requirepass选项来保护您的实例。

要启用 Gopher 支持,请使用以下配置行。

gopher-enabled yes

访问不是字符串或不退出的键将生成 Gopher 协议格式的错误。

为本页评分
返回顶部 ↑