📜  Node.js http.IncomingMessage.rawHeaders 方法(1)

📅  最后修改于: 2023-12-03 14:44:39.163000             🧑  作者: Mango

Node.js http.IncomingMessage.rawHeaders 方法

简介

http.IncomingMessage.rawHeaders 方法是 Node.js HTTP 模块中的一个方法,用于获取 HTTP 请求的头部信息。

rawHeaders 方法返回一个数组,其中包含 HTTP 请求头部信息的键值对,通常情况下请求头部信息为一个或多个键值对,其中键是头部名称,值是头部的值。

语法

以下是调用 http.IncomingMessage.rawHeaders 方法的语法:

const http = require('http');

http.createServer((req, res) => {

  const rawHeadersArr = req.rawHeaders; // 获取请求头部信息数组

}).listen(8080);

返回值

rawHeaders 方法返回一个数组,包含 HTTP 请求头部信息的键值对。

数组中的偶数索引表示头部的键(header name),奇数索引代表头部的值(header value)。

示例

以下示例演示如何使用 rawHeaders 方法获取 HTTP 请求头部信息:

// 引入 http 模块
const http = require('http');

const server = http.createServer((req, res) => {

  // 获取请求头部信息数组
  const rawHeadersArr = req.rawHeaders;

  // 将请求头部信息数组输出到控制台
  console.log(rawHeadersArr);

  // 设置响应头部
  res.writeHead(200, {'Content-Type': 'text/html'});

  // 响应数据
  res.write('<h1>Hello, world!</h1>');

  // 结束响应
  res.end();

});

// 启动 HTTP 服务器,监听 8080 端口
server.listen(8080, () => {

  console.log('Server started on http://localhost:8080');

});

运行上述代码,通过浏览器访问 http://localhost:8080,我们可以在 Node.js 的控制台中看到输出的 HTTP 请求头部信息数组。

[
  'Host',
  'localhost:8080',
  'Connection',
  'keep-alive',
  'Cache-Control',
  'max-age=0',
  'sec-ch-ua',
  '"Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"',
  'sec-ch-ua-mobile',
  '?0',
  'sec-ch-ua-platform',
  '"Windows"',
  'Upgrade-Insecure-Requests',
  '1',
  'User-Agent',
  'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36',
  'Accept',
  'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
  'Sec-Fetch-Site',
  'none',
  'Sec-Fetch-Mode',
  'navigate',
  'Sec-Fetch-User',
  '?1',
  'Sec-Fetch-Dest',
  'document',
  'Accept-Encoding',
  'gzip, deflate, br',
  'Accept-Language',
  'zh-CN,zh;q=0.9'
]

我们可以通过数组下标的方式访问数组中的元素,例如,获取 Host 头部的值可以使用 rawHeadersArr[1]