秋雨De blog

  • 首页
  • 留言板
  • 关于
  • rss
秋雨De blog
一个技术小白的个人博客
未分类

手写 C++ Web 服务器:模板化中间件链设计

在前几篇文章中,我们已经实现了一个基础的 HTTP 服务器: 随着功能越来越多,我开始思考一个问题: 服务器应该如何组织请求处理逻辑? 在很多 Web 框架中,一个请求往往需要经过多个处理步骤,例如: 请求参数解析↓Content-Type 处理↓日志记录↓CORS 处理↓Cookie 解析↓Session 管理↓业务逻辑 如果这些逻辑全部写在一个函数里,代码会迅速变得非常混乱。 因此,大多数 Web 框架都会引入一种机制: Middleware(中间件) 每个中间件负责一件事情,然后按顺序执行。 本篇是 手写 C…

2026年3月14日 0条评论 133点热度 0人点赞 fallrain 阅读全文
未分类

手写 C++ Web 服务器:中间件系统设计

在前面的文章中,我们已经实现了一个基础的 HTTP 服务,可以接收请求、解析 HTTP 头并执行对应的业务逻辑。但随着功能逐渐增多,我很快发现一个问题: 很多逻辑其实是通用逻辑,并不属于某一个具体业务。例如: 如果这些逻辑全部写在业务代码里,代码会迅速变得臃肿,例如: 随着功能增加,代码会越来越难维护。 因此,大多数 Web 框架都会提供一种机制:Middleware(中间件)。 在很多流行框架中,例如 Express.js、Koa 或 Gin,中间件都是核心设计之一。 本篇是手写 C++ Web 服务器系列第四篇…

2026年3月14日 2条评论 96点热度 0人点赞 fallrain 阅读全文
未分类

手写 C++ Web 服务器:业务逻辑、Cookie 与 Session 管理

在上一篇文章中,我们搭建了 C++ Web 服务器的基础骨架,包括 TCP 监听、异步 Session 管理、HTTP 请求解析以及简单响应发送。这些是服务器的基础能力,但真正的 Web 服务并不仅仅是“接收请求-返回响应”。一个成熟的服务器必须能够: 本篇是手写 C++ Web 服务器系列第三篇,本篇文章将详细介绍我在开源项目 asio_web_service 中实现的 业务逻辑处理、Cookie 与 Session 管理机制,让服务器能够支持真实 Web 应用的功能。源码地址:https://github.co…

2026年3月12日 0条评论 174点热度 0人点赞 fallrain 阅读全文
未分类

手写 C++ Web 服务器:HTTP 请求解析

在上一篇文章中,我们已经实现了一个最基础的 Web 服务器: 但此时服务器其实还没有真正理解 HTTP 请求。 服务器收到的其实只是 一段原始的字符串数据。 例如浏览器发来的请求可能是: 如果我们想要处理这个请求,就必须完成几件事情: 本篇是手写 C++ Web 服务器系列第二篇,这一篇我们就来实现一个最基础的 HTTP 请求解析器。源码地址:https://github.com/Fall-Rain/asio_web_service 一、Session 的基本结构 在服务器中,每一个客户端连接都会对应一个 Sess…

2026年3月12日 0条评论 76点热度 0人点赞 fallrain 阅读全文
未分类

手写 C++ Web 服务器:从 TCP 套接字到请求处理

从高中开始,我就对 0 和 1 构建出的庞大计算机体系充满震撼——那些冰冷的二进制数字,居然能搭建起如今包罗万象的互联网世界。那时候,我天真地想彻底搞明白“0 和 1 如何构建这一切”,但很快就发现,计算机的复杂度远超我的想象。操作系统、编译器、网络协议、分布式系统……每一层都像一座座高山,初学者几乎无法一口吃下全部知识。 于是,我决定退而求其次,从最基础的网络编程入手:先学 Socket 开发,理解数据如何在网络中传输;再一步步尝试,亲手实现一个属于自己的 Web 服务器。经过几个月的学习与实践,我完成了第一版轻…

2026年3月12日 0条评论 131点热度 0人点赞 fallrain 阅读全文
未分类

支付与业务解耦 —— 支付模块的设计与实现

一、为什么要做“支付模块解耦” 在传统的业务系统中,支付逻辑往往与业务逻辑高度耦合。例如商城下单、拼团支付、会员充值等模块都在传统的业务系统中,支付逻辑往往与具体业务强绑定。以电商系统为例,订单模块通常直接负责下单、发起支付、更新支付状态、处理回调等流程。甚至在一些项目中,开发者会把“支付状态”字段直接写入 t_order 表,把“支付成功”事件直接在订单代码中触发。 这种设计在早期阶段看似方便,但在系统逐渐复杂后,会暴露出以下典型问题: 1. 可维护性差,改一处动全身 由于支付流程深度耦合在订单代码中,一旦订单结…

