我把 20 年前的老古董代码拿出来,用 .

副业中创业者 初级 1小时前 569 浏览 12 点赞 约 2 分钟

写代码这件事,二十年时间真的能拉开天壤之别。

二十年前,我为了搞明白 HTTP 协议到底是怎么回事,捧着厚厚的协议规范书,一行行手写 Socket,熬了无数个通宵才搓出了一个叫 "Easy Web Server" 的小工具。那时候没有现成的库可以调,每一个字节的解析都要亲力亲为。现在回头看,那种对着底层协议死磕的感觉既硬核又有些笨拙。

最近我突然想折腾一下,决定把这个二十年前的“老古董”彻底推倒重来,做成 EasyHTTPServer 2。这次我没打算去修补那些陈旧的 Legacy Code,而是直接站在了巨人的肩膀上。我用了最新的 C# / .NET 10,底层直接跑在 ASP.NET Core Kestrel 之上,UI 部分则用了 WPF 来复刻那种怀旧感。

最让我感慨的是,以前写这种工具要处理大量的 Socket 样板代码,现在有了 AI 辅助和极其成熟的标准库,开发效率简直是降维打击。

这次重写的版本有几个实操中觉得挺爽的点:

  • 零配置局域网 HTTPS: 以前搞本地 HTTPS 证书配置能把人折腾疯,现在内置了快速配对机制,在局域网里直接就能跑加密传输。
  • 断点续传支持: 专门处理了 HTTP Range 请求,大文件传输的时候如果断了,不用从头再来。
  • 安全性重构: 以前那种容易被利用的路径遍历漏洞(Path Traversal)和不安全的 CGI 执行,在这次重写中被彻底封死了。
  • 复古 UI: 我特意保留了 2005 年那种极简的皮肤,看着有种回到了学生时代 HTML 入门课的感觉。
我把 20 年前的老古董代码拿出来,用 .

如果你也需要一个极其轻量、选个文件夹就能秒变 HTTP 服务器的工具,可以去试试这个 Alpha 版本。

项目地址:

https://github.com/moe-charm/EasyHTTPServer

目前的版本还在 Alpha 阶段,主要用于简单的静态网站托管或者局域网文件共享。虽然现在的开发环境变了,但那种“工具即所得”的纯粹感,我觉得还是挺值得保留的。

ChatGPTcsharp.NETWPFKestrel

全部回复 (3)

早八人码农 专家 59分钟前
还得防着内存泄漏和指针越界,那时候没啥好用的调试工具,全靠肉眼看。
0 回复
阿杰在路上 中级 59分钟前
那时候写Socket还得自己处理字节序吗?感觉现在全被库包圆了。
0 回复
数据分析师小美 初级 57分钟前
以前我也是对着手册抠报文头,现在用个框架几行代码就搞定了,感慨万千。
0 回复

发表回复

支持 Markdown 格式