Node.js 的 HTTP 模块是一个核心的内置模块,让我们能够创建和管理 HTTP 服务器,并处理客户端与服务器之间的通信。
- 通过
require()方法引入使用。 - 允许我们创建 HTTP 服务器和客户端。
- 支持 GET、POST、PUT 和 DELETE 等标准 HTTP 方法。
- 简化了请求、标头、查询参数和响应的处理。
语法
const http = require(‘http‘);
特性
以下是 Node.js HTTP 模块的一些主要特性:
- 服务器创建: 支持创建 HTTP 服务器。
- 请求处理: 监听并处理传入的 HTTP 请求。
- 响应处理: 向客户端发送响应,支持动态内容交付。
- HTTP 方法支持: 支持 GET、POST、DELETE 等各种 HTTP 方法。
使用 HTTP 创建服务器
让我们使用 http.createServer() 创建一个服务器来监听请求。
JavaScript
CODEBLOCK_80015dd3
输出
创建服务器的过程截图。
http.createServer()用于创建一个新的 HTTP 服务器。(request)对象代表来自客户端的传入请求。(response)对象用于向客户端发送 HTTP 响应。response.write()发送响应体的数据。response.end()表示响应已完成。server.listen()使服务器在指定的端口(在此例中为 3000)上进行监听。
添加 HTTP 标头
添加 HTTP 标头(如 Content-Type)可以告诉客户端正在发送什么类型的数据,从而确保响应被正确渲染。
text/html告诉浏览器将响应渲染为 HTML。application/json告诉客户端将响应解析为 JSON。
JavaScript
CODEBLOCK_224e3d9a
输出
动态内容类型的演示动画。
- 当我们访问 http://localhost:3000/ 时,服务器将响应一个 HTML 页面。
- HTTP 标头将被设置为
Content-Type: text/html。 - 浏览器知道将响应渲染为 HTML 文档。
- 如果我们访问 http://localhost:3000/?json=true,服务器将响应一个 JSON 对象。
- HTTP 标头将被设置为
Content-Type: application/json。 - 浏览器或客户端知道将响应视为 JSON 对象,并可以进行相应的处理(例如,在 JavaScript 中解析它)。
读取查询字符串
http.createServer() 函数提供了对请求对象的访问,该对象包含有关传入 HTTP 请求的详细信息。
req代表传入的客户端请求。req.url存储域名后的 URL 路径。- 用于路由和处理不同的请求。
JavaScript
CODEBLOCK_7c9aca6e
输出
读取查询字符串的演示动画。
- http://localhost:8080/name 将显示 /name
- http://localhost:8080/summer 将显示 /summer
- 服务器监听 HTTP 请求。
req.url返回客户端请求的完整 URL,包括路径和查询字符串(如果有)。- 服务器将路径(包括任何查询字符串)作为响应的一部分发送回去。
解析查询字符串
Node.js 中内置的 url 模块帮助我们解析查询字符串,并将其拆分为结构化的、可读的组件。
- 从 URL 中提取查询参数。
- 将查询字符串转换为键值对。
- 简化请求数据的处理。
JavaScript
CODEBLOCK_e770700b