Добрий ранок, друзі ☀️
Ну що давайте розберемо наш останній пул про WebSocket поверх TCP, бо бачу, що були різні варіанти відповідей)
Чому не (A)
WebSocket, це окремий транспортний протокол, який працює напряму поверх IP
Ні. Транспортні протоколи, це TCP і UDP. А WebSocket - це розширення до HTTP, а не окремий транспорт.
Чому не (C)
WebSocket це тип UDP-з’єднання
Також ні. Бо WebSocket завжди працює поверх TCP, а от UDP юзається для швидких стрімінгових протоколів (типу RTP у відео).
Чому не (D)
WebSocket - це просто HTTPS-запити, які відправляються кожні кілька секунд
Це опис технології long polling, а не WebSocket. У WebSocket з’єднання постійне, і немає потреби кожного разу відкривати новий запит.
і чому саме (B)
WebSocket - це розширення HTTP, яке дозволяє встановити постійне full-duplex з’єднання поверх TCP.
Тобто: Спочатку йде handshake через HTTP(S). А потім вже з’єднання (апгрейдиться) і далі вже працює як окремий канал поверх TCP.
Клієнт і сервер можуть обмінюватися даними в обидві сторони у реальному часі без повторних запитів.
Який поін для КУА
Тестуємо, чи з’єднання стабільно тримається (reconnect при розриві). Дивимось, чи дані приходять у правильному порядку. Перевіряємо edge cases (наприклад, обрив мережі, idle timeout, повторна ініціалізація).
Тому якщо бачите у логах Upgrade: websocket - це значить, що ваш застосунок пішов у постійне TCP-з’єднання)
Всіх обняв 🤗
Сильні 💛
Post #623
818
Bug or Defect? Завдання дня для QA: Ви тестуєте застосунок, і бачите, що для реального-тайм комунікації він використовує WebSocket поверх TCP. Питання: що це означає з точки зору роботи протоколів?
- 👍 9
- ❤ 5
- 🤗 2