Was passiert hinter den Kulissen, wenn wir www.cnn.com in einen Browser eingeben und wie werden Informationen auf dem Bildschirm angezeigt?
Eine technische Erklärung wäre sehr dankbar.
Was passiert hinter den Kulissen, wenn wir www.cnn.com in einen Browser eingeben und wie werden Informationen auf dem Bildschirm angezeigt?
Eine technische Erklärung wäre sehr dankbar.
Antworten:
Browser: "Ok, ich habe einen Benutzer, der diese Adresse anfordert: www.cnn.com. Da es keine Schrägstriche oder ähnliches gibt, handelt es sich um eine direkte Anforderung einer Hauptseite. Es wurde auch kein Protokoll oder Port definiert. Ich gehe also davon aus, dass es HTTP ist und auf Port 80 geht ... na ja, das Wichtigste zuerst. Hey, DNS, Kumpel, wach auf!
DNS: "Richtig ... warte eine Sekunde, ich werde die ISP-Server fragen. Ok, es sieht aus wie 157.166.226.25."
Browser: "Ok. Internet Protocol Suite, Sie sind dran! Rufen Sie bitte 157.166.226.25 an. Senden Sie ihnen diesen HTTP-Header. Er fragt nach der grundlegenden Struktur und dem Inhalt ihrer Hauptseite, damit ich weiß, was ich sonst noch holen soll ... na ja, nicht, dass dir das etwas ausmacht, denke ich. "
TCP / IP: "Was meinst du damit, dass ich an der Reihe bin? Als ob ich nicht gerade für den DNS gearbeitet hätte? Gott, was braucht es, um hier ein bisschen Anerkennung zu finden ..."
Browser: ...
TCP / IP: "Ja, ja ... Verbinden ... Ich werde das Gateway nur bitten, es weiterzuleiten. Weißt du, es ist nicht so einfach, ich muss deine hübsche Anfrage dort in mehrere Teile aufteilen es ist also zu Ende und sammelt alles, was sie von all den Tausenden Paketen zurückschicken, die ich bekomme ... ah, das ist dir egal.
Währenddessen landet im CNN-Hauptquartier eine Nachricht an der Tür des Webservers.
CNN Web Server: "Nzhôô! Ein Kunde! Er möchte Neuigkeiten! Die Startseite! Wie wäre es damit?"
CNN Server Side Script Engine: "Richtig, geht! Startseite, richtig?"
CNN Database Server: "Yey! Arbeite für mich! Welche Inhalte brauchst du?"
CNN Server Side Script Engine: "... ähm, entschuldige, DB, ich habe eine Kopie der Titelseite hier in meinem Cache, ich muss nichts kompilieren. Aber hey, nimm diese Benutzer-ID und speichere sie, ich werde sie senden auch an den Kunden, damit wir später wissen, mit wem wir sprechen. "
CNN-Datenbankserver: "Yey!"
Zurück am Computer des Benutzers ...
TCP / IP: "Ooookay, hier kommt die Antwort. Oh Junge, warum habe ich das Gefühl, dass dies eine große sein wird ..."
Browser: "Äh, wow ... das hat alle Arten von Javascript-Code ... ein paar Bilder, ein paar Formulare ... Richtig, es wird eine Weile dauern, bis das gerendert ist. Besser, Sie kommen dran. Hey, IP-System, Sie müssen noch ein paar Dinge besorgen. Schauen wir uns an, ich benötige ein paar Stylesheets von i.cdn.turner.com - über HTTP, und fordern Sie die Datei /cnn/.element/css/2.0/common.css an Dann besorgen Sie sich einige dieser Skripte auch bei i.cdn.turner.com. Ich zähle bis jetzt sechs ... "
TCP / IP: "Ich bekomme das Bild. Geben Sie mir einfach die Serveradressen und all das. Und binden Sie diese Daten in die HTTP-Anforderung ein, damit möchte ich mich nicht befassen."
DNS: "Überprüfen Sie die i.cdn.turner.com ... hey, ein bisschen Trivia, es heißt tatsächlich cdn.cnn.com.c.footprint.net. IP ist 4.23.41.126"
Browser: "Sicher, sicher ... warte eine Sekunde, die Bearbeitung dauert ein paar Sekunden, ich versuche das ganze Skript zu verstehen ..."
TCP / IP: "Hey, hier ist das CSS, nach dem Sie gefragt haben. Oh, und ... ja, diese zusätzlichen Skripte sind auch gerade zurückgekommen."
Browser: "Puh, es gibt noch mehr ... eine Art Videoanzeige!"
TCP / IP: "Oh Mann, wie lustig das klingt ..."
Browser: "Es gibt auch alle Arten von Bildern! Und dieses CSS sieht ein bisschen böse aus ... richtig, wenn dieser Teil dorthin geht und diese Zeile oben hat ... wie um alles in der Welt würde das noch passen ... nein , Ich muss das ein bisschen dehnen, um es zu machen ... Oh, aber diese andere CSS-Datei überschreibt diese Regel ... Nun, diese wird nicht einfach zu rendern sein, das ist sicher! "
TCP / IP: "Ok, ok, hör für eine Sekunde auf mich abzulenken, hier gibt es noch viel zu tun."
Browser: "Benutzer, hier ist ein kleiner Fortschrittsbericht für Sie. Tut mir leid, das kann einige Sekunden dauern, es sind ungefähr 140 verschiedene Elemente zu laden, und bis jetzt sind es 16."
Ein oder zwei Sekunden später ...
TCP / IP: "Okay, das sollte alles sein. Hey, hör zu ... Entschuldigung, ich habe dich früher angeschnappt, du schaffst das schon? Das scheint auch für dich eine ziemliche Belastung zu sein."
Browser: "Puh, ja, all diese Websites machen es dir heutzutage sicher nicht leicht. Nun, ich schaffe es. Dafür bin ich hier."
TCP / IP: "Ich denke, es ist ziemlich schwer für uns alle in diesen Tagen ... oh, hör auf, dich über DNS zu freuen!"
Browser: "Hey User! Die Website ist fertig - hol dir deine News!"
Wie das Web funktioniert: HTTP und CGI erklärt
Auch eine großartige Erklärung von CERN - alma mater of Web: Wie das Web funktioniert
Der erste Schritt ist die DNS-Suche (Domain Name Server). Es verwendet die DNS-Server, die in Ihren Netzwerkeinstellungen angegeben sind (oder Ihnen von DHCP zur Verfügung gestellt wurden), um die Top-Domain (cnn.com) abzurufen und fragt dann den Nameserver dieser Domain nach der IP-Adresse der angegebenen Subdomain (www.cnn.com).
Nachdem die IP-Adresse angegeben wurde, beginnt Ihr Browser mit der Kommunikation mit dem Webserver. Dies erfolgt mit dem angegebenen Protokoll (normalerweise standardmäßig HTTP 1.1). Eine 'GET'-Anforderung für' / 'wird an den Server gesendet, der mit dem Inhalt des HTML-Dokuments und den entsprechenden Kopfzeilen antwortet (die dem Browser den Inhaltstyp, HTML und andere Informationen des Dokuments mitteilen). Anschließend analysiert der Browser das Dokument und findet alle URLs, die in die Seite eingebettet werden müssen (wie Bilder oder verknüpfte Stylesheets), und führt GET-Anforderungen für jede dieser URLs aus.
Der Browser sendet normalerweise auch automatisch eine GET-Anfrage für '/favicon.ico' (um das kleine CNN-Symbol neben dem Site-Titel anzuzeigen).
Ihr Browser wird wahrscheinlich auch in seinen Anforderungsköpfen angeben, dass der Antwortinhalt mithilfe des gzip-Algorithmus komprimiert werden soll. Dadurch wird der Dateidownload viel kleiner, wenn der Server dies unterstützt. Dies ist alles für Sie transparent, auch wenn Sie eine ZIP-Datei herunterladen und entpacken müssen.
Wenn Sie die Seite neu laden, überprüft Ihr Browser, ob diese Seite bereits in Ihrem System zwischengespeichert ist. In diesem Fall wird eine HTTP-Anforderung nur für den Header des Dokuments ausgeführt und das Änderungsdatum überprüft. Wenn dieses Datum nach seiner zwischengespeicherten Kopie liegt, fordert es den gesamten Dokumentinhalt erneut an und aktualisiert die Seite. Andernfalls wird nur Ihre lokale Kopie verwendet.
Was auf der CNN-Seite passiert, ist, dass die anderen Antworten so weit fehlen:
Dies ist offensichtlich keine technische Erklärung, aber es ist eine nette visuelle Hilfe (von Vladstudio.com ), die für einige hilfreich sein kann:
Die Informationen, die Sie gerade gefragt haben, könnten ein paar Dutzend Bücher füllen. Aber hier ist mein Versuch, es zu erklären: Ihr Browser teilt Ihrem Betriebssystem mit, dass es die IP-Adresse von cnn.com ermitteln soll. Dann fragt Ihr Betriebssystem einen DNS-Server nach der IP-Adresse für cnn.com. Die IP wird an den Browser gesendet, der die IP-Adresse kontaktiert und die Seite anfordert. cnn.com sendet Ihnen dann eine HTML-Seite. Der Browser analysiert den HTML-Code und sendet die Informationen an den HTML-Renderer. Der Browser teilt dem Betriebssystem dann mit, was auf dem Bildschirm angezeigt werden soll.
Jeff Moser hatte eine hervorragende technische Analyse einer HTTPS-Anfrage in seinem Blog: Die ersten Millisekunden einer HTTPS-Verbindung .
Es gibt ein wirklich cooles Video von der "Sendung mit der Maus" (eine sehr beliebte deutsche Kinderfernsehshow, die Technik für Kinder erklärt):
Die Sendung mit der Maus - Wie funktioniert das Internet .
Leider nur auf Deutsch, aber lustig auch ohne Text. Männer mit lustigen Helmen spielen die IP-Pakete ab und die Daten werden auf Papierkarten geschrieben. Klassisch :-).
Übrigens sind die Erklärungen eigentlich ziemlich gut.