Este tutorial desglosará lo que implican estas tecnologías y lo que cada uno de ellos ofrece. Esto lo ayudará a comprender y tomar una decisión dependiendo de las características que esté buscando.
NOTA: Esta guía no es una introducción en ninguna de las tecnologías mencionadas anteriormente. Es simplemente una descripción general de lo que uno puede ofrecer sobre el otro.
Comencemos:
Redes web
WebSocket es un protocolo estándar que proporciona una conexión persistente entre un servidor y un cliente. WebSockets son bidireccionales. Esto significa que un servidor y cliente y enviar y recibir datos están en el mismo canal. Es un protocolo de comunicación Full-Duplex implementado en TCP/IP Socket.
WebSockets ayuda a contrarrestar los límites del protocolo HTTP.
Primero, el protocolo HTTP no es bidireccional. El cliente solicita un recurso específico en el servidor. Una vez que el servidor encuentra y envía el recurso al cliente, la conexión se cierra. Eso significa que en un flujo de datos muy activo, como el servicio de transmisión, habrá demasiadas solicitudes de servidor.
A diferencia de HTTP, WebSockets puede mantener una conexión hasta que el cliente o el servidor la termine. Funciona primero creando un apretón de manos entre el cliente y el servidor, seguido de un encabezado de actualización. Una vez establecido, se establece un flujo de datos entre el servidor y el cliente.
El diagrama anterior ilustra cómo funciona el protocolo HTTP en comparación con WebSockets.
NOTA: Los diagramas anteriores no ofrecen un conocimiento práctico completo de los protocolos HTTP o WebSocket.
Http/2
HTTP/2 o HTTP2 es la segunda implementación del protocolo de red HTTP utilizado para definir el formato y la transmisión de datos. El propósito de HTTP/2 es mejorar el rendimiento a través de HTTP reduciendo la latencia, aplicado mediante características habilitadoras como solicitudes y respuesta completa, y minimizando la sobrecarga del protocolo a través de la compresión de archivos de encabezado.
HTTP/2 es compatible con los principales navegadores y se usa en toda la web.
Las siguientes son algunas de las ventajas ofrecidas por HTTP/2:
Lo anterior es una descripción básica de las características del protocolo HTTP/2. A continuación se muestra una ilustración simple del protocolo HTTP.
Crédito: Red de desarrollador de Mozilla https: // desarrollador.Mozilla.org/en-us/docs/web/http/desaceleración
Eventos del servidor
El evento Servidor-Sent (SSES) es una tecnología que permite al cliente recibir actualizaciones de un servidor HTTP. Aunque siempre ha sido posible impulsar las actualizaciones del servidor al cliente, el cliente tendría que solicitar si existen actualizaciones en el servidor. Usando SSE, las actualizaciones son automáticas.
Los SSE se implementan utilizando flujos de datos HTTP regulares. Por lo tanto, los SSE se limitan al grupo de conexión del cliente (navegador) de 6 conexiones HTTP concurrentes a un servidor. Sin embargo, no proporcionan la funcionalidad para detectar un cliente caído.
https: // html.Especificaciones.Whatwg.org/multipage/servidor-sent-eventos.html#servidor-sent-eventos
También puede encontrar recursos para el cliente SSE en los enlaces que se proporcionan a continuación:
https: // github.com/mpetazzoni/sseclient
https: // github.com/btubbs/sseclient
WebSockets vs. Http/2 vs. SSE
Ahora llegemos al tema y enumeremos las diferencias entre las tecnologías discutidas.
Websocket | Http/2 | SSE |
---|---|---|
Duplex completo | Medio duplex | Duplex completo |
Bidireccional | Se requiere la interacción de un cliente con un método HTTP específico | Unidireccional |
Menos sobrecarga | Sobre la cabeza agregada al apretón de manos SSL | |
Service Push es una implementación base del protocolo | Solo compatible en http/2 | La tecnología base |
Apoyado por los principales navegadores | Compatible con todos los navegadores | No todos los navegadores lo admiten. |
1024 conexiones paralelas | 6-8 conexiones paralelas | 6 conexiones paralelas |
Equilibrio de carga no estándar | Equilibrio de carga estándar | Equilibrio de carga estándar |
Conclusión
Hemos repasado tecnologías como WebSockets, cómo funcionan y su implementación. Este tutorial solo sirve como base para las tecnologías mencionadas. Considere los recursos externos para obtener más información.