Де зберігається ця інформація ("це з'єднання між комп'ютером A
та сервером F
")?
TCP-з'єднання розпізнається за вихідним IP-адресом та портом і IP-адресою призначення та портом. Ваша ОС, усі пристрої проміжних сеансів і ОС сервера розпізнають це з'єднання.
HTTP працює з запитом-відповіддю: клієнт підключається до сервера, виконує запит і отримує відповідь. Без збереження життя з'єднання з сервером HTTP закривається після кожної відповіді. Завдяки підтримці HTTP-режиму залишається відкритим базове з'єднання TCP, поки не будуть виконані певні критерії.
Це дозволяє отримати кілька пар запит-відповідь через одне з'єднання TCP, усуваючи деякі відносно повільні запуски з'єднання TCP.
Коли IIS (F) надсилає живий заголовок (або користувач надсилає режим збереження), чи означає це, що (E, C, B) зберегти з'єднання
Ні. Маршрутизаторам не потрібно пам'ятати сеанси. Насправді, декілька пакетів TCP, що належать до одного і того ж сеансу TCP, не повинні всі проходити однакові маршрутизатори - тобто для управління TCP. Маршрутизатори просто вибирають найкращий IP-шлях та переадресацію пакетів. Продовжуйте жити лише для клієнтів, серверів та будь-яких інших пристроїв із проміжними сесіями.
що тільки для мого сеансу?
Чи означає це, що ніхто більше не може використовувати це з'єднання
Це намір TCP-з'єднань : це кінцеве з'єднання, призначене лише для цих двох сторін.
Якщо так - це означає, що збереження в заголовку - зменшити кількість користувачів, що перекриваються з'єднаннями?
Визначте "перекриті з'єднання". Див. Стійке з'єднання HTTP щодо деяких переваг та недоліків, таких як:
- Зниження використання процесора та пам'яті (оскільки одночасно відкрито менше з'єднань).
- Вмикає HTTP-конвеєризацію запитів та відповідей.
- Зменшення перевантаженості мережі (менше TCP-з'єднань).
- Зменшення затримки в наступних запитах (відсутність рукостискань).
якщо так, то на який час зберігається з'єднання? (інакше кажучи, якщо я налаштую на те, щоб продовжувати жити - "тримати" до тих пір, коли?)
Типова реакція на збереження життя виглядає приблизно так:
Keep-Alive: timeout=15, max=100
Дивіться, наприклад, заголовок Keep-Alive протоколу передачі гіпертексту (HTTP) (чернетка для HTTP / 2, де заголовок збереженого життя пояснюється більш детально, ніж 2616 та 2086 ):
Хост встановлює значення timeout
параметра в той час, коли хост дозволить простоюче з'єднання залишатися відкритим до його закриття. З'єднання не працює, якщо хост не надсилає та не отримує даних.
max
Параметр вказує максимальну кількість запитів , які клієнт буде робити, або що сервер дозволить зробити на постійному зв'язку. Після того, як вказана кількість запитів та відповідей буде надіслана, хост, який включав параметр, міг перервати з'єднання.
Однак сервер може закрити з'єднання після довільного часу або кількості запитів (до тих пір, поки він поверне відповідь на поточний запит). Як це буде реалізовано, залежить від вашого HTTP-сервера.