📜  Node.js http.server.headersTimeout 方法(1)

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

Node.js http.server.headersTimeout 方法介绍

Node.js中的http.server.headersTimeout方法用于设置HTTP服务器在接收到请求头后等待请求体到达的超时时间。如果请求体在规定时间内未到达,则服务器将关闭连接。这是一个比较常见的防止DOS攻击的措施。

语法

server.headersTimeout = msecs;

其中,msecs是以毫秒为单位的超时时间,例如1000表示1秒。

示例代码

下面是一个基本的http服务器示例,其中设置了headersTimeout为1000毫秒:

const http = require('http');

const server = http.createServer((req, res) => {
  // handle request
});

server.headersTimeout = 1000;

server.listen(3000, () => {
  console.log('Server is running on port 3000');
});
注意事项
  • headersTimeout只针对POST、PUT等请求方法,对GET请求无效;
  • 如果请求的Content-Length大于服务器的maxHeadersLength(默认为8KB),则会在headersTimeout之前关闭连接;
  • 如果需要控制整个请求的超时时间,可以使用setTimeout方法。
结语

Node.js http.server.headersTimeout方法是一个简单而实用的方法,可以帮助开发者防止一些常见的DOS攻击。在设计HTTP服务器的时候,建议加上这个设置。