Node.js HTTP 模块详解

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/45530.html
点赞
0.00 平均评分 (0% 分数) - 0