📅  最后修改于: 2023-12-03 14:44:39.163000             🧑  作者: Mango
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]
。