Node.js - 新客户端请求时究竟会发生什么



我想更准确地了解当服务器在 Node.js 服务器上收到客户端请求时会发生什么。对于更传统的服务器,将创建一个新线程来处理新的客户端会话。但是在 Node.js 和其他事件循环样式的服务器中,究竟会发生什么?代码库的哪一部分首先被执行?对于node,我几乎可以肯定http模块中的某些东西首先处理新请求。

我想更多地了解它如何以两种类型的客户端连接处理之间的比较和对比风格工作的细节。

简而言之:

  • Node 使用 libuv 来管理传入连接和数据事件
  • 事件
  • 被放置在队列中,以便在事件循环的下一个时钟周期内处理
  • 当字节开始到达时,它们被馈送到本机代码 http 解析器中。
  • 解析器使用标头内容调用 JS-land 中的回调
  • 其余的 JS HTTP 代码将请求调度给用户代码,该代码可能是 Express

最新更新