9_http_request_lifecycle
HTTP 和请求生命周期(后端基础)
1.什么是HTTP?
HTTP(超文本传输协议)是客户端和服务器之间使用的通信协议。
型号:
客户端→请求→服务器
服务器→响应→客户端
HTTP 是无状态,这意味着每个请求都是独立的。
2. HTTP 请求的结构
HTTP 请求包含:
1. 方法
- GET(读取数据)
- POST(创建数据)
- PUT(替换数据)
- 补丁(部分更新)
- 删除(删除数据)
2.网址
示例:
1 | /notes |
3. 标题
额外的元数据,例如:
- 内容类型
- 授权
- 饼干
4. 正文(可选)
主要用于 POST / PUT / PATCH 请求。
3. HTTP 响应的结构
服务器响应包含:
- 状态代码(200、201、400、404、500)
- 标题
- 正文(JSON、文本等)
JSON 响应示例:
1 | { |
4. Node.js 请求生命周期(深入理解)
第 1 步:服务器启动
1 | app.listen(3000) |
内部:
1 | http.createServer(app) |
端口 3000 打开,节点开始等待请求。
第2步:客户端发送请求
示例:
获取/注释
步骤 3:操作系统检测网络活动
操作系统检测端口 3000 上的活动并通知 Node.js。
节点发出“请求”事件。
步骤 4:节点调用监听器
内部:
1 | server.on("request", app) |
节点执行:
1 | app(req, res) |
Express 应用程序函数成为请求处理程序。
步骤 5:快速管道执行
执行顺序:
- 全局中间件
- 路由匹配
- 路由处理程序执行
- 回复已发送
第 6 步:响应返回
Express → 节点 → 操作系统 → 客户端
发送响应后,服务器返回等待状态。
5.生命周期中的中间件
中间件函数在最终路由处理程序之前运行。
例子:
1 | app.use(express.json()) |
目的:
- 解析JSON体
- 日志记录
- 认证
- 验证
执行顺序很重要。
6. 完整的视觉流程
客户
↓
互联网
↓
操作系统(端口3000)
↓
节点 HTTP 服务器
↓
Express 应用程序(监听器)
↓
中间件
↓
路由处理程序
↓
回应
↓
返回等待状态
关键概念总结
- HTTP 是无状态的。
- Node.js 是事件驱动的。
- Express app 是一个用作请求监听器的函数。
- 中间件按顺序运行。
- 后端作为请求-响应机器。
目前的理解水平
✔ HTTP 结构
✔ 请求和响应流程
✔ 节点基于事件的处理
✔ 快速中间件管道
✔ 端到端生命周期清晰
下一主题推荐:
身份验证和无状态系统(JWT、会话、Cookie)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!