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

📅  最后修改于: 2023-12-03 15:33:09.398000             🧑  作者: Mango

Node.js http.IncomingMessage.rawTrailers 方法

当使用Node.js中的HTTP模块创建一个服务器时,服务器会接收一个http.IncomingMessage对象。这个对象包含了所有客户端发送来的HTTP请求相关信息。其中,rawTrailers是http.IncomingMessage对象的一个方法,它用于获取HTTP请求的尾部(Trailer)。

语法
message.rawTrailers
参数

无需传入参数

返回值

message.rawTrailers返回一个数组,包含HTTP请求的尾部内容。如果请求头中没有指定Trailer,则该方法返回空数组。

示例
const http = require('http');

// 创建 HTTP 服务器
const server = http.createServer((req, res) => {
  // 接收 HTTP 请求头
  const headers = req.headers;

  // 监听 HTTP 请求尾部
  req.on('end', () => {
    console.log(`Raw trailers: ${JSON.stringify(req.rawTrailers)}`);
    res.end('Server received HTTP request.');
  });
});

// 启动服务器,监听3000端口
server.listen(3000, () => {
  console.log(`Server is running on http://localhost:3000`);
});

在上述示例中,当客户端发起HTTP请求时,服务器将接收到一个包含HTTP请求头和尾部的http.IncomingMessage对象。我们监听了IncomingMessage对象的end事件,在end事件触发后输出了HTTP请求的尾部。

假设我们的客户端发送了以下HTTP请求头:

GET / HTTP/1.1
Host: localhost
Connection: keep-alive
Trailer: X-Code

那么服务器输出的HTTP请求尾部为:

["some-data"]
说明
  • HTTP请求的尾部只有在请求完成时才会被发送;
  • 在请求头中指定使用Trailers时,才会出现HTTP请求的尾部;
  • 具体如何指定尾部,可以参考HTTP权威指南。