Citrix SD-WAN WANOP

Fonctionnement de HTML5

HTML5 utilise HTTP, qui est un protocole de requête/réponse pour la communication entre les clients et les serveurs. Un client initie une connexion TCP et l’utilise pour envoyer des requêtes HTTP au serveur. Le serveur répond à ces demandes en accordant des droits d’accès aux ressources disponibles. Une fois que le client et le serveur ont établi une connexion, les messages échangés entre eux contiennent uniquement des en-têtes WebSocket, et non des en-têtes HTTP.

L’infrastructure HTML5 est constituée de WebSockets, qui utilisent en outre l’infrastructure HTTP existante pour fournir un mécanisme léger de communication entre un client et un serveur Web. Vous implémentez généralement le protocole WebSocket dans un navigateur et des serveurs Web. Toutefois, vous pouvez utiliser ce protocole avec n’importe quelle application client ou serveur.

Lorsqu’un client tente d’établir une connexion à l’aide de WebSockets, les serveurs Web traitent la poignée de main WebSocket comme une demande de mise à niveau, et le serveur passe au protocole WebSocket. Le protocole WebSocket permet une interaction fréquente entre le navigateur et les serveurs Web. Par conséquent, vous pouvez utiliser ce protocole pour les mises à jour en direct, telles que les index boursiers et les cartes de score, et même les jeux en direct. Ceci est possible en raison d’un moyen standardisé pour le serveur d’envoyer des réponses non sollicitées au client tout en maintenant une connexion ouverte pour une communication continue bidirectionnelle entre le navigateur client et le serveur.

Remarque

Vous pouvez également obtenir cet effet, de manière non standardisée, en utilisant diverses autres technologies, telles que Comet. Pour plus d’informations sur Comet, reportez-vous à la section http://en.wikipedia.org/wiki/Comet_(programming).

Le protocole WebSocket communique via les ports TCP 80 et 443. Cela facilite la communication dans les environnements qui utilisent des pare-feu pour bloquer les connexions Internet non Web. En outre, WebSocket a son propre mécanisme de fragmentation. Un message WebSocket peut être envoyé sous la forme de plusieurs trames WebSocket.

Remarque

Vous ne pouvez pas utiliser WebSocket si les applications Web sur les serveurs ne le supportent pas.

Comment HTML5 établit une session WebSocket

Un navigateur prenant en charge HTML5 utilise des API JavaScript pour effectuer les tâches suivantes :

  • Ouvrez une connexion WebSocket.

  • Communiquer via la connexion WebSocket.

  • Fermez les connexions WebSocket.

Pour ouvrir une connexion WebSocket, le navigateur envoie un message de mise à niveau HTTP au serveur pour passer au protocole WebSocket. Le serveur accepte ou rejette cette demande. Voici des extraits d’un exemple de requête client et de réponse du serveur :

  • Exemple de demande client

    pre codeblock GET /HTTP/1.1 Upgrade: websocket Sec-websocket-protocol: <List of protocols that the client supports over this websocket session, such as an application level protocol, for example ICA.> Sec-websocket-extensions: <List of extensions client wants applied to this session, such as compression.> Sec-Websocket-version: <Version of websocket protocol that the client intends to use.> <!--NeedCopy-->

  • Exemple de réponse du serveur

    pre codeblock HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-Websocket-Protocol: <One from the list of protocols in the client request.> Sec-Websocket-extensions: <List of extensions server accepts for session.> Sec-Websocket-version: <Version of websocket protocol that the server supports.> <!--NeedCopy-->

La figure suivante montre la séquence des messages échangés entre un client et un serveur :

image localisée

Au cours d’une connexion HTML5, les messages suivants sont échangés entre le client et le serveur :

  • Le client envoie une requête HTTP pour mettre à niveau WebSocket.
  • Le serveur répond à la demande du client et passe au protocole WebSocket.
  • Le serveur envoie des trames WebSocket au client.
  • Le client envoie une requête pour fermer le WebSocket.
  • Le serveur ferme le WebSocket.
Fonctionnement de HTML5