Title: http: fix keep-alive not timing out after post-request empty line by islandryu · Pull Request #58178 · nodejs/node · GitHub
Open Graph Title: http: fix keep-alive not timing out after post-request empty line by islandryu · Pull Request #58178 · nodejs/node
X Title: http: fix keep-alive not timing out after post-request empty line by islandryu · Pull Request #58178 · nodejs/node
Description: Fixes: #58140 As shown in the test code, sending an empty line after a request can result in a state where the keep-alive timer is reset, but neither requestTimeout nor keepAliveTimeout is active. Unless a custom timeout is implemented, this allows the client to hold the socket indefinitely. Modified behavior so that data like an empty line, which does not indicate the start of an HTTP message, no longer resets the keep-alive timeout. FYI Here is the behavior of other HTTP servers: nginx: When client_header_timeout is set, sending an empty line after a request triggers a 408 timeout response once the timeout period expires. Apache: When RequestReadTimeout header=5-10,MinRate=500 is configured, the connection times out after the specified duration, but no error code is sent. However, since the timing for resetting the keep-alive timeout is not clearly defined in RFC 9112 or similar specifications, I believe this change is appropriate.
Open Graph Description: Fixes: #58140 As shown in the test code, sending an empty line after a request can result in a state where the keep-alive timer is reset, but neither requestTimeout nor keepAliveTimeout is active. ...
X Description: Fixes: #58140 As shown in the test code, sending an empty line after a request can result in a state where the keep-alive timer is reset, but neither requestTimeout nor keepAliveTimeout is active. ...
Opengraph URL: https://github.com/nodejs/node/pull/58178
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:df3b3d2f-fe81-ddca-8a83-75994ef03cf7 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | B456:131F84:9B5106:D416ED:6A4C89E0 |
| html-safe-nonce | c15f222be5659d499d21075206f4ce88f2a2ff65b4a137f6909575a84e3da9c5 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNDU2OjEzMUY4NDo5QjUxMDY6RDQxNkVEOjZBNEM4OUUwIiwidmlzaXRvcl9pZCI6Ijc5NzQwOTQyNzQxODU0MzE1MjAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 80f405b73d6fa138ec1e08ebfb144c708d94a77b3808fa1007f3ddcdf3eccf07 |
| hovercard-subject-tag | pull_request:2498169976 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/nodejs/node/pull/58178/files |
| twitter:image | https://avatars.githubusercontent.com/u/65934663?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/65934663?s=400&v=4 |
| og:image:alt | Fixes: #58140 As shown in the test code, sending an empty line after a request can result in a state where the keep-alive timer is reset, but neither requestTimeout nor keepAliveTimeout is active. ... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7a2dede45637df6b92ddcfe2a557e67d4b5854ae |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width