Ich frage mich, wie ein Webbrowser funktioniert. Ich habe gerade mein Lehrbuch über Netzwerke durchgelesen. Nachstehend meine wilde Fantasie und meine Fragen.
Webbrowser arbeiten normalerweise mit dem HTTP-Protokoll. Die erste Frage wird also lauten:
- Wer ist für die Unterstützung des HTTP-Protokolls zuständig?
Ich denke, das HTTP-Protokoll sollte im Webbrowser implementiert werden, während die Protokolle TCP, UDP, IP usw. im Betriebssystem implementiert werden sollten. Aus diesem Grund wird das HTTP-Protokoll auch als Protokoll auf Anwendungsebene . ( Korrigieren Sie mich, wenn ich falsch liege. )
Kehren Sie zum Szenario der HTTP-Kommunikation zurück.
Auf der Kundenseite :
Wenn eine Adresse in den Webbrowser eingegeben wird, wählt der Webbrowser die richtige HTTP-Methode und erstellt eine vollständige HTTP-Anfrage. Diese HTTP-Anfrage ist nichts anderes als reiner ASCII-Text. Dann wählt der Browser eine private Portnummer und verwendet das TCP-Protokoll, um den Text-Bitstrom an den Server zu senden. Während dieses Prozesses wird eine DNS-Abfrage durchgeführt, wenn die URL keine IP-Adresse ist.
Auf der Serverseite :
Wenn ein TCP-Paket beim Server ankommt, wird geprüft, ob es auf den Port 80 gerichtet ist. Wenn dies der Fall ist, wird es an den Serverprozess weitergeleitet, und nun hat das TCP-Protokoll seine Aufgabe erfüllt, und es ist Zeit für das Serverprogramm, in Aktion zu treten. Das Serverprogramm muss das HTTP-Protokoll implementieren, damit es die aus dem TCP-Paket extrahierte HTTP-Anfrage des Client-Browsers analysieren kann. Und dann die erforderliche HTML-Datei an den Client zurückschicken. Diese HTML-Dateien können statisch sein oder mit Technologien wie ASP.NET dynamisch erzeugt werden.
Im Fall von Hochladen und Herunterladen von Dateien Ich denke, dass es 2 verschiedene Ansätze geben kann.
-
Unabhängig vom Format der Datei können wir sie als Base64-String kodieren und so als Teil der Webseite einbetten. Ich frage mich, ob es möglich ist, eine jpeg-Datei als Base64-String zu kodieren und sie in eine Webseite einzubetten. Korrigieren Sie mich, wenn ich falsch liege. )
-
Der andere Ansatz besteht darin, den Dateiinhalt nicht in die Webseite einzubetten, sondern ihn direkt über TCP-Verbindungen zu übertragen. Dieser Ansatz erfordert keine Base64-Kodierung und dürfte eine bessere Leistung aufweisen. ( Korrigieren Sie mich, wenn ich falsch liege. )
Vielleicht habe ich einen schlechten Titel für die obigen Fragen und Aussagen gewählt.
Ich hoffe, dass der Moderator diese Frage nicht als "off topic" betrachtet.
Vielen Dank!