Яка різниця між KeepAliveTimeout і таймаутом?


Відповідь 1:

Тайм-аут: мета тайм-аута сервера - не допустити, щоб пристрій нескінченно чекав, коли серйозна реакція відповість. Час очікування сервера може виникнути під час використання веб-браузера для перегляду сайту, підключення до онлайн-сервісу з грою або запуску оновлення програми, серед інших ситуацій. Завдання, яке закінчилось або пройшло тайм-аут, вважається незавершеним або не виконаним. По суті, пристрій, який зробив початковий запит на дані з іншого пристрою, "здається", чекаючи, коли ця інформація буде надіслана, коли настає час очікування. Тривалість тайм-ауту залежить від того, яка програма надсилає запит на дані від сервера і може становити від декількох секунд до декількох годин. Директива TimeOut в даний час визначає кількість часу, на який сервер чекатиме три речі:

  1. Загальна кількість часу, необхідного для отримання запиту GET. Кількість часу між отриманням TCP-пакетів на POST або PUT-запит. Кількість часу між ACK на передачу пакетів TCP у відповідях.

KeepALiveTimeout:

  • Keep-Alive - це спосіб дозволити одне і те ж TCP-з'єднання для HTTP-розмови замість відкриття нового з кожним новим запитом. Розширення Keep-Alive до HTTP / 1.0 та функція постійного підключення HTTP / 1.1 забезпечують довготривалі сеанси HTTP, які дозволяють надсилати кілька запитів через одне і те ж TCP-з'єднання.KeepAliveTimeout - кількість секунд, на які сервер чекатиме наступного запит перед тим, як закрити з'єднання. Після отримання запиту застосовується значення тайм-ауту, визначене директивою про очікування. Встановлення значення KeepAliveTimeout на високе значення може спричинити проблеми з продуктивністю на сильно завантажених серверах. Чим більше тайм-аут, тим більше серверних процесів буде зайнято в очікуванні на з'єднання з непрацюючими клієнтами. Постійний пакет TCP - це просто ACK з порядковим номером, встановленим на один, меншим за поточний номер послідовності для з'єднання. Якщо буде надіслана певна кількість кепалів, і відповідь (ACK) не буде отримана, хост, який відправляє, припинить з'єднання з його кінця. Якщо з'єднання припинено через тайм-аут Keepalive TCP, а інший хост врешті-решт надсилає пакет для старого з'єднання, хост, який припинив з'єднання, надішле пакет із встановленим прапором RST, щоб сигналізувати іншому хосту, що старий з'єднання більше не активне. Це змусить іншого хоста припинити закінчення з'єднання, щоб встановити нове з'єднання.