欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

你需要一个Webring:复古网络社区的现代复兴指南

2026/7/6计算机网络

通过构建环形链接列表,让个人网站之间形成有机互联,重拾早期互联网的社区精神。

什么是Webring?

Webring(网络环)本质上是一个循环链表结构的网站集合。每个参与站点都包含指向环中前一个和后一个站点的链接,形成一个闭环。这个概念起源于1990年代互联网早期,当时搜索引擎还不完善,人们通过这种方式发现志同道合的网站。

核心特征

  • 主题驱动:环内站点通常围绕特定主题(爱好、专业、兴趣等)
  • 社区自治:无需中心化平台,完全由参与者自行维护
  • 有机增长:新成员通过现有成员的链接加入,形成自然传播

为什么现在需要Webring?

在2026年的今天,互联网已被少数几个超级平台垄断。个人网站虽然越来越多,但往往成为信息孤岛。Webring能带来:

  1. 发现机制:绕过算法推荐,通过人工选择的链接发现优质内容
  2. 社区归属:与志同道合的人建立直接连接,而非通过平台中介
  3. 技术趣味:实现和维护Webring本身就是一种有趣的编程练习
  4. 反脆弱性:不依赖单一服务器或平台,每个站点都是环的节点

实现方案

方案一:手动环(零代码)

最简单的方式:让环内成员互相在网站上放置链接。假设有A、B、C三个站点:

  • A站链接到B站
  • B站链接到C站
  • C站链接回A站

优点:无需任何后端,纯静态即可
缺点:成员变更时需要手动通知所有人更新链接

方案二:自动化环(Cloudflare Worker实现)

使用一个中心化的Web服务管理成员列表,提供导航接口。作者推荐使用Cloudflare Worker(免费层足够)。

技术架构

typescript
import ring from './ring.json';

const { members } = ring;

export default {
async fetch(request, env, ctx): Promise {
const pathname = new URL(request.url).pathname;

// 获取来源站点
const referrer = new URL(request.url).searchParams.get('from') 
  || request.headers.get('referer') 
  || request.headers.get('referrer') 
  || '';

const currentMember = members.find(member => member.url === referrer);

if (!currentMember) {
  return new Response('Member not found', { status: 404 });
}

switch (pathname) {
  case '/':
    return new Response('Zadu');
  
  case '/next':
    const nextMember = members[
      (members.indexOf(currentMember) + 1) % members.length
    ];
    return Response.redirect(nextMember.url, 302);
  
  case '/prev':
    const prevMember = members[
      (members.indexOf(currentMember) - 1 + members.length) % members.length
    ];
    return Response.redirect(prevMember.url, 302);
  
  case '/random':
    const randomMember = members[
      Math.floor(Math.random() * members.length)
    ];
    return Response.redirect(randomMember.url, 302);
  
  default:
    return new Response('Not Found', { status: 404 });
}

},
} satisfies ExportedHandler;

关键设计要点

  1. 成员识别:通过HTTP Referer头识别来源站点,因此访问者必须从环内某个站点的链接跳转过来
  2. 循环导航:使用取模运算实现环形结构,最后一个成员的下一个是第一个
  3. 随机跳转:增加/random路由,提供发现新站点的乐趣
  4. JSON数据源:成员信息存储在ring.json中,结构示例:

{
"members": [
{"url": "https://site-a.com", "name": "Site A"},
{"url": "https://site-b.com", "name": "Site B"}
]
}

部署步骤

  1. 在Cloudflare Dashboard创建Worker
  2. 将上述代码粘贴到worker.ts(或使用wrangler CLI)
  3. 创建ring.json并上传(可通过Wrangler的--compatibility-date参数配置)
  4. 每个环内站点在页面中放置指向Worker的导航链接:
    • <a href="https://your-worker.workers.dev/prev?from=YOUR_SITE_URL">Previous</a>
    • <a href="https://your-worker.workers.dev/next?from=YOUR_SITE_URL">Next</a>
    • <a href="https://your-worker.workers.dev/random">Random</a>

进阶玩法

1. 主题分类

可以为每个成员添加tags字段,实现按主题筛选:

{
"members": [
{"url": "...", "tags": ["programming", "linux"]}
]
}

然后添加/tag/programming路由返回该标签下的成员列表。

2. 统计功能

记录每个成员的点击次数,生成热力图:
typescript
// 使用Cloudflare KV存储
const count = await env.KV.get(click:${currentMember.url});
await env.KV.put(click:${currentMember.url}, (parseInt(count) + 1).toString());

3. 动态加入

实现一个加入表单,自动验证新站点是否已包含环内链接,通过后自动加入JSON列表。

历史背景

Webring的黄金时代是1995-2000年,当时有WebRing.com等托管服务。随着Google崛起和社交网络兴起,Webring逐渐消亡。但近年来,随着个人网站运动(IndieWeb)复兴,Webring重新获得关注。

与RSS的关系

Webring和RSS是互补的:RSS解决内容订阅问题,Webring解决站点发现问题。两者结合可以构建完整的个人网站生态。

实践建议

  1. 从小开始:先找3-5个朋友建立小环
  2. 明确主题:环的主题越具体越好(如“用Rust写编译器的个人博客”)
  3. 保持活跃:定期检查成员链接是否有效
  4. 装饰UI:在网站上添加一个复古风格的Webring小部件,增加视觉效果

完整源码

作者的完整实现可在GitHub找到(原文链接包含),包含:

  • Worker完整代码
  • 前端组件示例
  • 管理API

结语

Webring不仅是一种技术实现,更是一种互联网精神的回归。在算法推荐和信息茧房日益严重的今天,通过Webring建立的人际连接网络,让我们重新找回早期互联网的探索乐趣。正如作者所说:"It's just fun."

原文链接:https://shub.club/writings/2026/july/you-need-a-webring/

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消