La spécification HTML5 WebSockets définit une API qui permet aux pages Web de communiquer avec des hôtes distants dans deux directions à l'aide du protocole WebSockets. Présente l'interface WebSocket et définit un canal de communication full-duplex sur un socket du réseau. Les WebSockets HTML5 offrent une réduction considérable du trafic réseau inutile et de la latence sans l'impossibilité de monter les solutions d'interrogation et d'interrogation longue qui sont utilisées pour simuler une connexion full duplex en maintenant deux connexions.
Les WebSockets HTML5 tiennent compte des risques réseau tels que les proxys et les pare-feu, permettant le streaming sur n'importe quelle connexion et étant capables de prendre en charge les communications en amont et en aval sur une seule connexion, les serveurs d'applications basés sur les WebSockets HTML5 réduisent la charge et permettent les communications existantes. La machine prend en charge davantage de connexions simultanées. La figure ci-dessous montre une structure de base basée sur WebSocket, dans laquelle le navigateur utilise une connexion WebSocket en duplex intégral pour communiquer directement avec l'hôte distant.
Les applications utilisent généralement des pare-feu et des proxys de défense de ligne de base à interrogation longue. La technique est efficace, mais ne convient pas aux applications avec une latence inférieure à 500 ms ou des besoins de débit élevés. Les technologies basées sur des plug-ins, telles qu'Adobe Flash, offrent également un certain niveau de prise en charge des sockets, mais sont confrontées à des problèmes de traversée de proxy et de pare-feu que WebSockets résout désormais.
WebSocket détecte la présence d'un serveur proxy et met automatiquement en place un tunnel via le proxy. Le tunnel est établi en émettant une instruction HTTP CONNECT au serveur proxy, qui demande au serveur proxy d'ouvrir une connexion TCP/IP vers un hôte et un port spécifiques. Une fois le tunnel établi, la communication peut passer par le proxy. Étant donné que HTTP/S fonctionne de la même manière, les WebSockets sécurisés sur SSL peuvent exploiter la même technologie de connexion HTTP. Notez que les WebSockets commencent seulement à être pris en charge par les navigateurs modernes (Chrome prend désormais en charge les WebSockets de manière native). Cependant, les implémentations rétrocompatibles permettent aux navigateurs actuels de tirer parti de cette technologie émergente.
WebSockets, comme d'autres parties du travail HTML5 telles que le stockage local et la géolocalisation, faisait à l'origine partie de la spécification HTML 5, mais a été déplacé vers un document de normes distinct au sein de l'ensemble de spécifications. WebSockets a été soumis aux créateurs de l'Internet Engineering Task Force (IETF), le Web Hypertext Applications Technology Working Group (WHATWG). Les auteurs, les évangélistes et les entreprises participant à la normalisation se réfèrent toujours à l'ensemble de fonctionnalités d'origine, y compris les WebSockets, « HTML5 ». Pour plus de contenu connexe, veuillez prêter attention au site Web chinois de PHP (www.php.cn) !