http模块

http模块建立在net模块之上,无须手动管理socket,无须手动组装消息格式

http.request(url[, options][, callback]);

用于发起一个 HTTP 请求。它可以向指定的 URL 发送请求,并处理服务器的响应。

参数

  1. `url(字符串或 URL 对象):

    • 请求的目标 URL。
    • 示例:"http://example.com"
  2. options(可选,对象):

    • 配置请求的选项,例如:

      • method:请求方法(如 GETPOST),默认为 GET
      • headers:请求头信息(对象)。
      • host:目标主机名。
      • port:目标端口号。
  3. callback(可选,函数):

    • 当接收到响应时调用的回调函数。
    • 回调函数的参数为 http.IncomingMessage 对象,表示服务器的响应。

没有请求内容时候的写法

js 复制代码
const http = require("http");

const request = http.request(
    "https://duyi.ke.qq.com/",
    {
        method: "GET"
    },
    resp => {
        console.log("服务器响应的状态码", resp.statusCode);
    }
);

request.end();
  • 获取服务器响应的状态码:resp.statusCode
  • 获取服务器的响应头:resp.headers

http.createServer([options][, requestListener]);

用于创建一个 HTTP 服务器,用于处理客户端的请求。 以下是关于 http.requesthttp.createServer 方法的详细说明和用法示例,基于你提供的图片信息:


1. http.request(url[, options][, callback])

功能

用于发起一个 HTTP 请求。它可以向指定的 URL 发送请求,并处理服务器的响应。

参数

  1. ​**url**​(字符串或 URL 对象):

    • 请求的目标 URL。
    • 示例:"http://example.com"
  2. ​**options**​(可选,对象):

    • 配置请求的选项,例如:

      • method:请求方法(如 GETPOST),默认为 GET
      • headers:请求头信息(对象)。
      • host:目标主机名。
      • port:目标端口号。
    • 示例:

      css 复制代码
      javascript
      {
          method: "POST",
          headers: {
              "Content-Type": "application/json"
          }
      }
  3. ​**callback**​(可选,函数):

    • 当接收到响应时调用的回调函数。

    • 回调函数的参数为 http.IncomingMessage 对象,表示服务器的响应。

    • 示例:

      ini 复制代码
      javascript
      (res) => {
          let data = "";
          res.on("data", (chunk) => {
              data += chunk;
          });
          res.on("end", () => {
              console.log(data);
          });
      }

返回值

返回一个 http.ClientRequest 对象,用于表示正在进行的请求。

示例

ini 复制代码
javascript
const http = require("http");

const req = http.request("http://example.com", (res) => {
    let data = "";
    res.on("data", (chunk) => {
        data += chunk;
    });
    res.on("end", () => {
        console.log(data);
    });
});

req.end(); // 结束请求

2. http.createServer([options][, requestListener])

用于创建一个 HTTP 服务器,用于处理客户端的请求。

参数

  1. options​(可选,对象):

    • 配置服务器的选项,例如:

      • IncomingMessage:自定义的请求类。
      • ServerResponse:自定义的响应类。
  2. requestListener(可选,函数):

    • 处理客户端请求的回调函数。

    • 回调函数的参数为:

      • reqhttp.IncomingMessage 对象,表示客户端的请求。
      • reshttp.ServerResponse 对象,用于向客户端发送响应。

示例

js 复制代码
const http = require("http");
const url = require("url");

function handleReq(req, res) {
    console.log("有请求来了!");

    const urlObj = url.parse(req.url);
    console.log("请求路径", urlObj);
    console.log("请求方法", req.method);
    console.log("请求头", req.headers);

    let body = "";
    req.on("data", chunk => {
        body += chunk.toString("utf-8");
    });

    req.on("end", () => {
        console.log("请求体", body);
    });
}

const server = http.createServer(handleReq);

server.listen(3000, () => {
    console.log("服务器已启动,正在监听端口 3000");
});
const http = require("http");

const http = require("http");

const server = http.createServer((req, res) => {
    handleReq(req);
    res.setHeader("a", "1");
    res.setHeader("b", "2");
    res.statusCode = 404;
    res.write("你好!");
    res.end();
});

server.listen(9527, () => {
    console.log("服务器已启动,正在监听端口 9527");
});

server.listen(9527);

server.on("listening", () => {
    console.log("server listen 9527");
});

总结

  • 我是客户端
    • 请求:ClientRequest 对象
    • 响应:IncomingMessage 对象
  • 我是服务器
    • 请求:IncomingMessage 对象
    • 响应:ServerResponse 对象
相关推荐
lbh17 小时前
当我开始像写代码一样和AI对话,一切都变了
前端·openai·ai编程
We་ct18 小时前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·数据结构·算法·leetcode·typescript·动态规划·取反
wefly201718 小时前
m3u8live.cn 在线M3U8播放器,免安装高效验流排错
前端·后端·python·音视频·前端开发工具
C澒19 小时前
微前端容器标准化 —— 公共能力篇:通用打印
前端·架构
德育处主任Pro19 小时前
前端元素转图片,dom-to-image-more入门教程
前端·javascript·vue.js
木斯佳19 小时前
前端八股文面经大全:小红书前端一二面OC(下)·(2026-03-17)·面经深度解析
前端·vue3·proxy·八股·响应式
陈天伟教授19 小时前
人工智能应用- 预测新冠病毒传染性:04. 中国:强力措施遏制疫情
前端·人工智能·安全·xss·csrf
zayzy20 小时前
前端八股总结
开发语言·前端·javascript
今天减肥吗20 小时前
前端面试题
开发语言·前端·javascript
Rabbit_QL20 小时前
【前端UI行话】前端 UI 术语速查表
前端·ui·状态模式