2025年11月1日 0条评论 672点热度 0人点赞 fallrain 阅读全文
未分类

深入 Spring Security 6:从底层机制到动态模块化配置

一、Spring Security 底层架构与核心类分析 要理解动态配置方式的价值,首先需要深入 Spring Security 的底层实现,弄清楚它是如何在启动时将各种安全组件组装成一条完整的过滤链(Filter Chain)的。本节将从底层核心类、组件交互流程等方面展开剖析。 1.1 FilterChainProxy 与 SecurityFilterChain 的角色 1.2 底层配置接口:SecurityBuilder、SecurityConfigurer、SecurityConfigurerAdapter …

2025年5月28日 0条评论 1259点热度 0人点赞 fallrain 阅读全文
未分类

我的十年:计算机世界中的执念

在人生的十字路口,我曾无数次迷茫,对未来举棋不定;也曾因执念跌倒,再爬起。十年前,我是一个初中毕业的少年,因为一个投硬币的选择进入了计算机世界。从那以后,我的生活与这片领域紧密相连——有过痛苦的挣扎,但也收获了丰盛的果实。一路走来,我的初心未曾改变,计算机成了我人生中最重要的执念。 有人曾告诉我:“种一棵树最好的时间是十年前,其次是现在。”这句话后来成为了我学习计算机时的一种格言,也正是它时刻提醒着我:即使起步晚,只要现在种下属于自己的种子,它总有一天会生根发芽,枝繁叶茂。这是我对梦想的理解,也是我十年的启示。 坐…

2025年4月5日 3条评论 1700点热度 7人点赞 fallrain 阅读全文
spring boot

深入理解IoC容器:一级缓存与二级缓存的设计与实现

引言 在现代Java开发中,IoC(控制反转)容器是Spring框架的核心组件之一。它通过依赖注入(DI)机制,帮助我们管理对象的生命周期和依赖关系,极大地提升了代码的可维护性和可扩展性。然而,IoC容器的底层实现并不简单,尤其是当涉及到循环依赖和缓存机制时,其设计思路和实现细节往往令人感到困惑。 你是否曾经好奇过: 本文将通过手动实现一个简单的IoC容器,逐步揭开这些问题的答案。我们将从一级缓存的设计开始,逐步引入二级缓存,并通过代码示例详细讲解其工作原理。无论你是初学者还是有一定经验的开发者,相信这篇文章都能帮…

2025年3月23日 0条评论 1048点热度 0人点赞 fallrain 阅读全文
wordpress开发

LEMP 环境配置与 WordPress 网站搭建

前言 在现代的 Web 开发中,搭建一个高效、稳定的网站环境是每个开发者必须掌握的技能之一。LEMP(Linux + Nginx + MySQL/MariaDB + PHP)作为一种轻量、高效的 Web 服务器架构,越来越受到开发者的青睐。与传统的 LAMP 环境(Apache 代替 Nginx)相比,LEMP 环境更注重性能优化,尤其适合需要高并发处理和大流量的网站。 WordPress,作为全球最流行的内容管理系统(CMS),具有开源、易用、插件丰富等优点,成为了许多个人博客、企业官网以及电子商务网站的首选平台…

2024年12月4日 2条评论 2332点热度 0人点赞 fallrain 阅读全文
123

fallrain

种一棵树最好的时间是十年前,其次是现在。

友情连接
猫饭范文泉博客迎風别葉CODING手艺人ScarSu博友圈
分类
  • C++ / 4篇
  • spring boot / 8篇
  • wordpress开发 / 5篇
  • 操作系统 / 3篇
  • 未分类 / 8篇
  • 算法 / 2篇
  • 网络编程 / 4篇
归档
  • 2026 年 3 月
  • 2025 年 11 月
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 5 月
  • 2023 年 2 月
  • 2022 年 11 月
  • 2022 年 3 月
  • 2021 年 12 月
  • 2021 年 8 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 8 月
  • 2020 年 5 月
  • 2019 年 12 月
  • 2019 年 3 月

吉ICP备18007356号

吉公网安备22020302000184号

Theme Kratos Made By Seaton Jiang

COPYRIGHT © 2026 秋雨De blog ALL RIGHTS RESERVED