2010-01-19 10 views
265

Kann mir jemand sagen, was alles hinter den Kulissen passiert, von der Eingabe einer URL im Browser bis zu dem Zeitpunkt, zu dem ich die Seite im Browser sehen kann? Eine detaillierte Darstellung des Prozesses wäre sehr hilfreich.Was passiert, wenn Sie eine URL in den Browser eingeben

+2

Obwohl dies (möglicherweise) Programmierung sein könnte - die Ebene der Details, auf die dies beantwortet werden könnte, würde (und hat) gefüllt Volumen. Bitte wiederholen Sie als Programmieranfrage. – KevinDTimm

+0

Recherchiere DNS auf Wikipedia, um loszulegen. –

+21

Holen Sie O'Reilly * DNS und Bind * Buch. Es sind nur 624 Seiten. –

Antwort

37

Zuerst sucht der Computer den Zielhost. Wenn es im lokalen DNS-Cache vorhanden ist, verwendet es diese Informationen. Andernfalls wird eine DNS-Abfrage durchgeführt, bis die IP-Adresse gefunden wurde.

Dann öffnet Ihr Browser eine TCP-Verbindung zum Ziel-Host und sendet die Anfrage gemäß HTTP 1.1 (oder verwendet HTTP 1.0, aber normale Browser tun es nicht mehr).

Der Server sucht die erforderlichen Ressourcen (falls vorhanden) und reagiert HTTP-Protokoll verwenden, sendet die Daten an den Client (= Browser)

Der Browser verwendet dann HTML-Parser zur Dokumentstruktur neu erstellen die wird Ihnen später auf dem Bildschirm präsentiert. Wenn es Verweise auf externe Ressourcen wie Bilder, CSS-Dateien, Javascript-Dateien findet, werden diese auf die gleiche Weise wie das HTML-Dokument selbst geliefert.

557

Achtung: Dies ist eine extrem rau und Skizze stark vereinfacht, eine möglichst einfache HTTP-Anforderung angenommen (keine HTTPS, keine HTTP2, keine Extras), auf möglichst einfache DNS, keine Proxies, Single-Stack IPv4, nur eine HTTP-Anforderung ein einfacher HTTP-Server am anderen Ende und keine Probleme in irgendeinem Schritt. Dies ist für die meisten gegenwärtigen Absichten und Zwecke ein unrealistisches Szenario; All diese sind im tatsächlichen Gebrauch viel komplexer, und der Tech-Stack ist um eine Größenordnung komplizierter geworden, seit dies geschrieben wurde. In diesem Sinne ist die folgende Zeitleiste noch einigermaßen gültig:

  1. Browser überprüft Cache; wenn angeforderte Objekt im Cache und frisch ist, fahren Sie mit # 9
  2. Browser OS für die IP-Adresse des Servers
  3. OS machen einen DNS-Lookup und antwortet die IP-Adresse an den Browser
  4. Browser öffnet eine TCP-Verbindung zum Server fragt (dieser Schritt ist viel komplexer mit HTTPS)
  5. Browser die HTTP-Anforderung über TCP-Verbindung sendet
  6. Browser HTTP-Antwort empfängt und kann die TCP-Verbindung schließen oder wieder verwendet es für eine andere Anfrage
  7. Browser überprüft, ob die Antwort eine Weiterleitung oder eine bedingte Antwort (3xx Ergebnisstatuscodes), a Uthorization-Anfrage (401), Fehler (4xx und 5xx) usw .; diese werden anders als normale Reaktionen behandelt (2xx)
  8. wenn Cache gespeichert werden, Antwort im Cache gespeichert ist
  9. Browser decodiert Antwort (zB wenn es gzip)
  10. Browser bestimmt, was mit Antwort zu tun (zB ist es eine HTML-Seite ist es ein Bild ist es ein Soundclip)
  11. Browser Antwort macht, oder bietet einen Download-Dialog für nicht erkannte Typen

Auch die Diskussion über jeden dieser Punkte haben unzählige Seiten gefüllt?; nehmen Sie dies nur als Zusammenfassung, um der Klarheit willen verkürzt.Darüber hinaus gibt es viele andere Dinge, die parallel ablaufen (Verarbeitung der eingetippten Adresse, spekulatives Vorabholen, Hinzufügen der Seite zum Browserverlauf, Anzeigen des Fortschritts für den Benutzer, Benachrichtigen von Plugins und Erweiterungen, Rendern der Seite während des Downloads, Pipelining, Verbindungsverfolgung für Keep-Alive, Cookie-Management, Überprüfung auf bösartige Inhalte etc.) - und die ganze Operation wird mit HTTPS (Zertifikate und Verschlüsselungen und Pinning, oh mein!) um eine Größenordnung komplexer.

+2

https://medium.com/@maneesha.wijesinghe1/what-happens-when-you-type-an-url-in-the-browser-and-press-enter-bb0aa2449c1a – Kaushal28

+0

@ Kaushal28 Etwas ähnlich, wie es ist das genau gleiche Thema, ja. Vielleicht inspiriert von diesem Beitrag, aber nicht von Plagiaten, denke ich. – Piskvor

+0

Bearbeitet, um das offensichtliche Missverständnis zu zerstreuen "das passiert, wenn Sie die Eingabetaste drücken, einfach, nein?" – Piskvor

Verwandte Themen