Node.js 创建最简单的 HTTP 服务器详解

作者:终端旅客

时间:2026-10-22

浏览:506

本文详细介绍如何使用 Node.js 内置的 http 模块创建最简单的 HTTP 服务器。通过解析 createServer 方法,深入讲解 request 和 response 对象的结构、属性及事件处理机制,并结合代码实例演示如何监听端口、设置响应头及返回数据,帮助开发者快速掌握 Node.js 网络编程基础。

文章目录

Node.js HTTP 服务器核心概念

引子


var http = require('http');

http.createServer(function(request, response){
  response.writeHead(200, { 'Content-Type': 'text-plain' });
  response.end('Hello World\n');
}).listen(8124);

Node.js 中 http 模块提供了顶层的 createServer 方法用于创建服务器实例。与服务器运行密切相关的核心事件主要包括两个:请求事件(request)和响应事件(response)。在 createServer 回调函数的定义中,第一个参数对应 request 对象,用于接收客户端请求;第二个参数对应 response 对象,用于向客户端发送响应数据。

HTTP 请求处理机制

HTTP 请求处理机制

1. http 请求事件——request 事件

HTTP 请求的具体信息由 http.request 事件触发并传递。在 Node.js 中,事件通常表现为对象,而对象则具备特定的属性和方法供开发者调用。

该 request 事件所传递的请求信息对象类型为 http.ServerRequest。作为一个对象,它包含了处理请求所需的各种属性和方法。

2. http.ServerRequest 的属性

request 对象包含以下关键属性:

Node.js HTTP 服务器核心概念

http.ServerRequest 对象主要描述客户端发送的请求信息,该信息结构由两部分组成: 1. 请求头(Request head) 2. 请求体(Request body) 请求头中的数据量通常较小,解析后即可立即读取。相比之下,请求体的数据传输可能需要较长时间,具体取决于数据大小和网络状况。

3. http.ServerRequest 相关的事件

与 http.ServerRequest 对象交互时,主要涉及以下四个事件,具体细节可参考相关表格:

Node.js HTTP 服务器核心概念

HTTP 响应处理机制

HTTP 响应处理机制

1. http 响应事件——response 事件

当服务器接收到客户端发送的 http.ServerRequest 数据并进行处理后,需要向客户端返回响应。这一过程通过 response 事件实现,在服务器回调函数中,response 作为第二个参数传入。与该对象相关的方法包括:

Node.js HTTP 服务器核心概念

2. response 对象的属性

response 事件所发送的数据对象类型为 http.ClientResponse(注:在服务器端上下文通常指代响应流对象,此处依原文表述)。该对象描述了响应信息,同样由两部分组成: 1. 响应头(Response head) 2. 响应体(Response body)

该对象的具体属性定义如下表所示:

Node.js HTTP 服务器核心概念

3. http.ClientResponse 相关的事件

与响应信息处理相关的事件主要包括以下几个:

Node.js HTTP 服务器核心概念

代码实例与操作步骤

引子代码讲解


//引入内置模块http模块
var http = require('http');

//2
http.createServer(function(request, response){
  response.writeHead(200, { 'Content-Type': 'text-plain' });
  response.end('Hello World\n');
}).listen(8124);

在注释标号为2的代码处,意思是http当中有个createServer的方法,里头的功能函数的参数就是两个,第一个就是request事件,第二个就是response事件。 在这个函数体内部呢 response.writeHead就是一个写响应头的方法, 1. 200是HTTP状态码,表示成功处理了此次请求, 2. {'Content-Type':'text-plain'}这个是个MIME标准的格式描述。 告诉浏览器,返回的内容类型是个啥东西,text-plain就是MIME类型。 3. response.end()表示的就是响应事件传输数据结束。因为请求没有发送请求体数据,所以没有触发data事件。


http.createServer(function(request,response){}).listen(8124);

上述代码构成了一个最简单的服务器示例,其监听的是服务器本地的 8124 端口。

操作步骤第一步:将引子中的代码保存为 .js 文件,随后使用 Node.js 环境运行该 JS 文件。

运行效果如图所示:

Node.js HTTP 服务器核心概念

操作步骤第二步:在浏览器中访问服务器端口(本地 8124 端口),即可看到服务器程序返回的响应信息。

Node.js HTTP 服务器核心概念

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章