Ich habe über WebSockets gelesen und frage mich, warum der Browser nicht einfach eine einfache TCP-Verbindung öffnen und wie jede andere Desktop-Anwendung mit dem Server kommunizieren konnte. Und warum ist diese Kommunikation über Websockets möglich?
167
80
. Per Definition kann ein Port NUR an eine Anwendung angeschlossen werden . Was ist, wenn ein Client einen anderen Dienst als Web (HTTP) verwenden möchte, aber nur ein Port verfügbar ist? Voila! Websockets!Antworten:
Die Kommunikation über TCP-Sockets ist einfacher, wenn Sie innerhalb einer Intranetgrenze arbeiten, da Sie wahrscheinlich die Kontrolle über die Computer in diesem Netzwerk haben und Ports öffnen können, die zum Herstellen der TCP-Verbindungen geeignet sind.
Über das Internet kommunizieren Sie mit dem Server eines anderen am anderen Ende. Es ist äußerst unwahrscheinlich, dass eine alte Steckdose für Verbindungen geöffnet ist. Normalerweise haben sie nur wenige Standard-Ports wie Port 80 für HTTP oder 443 für HTTPS. Um mit dem Server zu kommunizieren, müssen Sie eine Verbindung über einen dieser Ports herstellen.
Da dies Standardports für Webserver sind, die im Allgemeinen HTTP sprechen, müssen Sie sich daher an das HTTP-Protokoll halten, da der Server sonst nicht mit Ihnen spricht. Der Zweck von Web-Sockets besteht darin, Ihnen zu ermöglichen, eine Verbindung über HTTP herzustellen, dann aber das Web-Sockets-Protokoll zu verhandeln (vorausgesetzt, der Server ist dazu in der Lage), um einen eher "TCP-Socket" -ähnlichen Kommunikationsstrom zuzulassen.
quelle
Webbrowser arbeiten auf der Anwendungsschicht, während TCP auf der Transportschicht arbeitet. Als Webanwendungsentwickler ist es einfacher, Nachrichten über die Anwendungsschicht über das Kabel zu senden, als Rohbytes auf der Transportschicht.
WebSockets liegt TCP zugrunde, es wird der Einfachheit halber nur abstrahiert.
quelle
Websocket ist ein Anwendungsschichtprotokoll, während TCP das Transportschichtprotokoll ist. Auf der Transportschicht haben wir normalerweise das TCP- und UDP-Protokoll. Jede Nachricht von der Anwendungsschicht muss die Transportschicht durchlaufen, um an einen anderen Computer übertragen zu werden. Daher haben Websocket und TCP eine Beziehung zueinander und können nicht vergleichbar sein.
quelle
Zur Vereinfachung erfolgt die Websocket-Kommunikation über den TCP-Port Nr. 80 (oder 443 bei TLS-verschlüsselten Verbindungen). Dies ist von Vorteil für Umgebungen, in denen Nicht-Web-Internetverbindungen mithilfe einer Firewall blockiert werden .
Möchten Sie einen vorhandenen TCP-Port verwenden oder einen neuen TCP-Port öffnen, der möglicherweise von der Firewall blockiert wird?
quelle