内容提要
本文介绍了Finger协议(1971年的早期社交网络)及其现代应用。作者通过happynetbox.com注册账号,编写脚本将本地~/.plan文件同步到该服务,并设置定时任务用AI翻译他人更新。文章详细说明了登录、发布API、自动化同步流程,以及遇到的三个坑:服务器不支持中文、nc请求需CRLF、cookie过期问题。最终实现了通过终端finger命令分享个人状态的功能。
延伸解读
Finger 协议的历史意义
Finger 协议诞生于1971年,比互联网本身还早,是早期社交网络的雏形。它通过 .plan 文件分享个人状态,John Carmack 曾用它宣布开源 Doom 源码。理解这段历史有助于认识现代社交网络的功能演变,以及极简协议在特定场景下的持久价值。
自动化同步的实用技巧
作者通过脚本将本地 ~/.plan 文件同步到 happynetbox,并利用 cron 定时任务实现自动更新。这种方法展示了如何将传统协议与现代工具结合,实现个人状态的自动化分享。读者可借鉴其思路,用于其他类似场景,但需注意脚本的维护和错误处理。
协议限制与应对策略
Finger 协议仅支持 ASCII,导致中文内容乱码;nc 请求需 CRLF 结尾;cookie 有效期约9天。这些限制反映了早期协议的设计局限。作者通过强制英文、修正请求格式、自动重新登录等方式应对,为读者提供了处理类似兼容性问题的参考。
Q&A
Finger协议是什么时候发明的?
Finger协议于1971年在斯坦福大学的SAIL实验室发明,最初是为了解决WHO命令输出过长、难以阅读的问题。
Finger协议是如何工作的?
客户端连接到远程主机的79端口,发送一行包含用户名的请求,服务器返回该用户主目录下.plan文件的内容。
happynetbox.com是什么?
happynetbox.com是Ben Brown创建的一个实验性网站,它把Finger协议变成了一个社交网络。用户可以创建账号并发布文本,其他人可以通过finger命令查看。
如何通过curl登录happynetbox.com?
使用curl发送POST请求到https://happynetbox.com/login,携带handle和password参数,并保存cookie到文件,例如:curl -c ~/.happynetbox.cookie -X POST https://happynetbox.com/login -d "handle=bboysoul&password=xxx"。
happynetbox.com的发布API是什么?
登录后,向https://happynetbox.com/post/<handle>发送POST请求,携带content字段,即可发布内容。例如:curl -b ~/.happynetbox.cookie -X POST https://happynetbox.com/post/bboysoul --data-urlencode "content=Myblog: https://www.bboy.app"。
作者如何自动化同步.plan文件到happynetbox?
作者编写了一个脚本,检查cookie有效性、自动重新登录、比较.plan文件的md5哈希值,如果内容变化则通过POST请求同步。然后设置cron任务每30分钟运行一次。
使用Finger协议时遇到哪些常见问题?
常见问题包括:服务器不支持中文,导致输出乱码;nc请求需要以CRLF结尾,否则返回错误;cookie有效期约9天,过期后需要重新登录。
作者如何利用AI翻译其他人的更新?
作者编写了一个收集脚本,通过finger命令获取最近更新的用户内容,然后设置cron任务在每天早上6点运行,当内容变化时,使用AI将更新翻译成中文并推送给自己。