酷酷的陈浩

酷酷的陈浩

从零实现 C++ Linux WebServer:从最小服务器到 HTTP/1.1 解析
发表于2026-06-14|C++ WebServer
这篇文章记录我从零实现一个 Linux C++ WebServer 的过程。项目从最小可运行服务器开始,逐步加入 HTTP/1.1 请求解析、响应构造和静态文件返回能力。 这个阶段的目标不是高性能,也不是完整复刻 TinyWebServer,而是先把基础链路和 HTTP 处理流程真正写明白。 第一阶段:最小 HTTP 服务器最开始的目标很简单: 123启动服务器:./server 8080浏览器访问:http://127.0.0.1:8080返回内容:Hello World 这一版虽然功能很小,但它跑通了 Linux 网络服务器最基础的流程: 1socket -> bind -> listen -> accept -> recv -> send -> close 完成这个阶段后,我理解了几件事: HTTP 响应不能只有正文,还必须有状态行、响应头、空行和响应体。 send 不一定一次发送完,应该根据返回值循环发送。 accept 得到的 client_fd 在请求处理结束后必须关闭。 编译生成的 server、main 等二...
VMware Ubuntu 虚拟机克隆 GitHub 仓库踩坑记录
发表于2026-06-08
VMware Ubuntu 虚拟机克隆 GitHub 仓库踩坑记录:从 DNS 失败到 SSH 公钥配置背景最近在 VMware Ubuntu 虚拟机里准备克隆自己的 GitHub 仓库: 1git clone git@github.com:chenh735/TinyWebServer.git 结果一开始就失败了: 12ssh: Could not resolve hostname github.com: Temporary failure in name resolutionfatal: 无法读取远程仓库。 看起来像是 GitHub 或 SSH 的问题,但后面排查发现,真正的问题分成了两层: 虚拟机网络没有正常连通,导致无法解析 github.com。 网络恢复后,虚拟机没有配置 GitHub SSH key,导致 Permission denied (publickey)。 这篇文章记录一下完整排查过程。 第一阶段:确认不是 GitHub 权限问题,而是网络问题最开始的报错是: 1Could not resolve hostname github.com 这个错误表...
从功能开发到服务器上线:校园学习协作平台项目复盘
发表于2026-06-02
从功能开发到服务器上线:校园学习协作平台项目复盘 关键词:Vue 3、TypeScript、Rust、Axum、MySQL、Redis、Docker、Caddy、HTTPS、全栈项目、部署排障 一、项目背景:为什么做这个平台这个项目最初来自一个很直接的需求:在学院课程学习和项目实践中,信息经常散落在聊天群、网盘、个人文档和口头经验里。学生想了解一门课的难度、工作量、资料质量,或者想找同学一起做课程项目、比赛项目,往往需要反复询问。信息没有沉淀下来,后续同学也很难复用。 因此我做了一个“软件工程学院学习协作平台”,希望把课程经验、学习资料和项目招募统一放到一个系统中。它不是一个单纯的 CRUD 练习,而是一次从需求拆解、前后端开发、数据库建模、权限控制,到 Docker 部署、域名 HTTPS 配置和线上问题排查的完整工程实践。 从就业展示角度看,这个项目的重点不只是“页面能不能点”,而是我在项目中完整经历了一个 Web 应用从本地开发到公网可访问的过程,并解决了多个真实部署问题。 二、项目功能概览平台主要分为用户端和管理端。 用户端包含课程列表、课程详情、课程评价、学习资料、项...
用 Rust 实现一个简易 Redis:从 RESP 协议到多数据结构支持
发表于2026-05-16|项目实战
项目信息 GitHub 地址:my-redis 技术栈:Rust、Tokio、RESP、Serde、RDB、AOF 项目定位:简化版 Redis,实现协议解析、命令分发、多数据结构、事务、配置文件和混合持久化 项目背景在学习 Rust 后端开发和数据库基础原理的过程中,我希望做一个比普通 CRUD 更贴近真实系统的练手项目。Redis 是一个很适合拆解的目标:它有网络通信、协议解析、命令分发、内存数据结构、过期策略和持久化机制,但核心模型又足够清晰。 因此我实现了一个简化版 Redis,项目名为 my-redis。这个项目不是为了完整复刻 Redis,而是围绕 Redis 的核心机制做一次从 0 到 1 的实现,用来理解一个内存数据库服务端的基本工作方式。 项目当前支持: RESP 协议解析和编码 TCP 服务端和命令行客户端 String、List、Set、Hash 多种数据结构 key 过期时间和后台清理 RDB + AOF 混合持久化和启动恢复 MULTI / EXEC / DISCARD 简化事务 redis.conf 配置文件 命令行可选日志功能...
Hexo 博客发布教程:从写文章到 GitHub Pages 上线
发表于2026-05-14|博客
这篇文章记录一下我现在这套 Hexo 博客的发布流程。我的博客使用 Hexo 生成静态文件,再把生成结果同步到 GitHub Pages 仓库。 目录结构我本地有两个重要目录: 12C:\Project\blog\hexo\blog-sourceC:\Project\blog\chenh735.github.io 第一个目录是 Hexo 源工程,平时写文章、改主题配置都在这里进行。 第二个目录是 GitHub Pages 发布仓库,里面放的是 Hexo 生成后的静态文件。这个目录会被推送到 GitHub,然后由 GitHub Pages 展示到网上。 整体关系可以理解为: 123456789blog-source/source/_posts 写 Markdown 文章 ↓hexo generate 生成 public 静态文件 ↓把 public 同步到 chenh735.github.io ↓git push 到 GitHub ↓GitHub Pages 自动上线 准备工作我的电脑上使用 pnpm,所以执行 Hexo 命令时使用: 1pnpm.cmd exec he...
Hello World
发表于2026-05-14
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
avatar
酷酷的陈浩
文章
6
标签
18
分类
3
Follow Me
公告
欢迎来到我的博客!这里记录了我的学习和生活点滴,希望能与大家分享和交流。
最新文章
从零实现 C++ Linux WebServer:从最小服务器到 HTTP/1.1 解析2026-06-14
VMware Ubuntu 虚拟机克隆 GitHub 仓库踩坑记录2026-06-08
从功能开发到服务器上线:校园学习协作平台项目复盘2026-06-02
用 Rust 实现一个简易 Redis:从 RESP 协议到多数据结构支持2026-05-16
Hexo 博客发布教程:从写文章到 GitHub Pages 上线2026-05-14
分类
  • C++ WebServer1
  • 博客1
  • 项目实战1
标签
SSH WebServer GitHub Pages Redis 网络排查 Tokio GitHub pnpm Hexo HTTP Rust C++ Socket 数据库 Linux VMware 静态文件 Ubuntu
归档
  • 六月 2026 3
  • 五月 2026 3
网站信息
文章数目 :
6
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By 酷酷的陈浩框架 Hexo 8.1.2|主题 Butterfly 5.5.3