Función | Comunicación bidireccional a través de una conexión TCP para navegadores web |
---|---|
Acrónimo | ws |
Fecha de creación | 2011 |
Puerto | 80 y 443 |
RFC | 6455 |
WebSocket es un estándar web que designa un protocolo de red de la capa de aplicación y una interfaz de programación de la World Wide Web para crear canales de comunicación full-duplex sobre una conexión TCP para navegadores web. El protocolo fue estandarizado por el IETF en RFC 6455 en 2011 y la interfaz de programación por el W3C .
El protocolo WebSocket se utiliza para abrir un canal de comunicación bidireccional (o " full-duplex ") en un socket TCP para navegadores y servidores web . Más concretamente, por tanto permite:
La creciente interactividad de las aplicaciones web, tras la mejora del rendimiento del navegador, hizo necesario rápidamente desarrollar técnicas de comunicación bidireccional entre la aplicación web cliente y los procesos del servidor. Técnicas basadas en la llamada de solicitud por parte del cliente a través del objeto XMLHttpRequest y el uso de solicitudes HTTP con un tipo TTL largo almacenadas por el servidor para una posterior respuesta al cliente han permitido superar esta carencia y han sido popularizadas por las exitosas arquitecturas Ajax. .
Según el informático Stéphane Bortzmeyer , "WebSocket ofrece prácticamente el mismo servicio a las aplicaciones que TCP" , pero tiene la ventaja de sortear los numerosos obstáculos intermedios a los flujos de red ( cortafuegos, etc.) en la "jungla" que se ha convertido en la Web contemporánea. . Al utilizar la arquitectura de HTTP (retransmisión, autenticación, puertos 80 y 443), muy poco filtrado, para crear un nuevo protocolo de transporte, los creadores de Websocket pretenden garantizar una comunicación de red bidireccional que ya no estaba garantizada a través de TCP. La principal limitación de Websocket es que no es un protocolo general: la comunicación debe realizarse necesariamente a través del navegador web del cliente, o mediante determinadas bibliotecas dedicadas (consulte la sección “Implementaciones” ).
La interfaz de programación WebSocket se desarrolló dentro del WHATWG .
El principio mismo de WebSocket fue cuestionado dentro de los organismos de especificación durante su desarrollo, en nombre del hecho de que posiblemente era mejor resolver los problemas de filtrado encontrados en la capa de red en lugar de crear un nuevo protocolo por encima de la capa de aplicación.
Se ha descubierto una falla de seguridad en la API de las primeras versiones de websocket. La seguridad se vio comprometida al navegar reemplazando un archivo JavaScript con malware durante la fase de protocolo de enlace . Dado que esta falla está en la propia API, no se pudo corregir con ningún parche dentro del navegador. En algunas versiones de navegadores como Firefox 4 y 5, Opera 11 e Internet Explorer 9, WebSocket se ha desactivado debido a esta falla.
La falla de seguridad en Firefox se ha corregido desde Firefox 6 (motor Gecko 6.0).
Internet Explorer implementó el websocket con IE10.
En Opera, siempre fue posible reactivar el websocket. Desde Opera 12, el websocket está activado.
Caracteristicas | Cromo | Firefox (Gecko) | explorador de Internet | Ópera | Safari |
---|---|---|---|---|---|
Soporte para la versión -76 | 6 | 4,0 (2,0) | Sin soporte | 11.00 (desactivado) | 5.0.1 |
Compatibilidad con la versión 7 del protocolo | Sin soporte | 6.0 | Sin soporte | Sin soporte | Sin soporte |
Compatibilidad con la versión 10 del protocolo | 14 | 7.0 | Laboratorios HTML5 | ? | ? |
Estándar: compatibilidad con RFC 6455 | dieciséis | 11,0 | 10 | 12.10 | 6 |