Maison >Problème commun >La différence entre websocket et http
La différence entre websocket et http : 1. WebSocket est un protocole de communication bidirectionnel, qui simule le protocole Socket et peut envoyer ou recevoir des informations dans les deux sens, tandis que HTTP est unidirectionnel 2. WebSocket nécessite ; une poignée de main entre le navigateur et le serveur pour établir la connexion, tandis que http est l'endroit où le navigateur initie une connexion au serveur.
L'environnement d'exploitation de cet article : système Windows 7, ordinateur Dell G3.
Recommandé : "Vidéo de programmation"
1. Qu'est-ce que WebSocket ?
WebSocket est un protocole proposé par la spécification HTML5 ; actuellement, à l'exception du navigateur IE de Wanduzi, d'autres navigateurs le supportent essentiellement. C'est un protocole qui ne change jamais sans ses racines, et qui est également basé sur le protocole TCP et qui coexiste avec le protocole HTTP.
WebSocket est un protocole en HTML5. La spécification HTML5 Web Sockets définit l'API Web Sockets, qui prend en charge la communication en duplex intégral entre la page et l'hôte distant à l'aide du protocole Web Socket. Il introduit l'interface WebSocket et définit un canal de communication full-duplex pour fonctionner sur le Web via un seul socket.
Les Web Sockets HTML5 fournissent efficacement une connectivité Web avec une surcharge minimale. Par rapport à l'ancienne interrogation ou interrogation longue (Comet) qui nécessite souvent de transmettre des données en temps réel au client ou même de maintenir deux connexions HTTP pour simuler une connexion en duplex intégral, cela réduit considérablement le trafic réseau et la latence inutiles.
Pour utiliser HTML5 Web Sockets pour vous connecter à un point de terminaison distant à partir d'un client Web, vous créez une nouvelle instance WebSocket et lui fournissez une URL qui représente le point de terminaison distant auquel vous souhaitez vous connecter.
La spécification définit les modes ws:// et wss:// pour représenter respectivement WebSocket et les connexions WebSocket sécurisées, ce qui est similaire à la différence entre http:// et https://.
Une connexion WebSocket est établie en la mettant à niveau vers le protocole Web Socket lors de la phase initiale de négociation du protocole HTTP entre le client et le serveur. La couche sous-jacente est toujours une connexion TCP/IP.
2. La relation entre WebSocket et Socket
Socket n'est pas réellement un protocole, mais une couche abstraite pour la commodité d'utilisation de TCP ou d'UDP. Elle se situe entre la couche application et la transmission. couche de contrôle. un ensemble d’interfaces entre.
"Socket est une couche d'abstraction logicielle intermédiaire qui communique entre la couche application et la famille de protocoles TCP/IP. Il s'agit d'un ensemble d'interfaces qui fournissent un ensemble d'API pour appeler le protocole TCP/IP.
En mode conception, Socket est en fait un modèle de façade, qui cache la famille complexe de protocoles TCP/IP derrière l'interface Socket. Pour les utilisateurs, un ensemble d'interfaces simples est tout, permettant à Socket d'organiser les données pour se conformer aux spécifications. protocole. "
Lorsque deux hôtes communiquent, ils doivent se connecter via Socket, et Socket utilise le protocole TCP/IP pour établir une connexion TCP. Les connexions TCP s'appuient davantage sur le protocole IP sous-jacent, tandis que les connexions au protocole IP s'appuient sur des couches inférieures telles que la couche liaison.
WebSocket est un protocole de couche application typique, tout comme HTTP.
Résumé :
Socket est l'interface de la couche de contrôle de transmission et WebSocket est le protocole de la couche application.
3. La relation entre WebSocket et HTTP
Schéma de relation :
Mêmes points
Les deux sont basés sur TCP , sont tous des protocoles de transmission fiables.
sont tous des protocoles de couche application.
Différence
WebSocket est un protocole de communication bidirectionnel qui simule le protocole Socket et peut envoyer ou recevoir des informations dans les deux sens. HTTP est à sens unique.
WebSocket nécessite une poignée de main entre le navigateur et le serveur pour établir une connexion. En http, le navigateur initie une connexion au serveur, et le serveur ne connaît pas cette connexion à l'avance.
Contact
WebSocket Lors de l'établissement d'une poignée de main, les données sont transmises via HTTP. Mais une fois établi, le protocole HTTP n’est plus requis lors de la transmission proprement dite.
Résumé :
Dans WebSocket, le serveur et le navigateur n'ont besoin que d'effectuer une action de prise de contact via le protocole HTTP, puis d'établir un canal de communication TCP distinct pour la transmission des données.
Le processus de connexion WebSocket est le suivant :
Tout d'abord, le client initie une requête http, et après trois poignées de main, une connexion TCP est établie : la requête http stocke des informations telles que le numéro de version pris en charge ; par WebSocket, tel que : mise à niveau, connexion, version WebSocket, etc. ;
Ensuite, une fois que le serveur a reçu la demande de prise de contact du client, il utilise également le protocole HTTP pour renvoyer les données
Enfin, le client reçoit le message indiquant que la connexion est réussie. Ensuite, la communication full-duplex commence via le canal de transport TCP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!