Heim  >  Artikel  >  Web-Frontend  >  Eine Einführung in den spezifischen Prozess der Eingabe einer URL in einen Browser und der Initiierung einer http-Anfrage.

Eine Einführung in den spezifischen Prozess der Eingabe einer URL in einen Browser und der Initiierung einer http-Anfrage.

不言
不言nach vorne
2018-11-20 15:12:292884Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in den spezifischen Prozess der Eingabe einer URL in den Browser und des Initiierens einer HTTP-Anfrage. Ich hoffe, dass er für Freunde in Not hilfreich ist Du.

Der Benutzer gibt die URL ein

Wenn der Benutzer die URL eingibt, übergibt das Betriebssystem das Eingabeereignis an den Browser Der Browser führt möglicherweise eine Vorverarbeitung durch. Beispielsweise schätzt Chrome anhand historischer Statistiken, welche Website dem eingegebenen Zeichen entspricht. Wenn Sie beispielsweise goog eingeben, wird festgestellt, dass eine Wahrscheinlichkeit von 90 % besteht, dass Sie „www.google“ besuchen. com“ basierend auf dem vorherigen Verlauf, sodass es nach der Eingabe zurückgegeben wird. Die TCP-Verbindung und sogar das Rendern begannen unmittelbar vor dem Auto.

Dann geben Sie die URL ein und klicken Sie auf Enter. Zu diesem Zeitpunkt prüft der Browser zunächst das Protokoll. Außerdem wird die URL verarbeitet auf Sicherheit überprüft werden

Nachdem die Sicherheitsüberprüfung abgeschlossen ist, überprüft der Browserkernel zunächst den Cache, legt dann UA und andere HTTP-Informationen fest und ruft dann die Netzwerkanforderungsmethode auf verschiedenen Plattformen auf.

Hinweis:
Browser und Browserkernel sind unterschiedliche Konzepte. Browser bezieht sich auf Chrome und Firefox, während sich Browserkernel auf Blink und Gecko bezieht. Browserkernel Es ist nur für das Rendern verantwortlich. Plattformübergreifende Arbeiten wie GUI und Netzwerkverbindung werden vom Browser implementiert

http-Netzwerkanforderung

IP über DNS abfragen;
Daten über Socket senden

DNS-Abfrage ip

DNS, Domain Name System auf Englisch und Domain Name System auf Chinesisch, ist ein Dienst des Internets. Es handelt sich um eine verteilte Datenbank, die Domainnamen und IP-Adressen einander zuordnet

Annahme Der Benutzer gibt www.google.com in den Browser ein. Der ungefähre Vorgang ist:

Wenn es sich bei der Eingabe um einen Domänennamen handelt, ist eine DNS-Abfrage erforderlich, um den Domänennamen in eine IP aufzulösen > Führen Sie eine DNS-Abfrage durch. Der Host oder die Software wird als DNS-Resolver bezeichnet, und die vom Benutzer verwendete Workstation oder der Computer ist ein Resolver. Bei der Domänennamenauflösung wird ein DNS-Resolver verwendet, um die entsprechende IP zu erhalten. Der Resolver fragt den Domänennamenserver zur Verarbeitung ab.

