📅  最后修改于: 2023-12-03 15:33:09.398000             🧑  作者: Mango
当使用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"]