Kurze Verbindung
Verbinden->Daten übertragen->Verbindung schließen
Für Beispiel: HTTP ist ein zustandsloser Kurzlink. Jedes Mal, wenn der Browser und der Server einen HTTP-Vorgang ausführen, wird eine Verbindung hergestellt, die Verbindung wird jedoch beendet, wenn die Aufgabe abgeschlossen ist.
Konkret initiiert und baut der Browser-Client eine TCP-Verbindung auf. Der Client sendet eine HttpRequest-Nachricht. Der Server empfängt die Nachricht und sendet eine HttpResponse-Nachricht an das Frontend unmittelbar nach dem Senden der socket.close-Methode –>Client erhält die Antwortnachricht –>Client erhält schließlich ein Signal vom Server, um die TCP-Verbindung zu trennen –>Client trennt die TCP-Verbindung, insbesondere durch Aufrufen der Close-Methode. (Empfohlenes Lernen: PHP-Programmierung vom Anfänger bis zum Experten)
Man kann auch sagen: Kurze Verbindung bedeutet, dass nach dem Anschließen des SOCKET die Verbindung sofort nach dem Senden und Empfangen von Daten getrennt wird.
Da die Verbindung nach Erhalt der Daten getrennt wird, findet bei jeder Datenannahme und -verarbeitung kein Kontakt statt. Dies ist einer der Gründe, warum das HTTP-Protokoll zustandslos ist.
Lange Verbindung
Verbinden->Daten übertragen->In Verbindung bleiben->Daten übertragen-> ........... ->Bis eine Partei die Verbindung schließt, schließt möglicherweise der Client die Verbindung.
Eine lange Verbindung bedeutet, dass nach dem Herstellen einer SOCKET-Verbindung die Verbindung bestehen bleibt, unabhängig davon, ob sie verwendet wird oder nicht, die Sicherheit jedoch schlecht ist.
HTTPs Auswahl an kurzen Links und langen Verbindungen:
HTTP ist zustandslos, das heißt, jedes Mal, wenn der Browser und der Server einen HTTP-Vorgang ausführen, wird eine Verbindung hergestellt einmal aufgebaut, die Verbindung wird jedoch beendet, wenn die Aufgabe abgeschlossen ist. Wenn eine HTML- oder andere Art von Webseite, auf die der Client-Browser zugreift, andere Webressourcen wie JavaScript-Dateien, Bilddateien, CSS-Dateien usw. enthält, erstellt der Browser jedes Mal eine HTTP-Sitzung 🎜>
Im Vergleich zu HTTP1.0 besteht der größte Unterschied in der zusätzlichen Unterstützung für dauerhafte Verbindungen (es scheint, dass das neueste HTTP1.1 Keep-Alive explizit angeben kann), aber es ist immer noch zustandslos oder kann nicht vertrauenswürdig sein. Wenn der Browser oder Server diese Codezeile Connection:keep-alive hinzufügtDie TCP-Verbindung bleibt nach dem Senden geöffnet, sodass der Browser weiterhin dieselbe Verbindung weiterleiten kann, um eine Anfrage zu senden . Das Aufrechterhalten von Verbindungen spart Zeit, die für den Aufbau einer neuen Verbindung für jede Anfrage erforderlich ist, und spart außerdem Bandbreite. Um lange Verbindungen zu erreichen, müssen sowohl der Client als auch der Server lange Verbindungen unterstützen.Wann sollte man eine lange Verbindung und eine kurze Verbindung verwenden?
Lange Verbindungen werden hauptsächlich für häufige Vorgänge und Punkt-zu-Punkt-Kommunikation verwendet, und die Anzahl der Verbindungen darf nicht zu groß sein. Jede TCP-Verbindung erfordert einen dreistufigen Handshake, der einige Zeit in Anspruch nimmt. Wenn jeder Vorgang zuerst verbunden und dann ausgeführt wird, wird die Verarbeitungsgeschwindigkeit erheblich verringert. Trennen Sie daher nicht nach jedem Vorgang die Verbindung und verarbeiten Sie ihn direkt Es ist in Ordnung, das Datenpaket zu senden, ohne eine TCP-Verbindung herzustellen.
Zum Beispiel: Die Datenbankverbindung verwendet eine lange Verbindung. Häufige Kommunikation mit kurzen Verbindungen führt zu Socket-Fehlern, und häufiges Erstellen von Sockets ist ebenfalls eine Verschwendung von Ressourcen.HTTP-Dienste wie WEB-Websites verwenden im Allgemeinen kurze Links, da lange Verbindungen eine gewisse Menge an Ressourcen für den Server verbrauchen, und wie WEB-Websites werden häufig Tausende oder sogar Hunderte Millionen davon verwendet. Die Verwendung einer kurzen Verbindung für die Client-Verbindung spart einige Ressourcen. Wenn eine lange Verbindung verwendet wird und Tausende von Benutzern gleichzeitig vorhanden sind, ist es denkbar, dass jeder Benutzer eine Verbindung belegt. Daher ist die Parallelität groß, aber jeder Benutzer muss eine kurze Verbindung verwenden, wenn er keine häufigen Vorgänge benötigt.
Kurz gesagt, die Wahl zwischen langer und kurzer Verbindung hängt von der Situation ab.Für Anwendungen in bestimmten Netzwerken:
http 1.0一般就指短连接,smtp,pop3,telnet这种就可以认为是长连接。一般的网络游戏应用都是长连接
Das obige ist der detaillierte Inhalt vonNutzungsszenarien für PHP-Langverbindungen und Kurzverbindungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!