Der Hauptvorgang ist wie folgt:

    Suchen Sie die IP-Adresse des Domainnamens www.google.com aus dem Browser-Cache
  1. Wenn es nicht im Browser-Cache gefunden wird, durchsuchen Sie es im Betriebssystem-Cache. In diesem Schritt durchsuchen Sie auch die lokalen Hosts, um zu sehen, ob eine entsprechende Domänennamenzuordnung vorhanden ist (natürlich wurde sie zwischengespeichert). im System-DNS-Cache)
  2. Wenn es nicht im System gefunden wird, gehen Sie zu Ihrem Router, um es zu finden, da der Router normalerweise über einen eigenen DNS-Cache verfügt
  3. Wenn keines der oben genannten gefunden wird, fahren Sie mit der Abfrage des DNS-Domänennamenservers fort

    Der Resolver des Computers des Benutzers initiiert eine Anforderung zur Auflösung des Domänennamens an LDNS ( d. h. lokales DNS, Internetdienstanbieter (ISP) und fragt die IP-Adresse von www.google.com ab. Dies ist ein rekursiver Suchvorgang.
  • Wenn der Cache nicht erreicht wird, fragt LDNS das Stammverzeichnis ab Domain Name Server für die IP-Adresse von www.google.com, LDNS-Abfrage Der Prozess ist ein iterativer Abfrageprozess
  • Der Root teilt LDNS mit, dass ich die IP, die www entspricht, nicht kenne .google.com, aber ich weiß, dass Sie den Autorisierungsserver der com-Domäne fragen können. Diese Domain gehört zu Er verwaltet
  • LDNS fragt den com-Autorisierungsserver nach der IP-Adresse, die www entspricht .google.com
  • com teilt LDNS mit, dass ich die entsprechende IP von www.google.com nicht kenne, aber ich weiß, dass Sie den Autorisierungsserver der google.com-Domain fragen können Die Domain wird von ihm verwaltet
  • LDNS fragt den Autorisierungsserver von google.com www. Die IP-Adresse, die google.com entspricht
  • google. com fragt seine eigene ZONE-Datei (auch Zonendatei-Datensatz genannt) ab, findet die IP-Adresse, die www.google.com entspricht, und gibt sie an LDNS zurück
  • LDNS speichert einen Datensatz lokal zwischen und gibt ihn zurück das Ergebnis an den Parser des Computers des Benutzers
  • Danach erhält der Parser des Computers des Benutzers. Nachdem das Ergebnis erhalten wurde, wird es im DNS-Cache Ihres eigenen Betriebssystems zwischengespeichert und an den Browser zurückgegeben. Der Browser speichert es weiterhin für einen bestimmten Zeitraum zwischen.
Hinweis

, Die Domänennamenabfrage kann über den CDN-Planer erfolgen (sofern eine CDN-Speicherfunktion vorhanden ist)
Und , Sie müssen wissen, dass die DNS-Auflösung sehr zeitaufwändig ist. Wenn Sie also zu viele Domänennamen auflösen, wird das Laden des ersten Bildschirms zu langsam sein. Sie können eine DNS-Prefetch-Optimierung

TCP/IP-Anfrage

Mit der IP-Adresse können Daten über die Socket-API gesendet werden. Zu diesem Zeitpunkt kann das TCP- oder UDP-Protokoll ausgewählt werden.

http ist im Wesentlichen ein TCP-Protokoll.

TCP ist ein verbindungsorientiertes Transportschichtprotokoll. Dadurch kann sichergestellt werden, dass die Kommunikation zwischen den Kommunikationshosts an beiden Enden (sendendes und empfangendes Ende) erreichbar ist. Es kann ungewöhnliche Situationen wie Paketverluste während der Übertragung und eine gestörte Übertragungsreihenfolge bewältigen. Darüber hinaus kann es Breitband effektiv nutzen, um Netzwerküberlastungen zu lindern.

Der Aufbau einer TCP-Verbindung erfordert zu Beginn drei Handshakes:

Der erste Handshake fordert den Aufbau einer Verbindung an, und der Absender sendet eine Verbindungsanforderungsnachricht

Der zweite Handshake, die empfangende Seite empfängt Aus der vom Sender gesendeten Nachricht ist ersichtlich, dass der Sender nun eine Verbindung aufbauen möchte. Dann sendet die empfangende Seite eine Nachricht an die sendende Seite

für den dritten Handshake. Nachdem die sendende Seite die gesendete Nachricht erhalten hat, muss sie prüfen, ob der zurückgegebene Inhalt korrekt ist Ende wird es erneut tun Senden Sie ein Bestätigungspaket

Nachdem die TCP-Verbindung hergestellt wurde, kann die HTTP-Anfrage gesendet werden.

Hinweis
Browser haben eine Begrenzung der Anzahl von Verbindungen für denselben Domänennamen, die meisten davon sind 6. In http1.0 muss ein Ressourcen-Download oft einem TCP/IP entsprechen. IP-Anfrage und wie HTTP 2.0 Obwohl das Protokoll nur eine TCP-Verbindung zum Übertragen von Daten verwendet, ist seine Leistung besser und es kann auch Anforderungspriorität implementieren.

Das obige ist der detaillierte Inhalt vonEine Einführung in den spezifischen Prozess der Eingabe einer URL in einen Browser und der Initiierung einer http-Anfrage.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen