Partager via


Azure Front Door WebSocket

S’applique à : ✔️ Front Door Standard ✔️ Front Door Premium

Azure Front Door prend en charge WebSocket sur les niveaux Standard et Premium sans nécessiter de configuration supplémentaire. WebSocket, standardisé dans le document RFC6455, est un protocole basé sur TCP qui facilite la communication en duplex intégral entre un serveur et un client via une connexion TCP de longue durée. Il élimine l’interrogation, requise dans HTTP, et évite une partie de la surcharge liée à HTTP. Il peut réutiliser la même connexion TCP pour plusieurs requêtes ou réponses, engendrant une utilisation plus efficace des ressources. Cela permet de prendre en charge des scénarios plus interactifs et en temps réel.

WebSocket est idéal pour les applications nécessitant des mises à jour en temps réel ou des flux de données continus, notamment les applications de conversation, les tableaux de bord, les mises à jour financières, les systèmes GPS, l’éducation en ligne, le streaming en direct et le gaming. Par exemple, un site web de trading peut utiliser WebSocket pour envoyer (push) et mettre à jour les données de tarification en temps réel.

Utiliser WebSocket sur Azure Front Door

Lorsque vous utilisez WebSocket sur Azure Front Door, tenez compte des points suivants :

  • Lorsqu’une connexion est mise à niveau vers WebSocket, Azure Front Door transmet les données entre les clients et le serveur d’origine sans effectuer d’inspection ou de manipulation pendant la connexion établie.
  • Les inspections du pare-feu d’applications web (WAF) sont appliquées pendant la phase d’établissement de WebSocket. Une fois la connexion établie, le WAF n’effectue pas d’inspections supplémentaires.
  • Les sondes d’intégrité aux origines sont effectuées à l’aide du protocole HTTP.
  • Désactivez la mise en cache pour les itinéraires WebSocket. Pour les itinéraires avec la mise en cache activée, Azure Front Door ne transfère pas l’en-tête WebSocket Upgrade à l’origine et le traite comme une requête HTTP, sans tenir compte des règles de cache. Cela se traduit par l’échec de la requête de mise à niveau vers WebSocket.
  • Le délai d’inactivité est de 5 minutes. Si Azure Front Door ne détecte aucune transmission de données à partir de l’origine ou du client au cours des 5 dernières minutes, la connexion est considérée comme inactive et est fermée.
  • Actuellement, les connexions WebSocket sur Azure Front Door restent ouvertes pendant 4 heures maximum. La connexion WebSocket peut être supprimée en raison de mises à niveau de serveur sous-jacentes ou d’autres activités de maintenance. Nous vous recommandons vivement d’implémenter une logique de nouvelle tentative dans votre application.
  • Actuellement, chaque profil Azure Front Door prend en charge jusqu’à 3 000 connexions globales simultanées. Pour plus d’informations, consultez les limites de service Azure Front Door Standard et Premium.

Fonctionnement du protocole WebSocket

Les protocoles WebSocket utilisent le port 80 pour les connexions WebSocket standard et le port 443 pour les connexions WebSocket via TLS/SSL. En tant que protocole avec état, la connexion entre les clients et le serveur reste active jusqu’à ce que l’une ou l’autre des parties y mette fin. Les connexions WebSocket commencent en tant que requête HTTP Upgrade avec le schéma ws: ou wss:. Ces connexions sont établies en mettant à niveau une requête/réponse HTTP à l’aide des en-têtes Connection: Upgrade, Upgrade: websocket, Sec-WebSocket-Key et Sec-WebSocket-Version, comme indiqué dans les exemples d’en-tête de demande.

La poignée de main du client se présente comme suit :

    GET /chat HTTP/1.1
    Host: server.example.com
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
    Origin: http://example.com
    Sec-WebSocket-Protocol: chat, superchat
    Sec-WebSocket-Version: 13

Le serveur répond avec un code d’état 101 Switching Protocols pour indiquer qu’il passe au protocole WebSocket, comme le demande le client. La réponse inclut les en-têtes Connection: Upgrade et Upgrade: websocket, confirmant le changement de protocole. L’en-tête Sec-WebSocket-Accept est retourné pour vérifier que la connexion a été correctement mise à niveau.

L’établissement d’une liaison à partir du serveur se présente comme suit :

    HTTP/1.1 101 Switching Protocols
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
    Sec-WebSocket-Protocol: chat

Une fois que le client reçoit la réponse du serveur, la connexion WebSocket est ouverte pour commencer à transmettre des données. Si la connexion WebSocket est déconnectée par le client ou le serveur, ou par une interruption du réseau, l’application cliente est censée relancer la connexion avec le serveur.

Étapes suivantes