Node.js однопоточный. Если медленный клиент делает запрос, я предполагаю, что он может заблокировать поток до его завершения. Имеет ли это смысл ?Как обрабатывать медленные клиентские соединения в node.js?
Как обрабатывать медленные соединения? Имеет ли смысл просто прекратить соединение, если оно занимает слишком много времени? Как это определить? Как измерять длительность запроса и прекращать его, если он занимает слишком много времени? Я не имею в виду продолжительность, на которую требуется отправить ответ. Я просто ссылаюсь на время, необходимое узлу для получения всех данных, необходимых для обработки запроса. Это законный сценарий?
Я предполагаю, что должен быть какой-то способ сделать это, в противном случае было бы очень легко DOS атаки у node.js сервера ...
EDIT: В запросе пост, данные поступают в кусковые , Так что, если он просто приходит медленно? Я не уверен, как имитировать это. Но если это проблема в узле, это может быть проблемой в PHP и т. Д., Потому что вам просто нужно вызвать множество соединений, все из которых очень медленны, чтобы атаковать сервер.
Использование одного и того же стека; когда я загружаю тест в своем приложении со SLOW-соединением, максимальное время отклика может увеличиться до 30 секунд. Но когда я делаю это с быстрым соединением, максимальное время отклика составляет 1 секунду. Если речь идет не о медленном соединении, какова будет причина, по которой вы думаете? – scaryguy