Heim > häufiges Problem > Der Unterschied zwischen http-Protokoll und TCP-Protokoll

Der Unterschied zwischen http-Protokoll und TCP-Protokoll

(*-*)浩
Freigeben: 2019-06-15 18:03:50
Original
21624 Leute haben es durchsucht

Das TCP-Protokoll entspricht der Transportschicht, während das HTTP-Protokoll der Anwendungsschicht entspricht. Im Wesentlichen sind die beiden nicht vergleichbar. Das HTTP-Protokoll basiert auf dem TCP-Protokoll. Wenn der Browser Webseitendaten vom Server abrufen muss, sendet er eine HTTP-Anfrage.

Der Unterschied zwischen http-Protokoll und TCP-Protokoll

Http stellt über TCP einen Verbindungskanal zum Server her. Wenn die für diese Anforderung erforderlichen Daten abgeschlossen sind, trennt Http die TCP-Verbindung sofort ist sehr kurz. Daher ist die HTTP-Verbindung eine kurze Verbindung und eine zustandslose Verbindung. Das sogenannte Stateless bedeutet, dass der Browser jedes Mal, wenn er eine Anfrage an den Server initiiert, keine Verbindung herstellt, sondern jedes Mal eine neue Verbindung aufbaut. Wenn es sich um eine Verbindung handelt, kann der Serverprozess die Verbindung aufrechterhalten und sich einige Informationsstatus im Speicher merken. Nach Beendigung jeder Anfrage wird die Verbindung geschlossen und der relevante Inhalt freigegeben, sodass kein Status gespeichert wird und die Verbindung zu einer zustandslosen Verbindung wird.

Empfohlener Kurs: PHP-Tutorial.

Mit der Zeit wird die HTML-Seite komplexer und es können viele Bilder darin eingebettet sein. Zu diesem Zeitpunkt ist es ineffizient, bei jedem Zugriff auf das Bild eine TCP-Verbindung herzustellen. Daher wurde Keep-Alive vorgeschlagen, um das Problem der geringen Effizienz zu lösen. Ab HTTP/1.1 ist Keep-Alive standardmäßig aktiviert, um die Verbindungsfunktion beizubehalten. Wenn eine Webseite geöffnet wird, wird die TCP-Verbindung, die zum Übertragen von HTTP-Daten zwischen dem Client und dem Server verwendet wird, nicht geschlossen Wenn Sie die Webseite auf diesem Server erneut besuchen, verwenden Sie diese hergestellte Verbindung nicht dauerhaft. Sie verfügt über eine Aufbewahrungszeit, die in anderer Serversoftware (z. B. Apache) eingestellt werden kann.

Obwohl die TCP-Verbindung hier für einen bestimmten Zeitraum aufrechterhalten wird, ist diese Zeit begrenzt und wird zu diesem Zeitpunkt immer noch geschlossen, sodass wir sie auch nach Abschluss jeder Verbindung als geschlossen betrachten. Später kann der Status einiger Benutzer auch durch Session-, Cookie- und andere verwandte Technologien beibehalten werden. Es wird jedoch immer noch jedes Mal eine Verbindung verwendet und es handelt sich immer noch um eine zustandslose Verbindung.

Früher gab es ein Konzept, bei dem ich es nicht ertragen konnte, verwirrt zu werden. Deshalb ist HTTP eine zustandslose kurze Verbindung, während TCP eine zustandsbehaftete lange Verbindung ist? Basiert HTTP nicht auf TCP? Warum kann es trotzdem eine kurze Verbindung sein?

Jetzt verstehe ich, dass HTTP die TCP-Verbindung schließt, nachdem jede Anfrage abgeschlossen ist, es also eine kurze Verbindung ist. Wenn wir das TCP-Protokoll direkt über die Socket-Programmierung verwenden, können wir über den Codebereich steuern, wann die Verbindung geöffnet und geschlossen werden soll. Solange wir die Verbindung nicht über den Code schließen, befindet sich die Verbindung im Prozess des Clients und Es existiert immer und die relevanten Statusdaten werden immer gespeichert.

HTTP ist ein objektorientiertes Protokoll der Anwendungsschicht. Aufgrund seiner einfachen und schnellen Methode eignet sich HTTP für verteilte Hypermedia-Informationssysteme. Es wurde 1990 vorgeschlagen und nach mehreren Jahren der Nutzung und Entwicklung kontinuierlich verbessert und erweitert. Die sechste Version von HTTP/1.0 wird derzeit im WWW verwendet. Die Standardisierungsarbeiten für HTTP/1.1 sind im Gange und der HTTP-NG-Vorschlag (Next Generation of HTTP) wurde vorgelegt.
Die Hauptfunktionen des HTTP-Protokolls können wie folgt zusammengefasst werden:
1. Unterstützung des Client/Server-Modus.
2. Einfach und schnell: Wenn ein Client einen Dienst vom Server anfordert, muss er nur die Anforderungsmethode und den Pfad übermitteln. Häufig verwendete Anforderungsmethoden sind GET, HEAD und POST. Jede Methode spezifiziert eine andere Art des Kontakts zwischen dem Client und dem Server. Aufgrund der Einfachheit des HTTP-Protokolls ist die Programmgröße des HTTP-Servers gering und die Kommunikationsgeschwindigkeit sehr hoch.
3. Flexibel: HTTP ermöglicht die Übertragung jeglicher Art von Datenobjekten. Der zu übertragende Typ wird durch Content-Type gekennzeichnet.
4. Keine Verbindung: Die Bedeutung von „Keine Verbindung“ besteht darin, jede Verbindung auf die Verarbeitung nur einer Anfrage zu beschränken. Nachdem der Server die Anfrage des Clients verarbeitet und die Antwort des Clients empfangen hat, wird die Verbindung getrennt. Diese Methode spart Übertragungszeit.
5. Zustandslos: Das HTTP-Protokoll ist ein zustandsloses Protokoll. Zustandslos bedeutet, dass das Protokoll über keine Speicherkapazität für die Transaktionsverarbeitung verfügt. Das Fehlen eines Status bedeutet, dass, wenn für die nachfolgende Verarbeitung die vorherigen Informationen erforderlich sind, diese erneut übertragen werden müssen, was zu einer Erhöhung der pro Verbindung übertragenen Datenmenge führen kann. Andererseits reagiert der Server schneller, wenn er keine vorherigen Informationen benötigt.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen http-Protokoll und TCP-Protokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage