面试题答案
一键面试- 请求接收:
- 作用:是HTTP请求响应生命周期的起点,Node.js的HTTP服务器通过监听特定端口,接收来自客户端的请求。它负责解析请求报文,包括请求方法(如GET、POST等)、请求头(包含客户端信息、缓存控制等)和请求体(POST请求携带的数据等),为后续处理提供基础数据。
- 顺序:最先发生。
- 路由匹配:
- 作用:根据请求的URL路径和请求方法,找到对应的处理函数。它将不同的请求映射到不同的业务逻辑,实现了对不同功能的区分处理,使得服务器能够根据客户端的需求提供相应的服务。
- 顺序:在请求接收之后,中间件处理之前。如果使用Express等框架,路由匹配会利用框架定义的路由规则进行匹配。
- 中间件处理:
- 作用:中间件可以对请求和响应进行各种处理,如日志记录、错误处理、请求体解析、身份验证等。它提供了一种模块化的方式来处理HTTP请求,增强了代码的可复用性和可维护性。不同的中间件可以按顺序依次对请求进行处理,在处理过程中可以修改请求和响应对象,为最终的响应做准备。
- 顺序:在路由匹配之后,响应发送之前。中间件按照定义的顺序依次执行,直到遇到一个不调用
next()
函数的中间件或者到达路由处理函数。
- 响应发送:
- 作用:将处理后的结果返回给客户端。它设置响应头(如内容类型、状态码等)和响应体(实际返回给客户端的数据,如JSON、HTML等),完成整个HTTP请求响应的过程,使客户端能够接收到服务器处理后的结果。
- 顺序:在请求接收、路由匹配、中间件处理之后,是HTTP请求响应生命周期的最后一步。
先后顺序为:请求接收 -> 路由匹配 -> 中间件处理 -> 响应发送。