From a110f7e3b5948f6accc6b177835812dabdfc798c Mon Sep 17 00:00:00 2001 From: Tim Perry Date: Thu, 16 Apr 2026 12:01:56 +0100 Subject: [PATCH] http: increase keepAliveTimeout default to 65 seconds Co-authored-by: Prashant Bansal Signed-off-by: Tim Perry --- doc/api/http.md | 6 +++++- lib/_http_server.js | 2 +- test/parallel/test-http-keep-alive-max-requests.js | 4 ++-- test/parallel/test-http-keep-alive-pipeline-max-requests.js | 6 +++--- test/parallel/test-http-server-keep-alive-defaults.js | 2 +- .../test-http-server-keep-alive-max-requests-null.js | 2 +- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/doc/api/http.md b/doc/api/http.md index 8ac1ed166103b0..fa2168a133b01d 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -1998,9 +1998,13 @@ value only affects new connections to the server, not any existing connections. -* Type: {number} Timeout in milliseconds. **Default:** `5000` (5 seconds). +* Type: {number} Timeout in milliseconds. **Default:** `65000` (65 seconds). The number of milliseconds of inactivity a server needs to wait for additional incoming data, after it has finished writing the last response, before a socket diff --git a/lib/_http_server.js b/lib/_http_server.js index 68db87b094d960..575bb2582741e5 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -499,7 +499,7 @@ function storeHTTPOptions(options) { validateInteger(keepAliveTimeout, 'keepAliveTimeout', 0); this.keepAliveTimeout = keepAliveTimeout; } else { - this.keepAliveTimeout = 5_000; // 5 seconds; + this.keepAliveTimeout = 65_000; // 65 seconds; } const keepAliveTimeoutBuffer = options.keepAliveTimeoutBuffer; diff --git a/test/parallel/test-http-keep-alive-max-requests.js b/test/parallel/test-http-keep-alive-max-requests.js index 558beadfae8b04..c4751b6c05c2e8 100644 --- a/test/parallel/test-http-keep-alive-max-requests.js +++ b/test/parallel/test-http-keep-alive-max-requests.js @@ -10,11 +10,11 @@ const bodySent = 'This is my request'; function assertResponse(headers, body, expectClosed) { if (expectClosed) { assert.match(headers, /Connection: close\r\n/m); - assert.strictEqual(headers.search(/Keep-Alive: timeout=5\r\n/m), -1); + assert.strictEqual(headers.search(/Keep-Alive: timeout=65\r\n/m), -1); assert.match(body, /Hello World!/m); } else { assert.match(headers, /Connection: keep-alive\r\n/m); - assert.match(headers, /Keep-Alive: timeout=5, max=3\r\n/m); + assert.match(headers, /Keep-Alive: timeout=65, max=3\r\n/m); assert.match(body, /Hello World!/m); } } diff --git a/test/parallel/test-http-keep-alive-pipeline-max-requests.js b/test/parallel/test-http-keep-alive-pipeline-max-requests.js index a52b12bb4f935f..446bb3c49796b0 100644 --- a/test/parallel/test-http-keep-alive-pipeline-max-requests.js +++ b/test/parallel/test-http-keep-alive-pipeline-max-requests.js @@ -10,11 +10,11 @@ const bodySent = 'This is my request'; function assertResponse(headers, body, expectClosed) { if (expectClosed) { assert.match(headers, /Connection: close\r\n/m); - assert.strictEqual(headers.search(/Keep-Alive: timeout=5, max=3\r\n/m), -1); + assert.strictEqual(headers.search(/Keep-Alive: timeout=65, max=3\r\n/m), -1); assert.match(body, /Hello World!/m); } else { assert.match(headers, /Connection: keep-alive\r\n/m); - assert.match(headers, /Keep-Alive: timeout=5, max=3\r\n/m); + assert.match(headers, /Keep-Alive: timeout=65, max=3\r\n/m); assert.match(body, /Hello World!/m); } } @@ -76,7 +76,7 @@ server.listen(0, common.mustCall((res) => { assert.match(responseParts[6], /HTTP\/1\.1 503 Service Unavailable/m); assert.match(responseParts[6], /Connection: close\r\n/m); - assert.strictEqual(responseParts[6].search(/Keep-Alive: timeout=5\r\n/m), -1); + assert.strictEqual(responseParts[6].search(/Keep-Alive: timeout=65\r\n/m), -1); assert.strictEqual(responseParts[7].search(/Hello World!/m), -1); socket.end(); diff --git a/test/parallel/test-http-server-keep-alive-defaults.js b/test/parallel/test-http-server-keep-alive-defaults.js index 8c10bb37472887..4487a36b3b6d24 100644 --- a/test/parallel/test-http-server-keep-alive-defaults.js +++ b/test/parallel/test-http-server-keep-alive-defaults.js @@ -9,7 +9,7 @@ const bodySent = 'This is my request'; function assertResponse(headers, body, expectClosed) { assert.match(headers, /Connection: keep-alive\r\n/m); - assert.match(headers, /Keep-Alive: timeout=5\r\n/m); + assert.match(headers, /Keep-Alive: timeout=65\r\n/m); assert.match(body, /Hello World!/m); } diff --git a/test/parallel/test-http-server-keep-alive-max-requests-null.js b/test/parallel/test-http-server-keep-alive-max-requests-null.js index 6a9b06960cf6f0..eedac5ad8bfe37 100644 --- a/test/parallel/test-http-server-keep-alive-max-requests-null.js +++ b/test/parallel/test-http-server-keep-alive-max-requests-null.js @@ -9,7 +9,7 @@ const bodySent = 'This is my request'; function assertResponse(headers, body, expectClosed) { assert.match(headers, /Connection: keep-alive\r\n/m); - assert.match(headers, /Keep-Alive: timeout=5\r\n/m); + assert.match(headers, /Keep-Alive: timeout=65\r\n/m); assert.match(body, /Hello World!/m); }