0%
Inicio 9 Glossary Item 9 WebSockets
« Back to Glossary Index

Nivel Principiante

Imagina que estás hablando con un amigo por un walkie-talkie. La conexión está siempre abierta, así que pueden hablar de forma continua y en tiempo real. WebSockets es como esa conexión, pero para las páginas web. Permite que el navegador y el servidor se mantengan conectados todo el tiempo, para que la información se envíe y se reciba al instante, sin tener que recargar la página una y otra vez.

Nivel Intermedio

WebSockets es una tecnología de protocolo de comunicación que proporciona un canal de comunicación bidireccional, persistente y full-duplex a través de una sola conexión TCP. A diferencia del protocolo HTTP tradicional, que es unidireccional y sin estado (el cliente envía una petición y el servidor responde, cerrando la conexión), WebSockets permite que tanto el cliente como el servidor envíen datos de forma independiente y en cualquier momento una vez que la conexión se ha establecido. Esto lo hace ideal para aplicaciones que requieren actualizaciones en tiempo real, como chats, juegos multijugador, plataformas de trading en vivo y notificaciones instantáneas.

Nivel Avanzado

El protocolo WebSockets está definido en la RFC 6455. El proceso de establecer una conexión WebSocket se conoce como handshake. Inicialmente, el cliente (el navegador) realiza una petición HTTP/HTTPS al servidor, pero con un encabezado Upgrade: websocket. Si el servidor acepta la conexión, responde con un código de estado 101 Switching Protocols y se establece la conexión WebSocket, que es una conexión persistente y de bajo coste. A partir de ese momento, los datos se transfieren a través de la conexión abierta, sin los encabezados HTTP que conllevan una sobrecarga significativa.

Las ventajas técnicas de WebSockets sobre las soluciones de sondeo (polling) o sondeo largo (long-polling) son:

  • Baja Latencia: Los datos se transmiten de inmediato sin necesidad de esperar nuevas peticiones.
  • Reducción de Sobrecarga: Al eliminar los encabezados HTTP repetitivos, la cantidad de datos transferidos se reduce drásticamente.
  • Comunicación Bidireccional: El servidor puede enviar información al cliente de forma proactiva, sin que el cliente la haya solicitado.

Las librerías y frameworks de desarrollo web modernos, como Socket.IO o ws para Node.js, facilitan la implementación y gestión de conexiones WebSocket. El protocolo, al ser de bajo nivel, requiere una cuidadosa gestión del estado del cliente y del servidor para asegurar la fiabilidad y la seguridad de la comunicación.

« Volver al índice del glosario