Как websocket отличается от http с соединением заголовка-keep-alive = миллион - программирование

Как websocket отличается от http с соединением заголовка-keep-alive = миллион

Не будет ли этот HTTP-заголовок заставлять соединение оставаться открытым в течение длительного времени? Так в чем же преимущество?

Кто-нибудь может прояснить меня? Я, кажется, пропустил эту концепцию, я думаю.

4b9b3361

Ответ 1

На уровне TCP/IP он выглядит одинаково: сокет открыт.

Но с точки зрения браузера они совершенно разные. Сохранение - это возможность повторного использования браузером для запроса большего количества контента (например, изображений, css файлов, следующей страницы на сайте). WebSockets предназначен для двусторонней связи из вашего кода приложения Javascript. Сервер может выбрать отправку контента в любое время. Приложение JS может отправлять данные на сервер в любое время.

Также стоит сравнить с SSE (aka EventSource), который также позволяет серверу выбирать отправку контента в любое время, но является односторонним (ваше приложение JS должно прибегнуть к использованию XHR, когда ему нужно отправить больше данных), (Полное сравнение WebSockets и SSE может стать очень сложным, поэтому я больше не буду говорить здесь, кроме как сказать, что SSE часто может быть правильным выбором.)

Также сравните с сервером Push в HTTP/2 (он же SPDY). Это для сервера, чтобы проактивно отправлять файлы (изображения, css файлы, следующую страницу на сайте), но он снова находится на уровне браузера, а не контролируется Javascript.