请求生命周期
H3 将传入的网络请求分派到最终的网络响应。
以下是 H3 服务器中从 HTTP 请求到达到生成响应的整个过程概览。
#1. 传入请求
当浏览器或 fetch() 发起 HTTP 请求时,服务器的 fetch 处理器会接收一个 Request 对象。
Tip
💥 Srvx 提供统一的 server.fetch 接口并增加了 Node.js 兼容性。
#2. 接受请求
H3 从传入请求初始化一个 H3Event 实例,调用 onRequest 全局钩子,最后调用初始化好的事件的 H3.handler。
#3. 分派请求
H3 根据 request.url 和 request.method 匹配路由,调用全局 中间件,最终调用匹配到的路由处理函数并传入事件。
Tip
🚀 在内部,H3 使用 srvx 的 FastURL 替代 new URL(req.url).pathname。
#4. 发送响应
H3 将返回的值和 准备好的头部信息 转换成一个 Response,调用 onResponse 全局钩子,最后将响应返回给服务器的 fetch 处理器。