it-swarm.com.de

Was passiert, wenn Sie eine URL im Browser eingeben?

Kann mir jemand sagen, was alles hinter den Kulissen passiert, von der Eingabe einer URL im Browser bis zur Anzeige der Seite im Browser? Eine detaillierte Darstellung des Prozesses wäre eine große Hilfe.

286
Aadith

Achtung: Dies ist eine extrem grobe und stark vereinfachte Skizze unter der Annahme einer möglichst einfachen HTTP-Anfrage (kein HTTPS, kein HTTP2, keine Extras), möglichst einfaches DNS. Keine Proxys, Single-Stack-IPv4, nur eine HTTP-Anforderung, ein einfacher HTTP-Server am anderen Ende und in keinem Schritt Probleme. Dies ist für die meisten zeitgenössischen Absichten und Zwecke ein unrealistisches Szenario. All dies ist im tatsächlichen Gebrauch weitaus komplexer, und der Tech-Stack ist um eine Größenordnung komplizierter geworden, seit dies geschrieben wurde. In diesem Sinne ist der folgende Zeitplan noch einigermaßen gültig:

  1. browser überprüft Cache; Wenn sich das angeforderte Objekt im Cache befindet und frisch ist, fahren Sie mit Schritt 9 fort
  2. der Browser fragt das Betriebssystem nach der IP-Adresse des Servers
  3. Das Betriebssystem führt eine DNS-Suche durch und antwortet dem Browser mit der IP-Adresse
  4. browser öffnet eine TCP Verbindung zum Server (dieser Schritt ist bei HTTPS sehr viel komplexer)
  5. der Browser sendet die HTTP-Anfrage über die TCP Verbindung
  6. der Browser empfängt eine HTTP-Antwort und kann die TCP Verbindung schließen oder für eine andere Anforderung wiederverwenden
  7. der Browser prüft, ob es sich bei der Antwort um eine Weiterleitung oder eine bedingte Antwort (3xx Ergebnisstatuscodes), eine Autorisierungsanforderung (401), einen Fehler (4xx und 5xx) usw. handelt. diese werden anders gehandhabt als normale Antworten (2xx)
  8. wenn zwischengespeichert werden kann, wird die Antwort im Cache gespeichert
  9. der Browser dekodiert die Antwort (z. B. wenn sie gezippt ist)
  10. der Browser legt fest, was mit der Antwort zu tun ist (z. B. handelt es sich um eine HTML-Seite, ein Bild oder einen Soundclip?)
  11. der Browser gibt die Antwort wieder oder bietet einen Download-Dialog für nicht erkannte Typen an

Die Diskussion über jeden dieser Punkte hat wieder unzählige Seiten gefüllt; Nehmen Sie dies nur als Zusammenfassung, der Übersichtlichkeit halber gekürzt. Parallel dazu geschehen noch viele andere Dinge (Verarbeitung der eingegebenen Adresse, spekulatives Prefetching, Hinzufügen einer Seite zum Browserverlauf, Anzeige des Fortschritts für den Benutzer, Benachrichtigung über Plugins und Erweiterungen, Rendern der Seite während des Herunterladens, Pipelining, Verbindungsverfolgung für Keep-Alive, Cookie-Verwaltung, Überprüfung auf schädliche Inhalte usw.) - und der gesamte Vorgang wird mit HTTPS um eine Größenordnung komplexer (Zertifikate und Chiffren und Pinning, oh my!).

579
Piskvor

Zuerst sucht der Computer den Zielhost. Wenn es im lokalen DNS-Cache vorhanden ist, werden diese Informationen verwendet. Andernfalls wird die DNS-Abfrage ausgefü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 möglicherweise HTTP 1.0, aber normale Browser tun dies nicht mehr).

Der Server sucht nach der erforderlichen Ressource (falls vorhanden) und antwortet mit dem HTTP-Protokoll. Er sendet die Daten an den Client (= Ihren Browser).

Der Browser verwendet dann HTML-Parser, um die Dokumentstruktur neu zu erstellen, die Ihnen später auf dem Bildschirm angezeigt wird. Wenn Verweise auf externe Ressourcen wie Bilder, CSS-Dateien oder Javascript-Dateien gefunden werden, werden diese auf dieselbe Weise wie das HTML-Dokument selbst bereitgestellt.

40
naivists

Schlagen Sie die Spezifikation von HTTP nach. Oder versuchen Sie es zunächst mit http://www.jmarshall.com/easy/http/

3
John