Eine großartige technische Erklärung finden Sie in diesem Buch: Computer-Netzwerk: Ein Top-Down-Ansatz 6. Auflage (Link: Buch ). (Seiten 495-500) Sie gehen auf eine beträchtliche Menge an Details ein; Beginnend damit, was passiert, wenn der Computer eingeschaltet ist, bis eine Website im Browser des Benutzers angezeigt wird. In diesem Foliensatz können Sie einen Vorgeschmack auf das bekommen, was im Buch erwähnt wird. (Link: Folien 88 bis 95)
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!"
Das macht mein PC also nach Einbruch der Dunkelheit.
Phoshi
7
Großartige Erklärung ... Hut ab ... Bingo ...
Rachel
7
Wunderbares Stück Geschichtenerzählen :)
Michael Borgwardt
5
@dex: ... und bis zum heutigen Tag sind sie immer noch stark und sortieren alle skurrilen Anfragen des Benutzers mit einer Sorgfalt, die es verdient, in den Büchern der Geschichte gelobt zu werden. Aber wie alle Dinge wird es eines Tages ihre Zeit sein, sich in die Veralterung zurückzuziehen und den Weg zu moderneren Ansätzen zu ebnen, die für modernere Zeiten geeignet sind. Aber seien Sie versichert, dass sie in unserem Erbe immer dabei sein werden, mit einem wissenden Lächeln zusehen und den zukünftigen Generationen all die harten Lektionen weitergeben, die sie in diesen pulsierenden Zeiten aufkommender Internetkommunikation gelernt haben.
Ilari Kajaste
3
Hurra für die Neinsager, richtig, @wahnfrieden? Ich halte es für ziemlich genau und informativ.
Der Browser teilt Ihre Eingabe (die URL) in einen Hostnamen und einen Pfad auf.
Der Browser bildet eine HTTP-Anfrage, um die Daten unter dem angegebenen Hostnamen und Pfad abzufragen.
Der Browser führt eine DNS-Suche durch, um den Hostnamen in eine IP-Adresse aufzulösen.
Der Browser stellt eine TCP / IP-Verbindung zu dem über die IP-Adresse angegebenen Computer her. (Diese Verbindung besteht eigentlich aus mehreren Computern, von denen jeder die Daten an den nächsten weitergibt.)
Der Browser sendet die HTTP-Anfrage über die Verbindung an die angegebene IP-Adresse.
Dieser Computer empfängt die HTTP-Anforderung von der TCP / IP-Verbindung und leitet sie an das Webserverprogramm weiter.
Der Webserver liest den Hostnamen und den Pfad und findet oder generiert die Daten, nach denen Sie gefragt haben.
Der Webserver generiert eine HTTP-Antwort, die diese Daten enthält.
Der Webserver sendet diese HTTP-Antwort über die TCP / IP-Verbindung an Ihren Computer.
Der Browser empfängt die HTTP-Antwort und teilt sie in Header (die Daten beschreiben) und Body (die Daten selbst) auf.
Der Browser interpretiert die Daten, um zu entscheiden, wie sie im Browser angezeigt werden sollen. In der Regel handelt es sich dabei um HTML-Daten, die die Informationstypen und ihre allgemeine Form angeben.
Einige der Daten sind Metadaten, die weitere Ressourcen angeben, die geladen werden müssen, z. B. Stylesheets für detailliertes Layout oder Inline-Bilder oder Flash-Filme. Diese Metadaten werden erneut als URL angegeben und dieser gesamte Vorgang wird für jede einzelne wiederholt, bis alle geladen sind.
Dies ist gut, aber es kann erwähnenswert sein, Caching (im Browser und anderswo), Proxys, Load Balancing, CDNs usw. zu erwähnen. Ich denke, dies alles ist ein entscheidender Faktor, um zu verstehen, wie (auf der Erde) geschäftige Websites mit Millionen von nahezu gleichzeitigen Anfragen nach riesigen Mengen an Inhalten umgehen.
Sam Dutton
12
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.
Der Typ kennt die Grundlagen nicht und Sie haben ihn nur mit DNS, DHCP und IP umgehauen. Erklären wir ihm die IP-Paketstruktur!
6
Er bat um technische Details. Er kann IP nachschlagen, wenn er will.
Die Sache ist, dass er wahrscheinlich nichts nachschlagen will ... :(
8
Was auf der CNN-Seite passiert, ist, dass die anderen Antworten so weit fehlen:
Ein Computer bei CNN empfängt die Nachricht von Ihrem Computer und fragt nach der Seite.
Diese Anforderung wird an einen der vielen Computer weitergeleitet, die CNN für seine Website verwendet (der Grund dafür ist, dass Sie auf diese Weise die Arbeit beim Zusammenstellen der Antwortwebseiten auf viele Computer verteilen können).
Der CNN-Computer erhält Ihre Anfrage und antwortet mit einer Webseite, die wahrscheinlich fast vollständig vorberechnet ist. Möglicherweise ändert sie jedoch einige Dinge, bevor sie an Sie gesendet wird (möglicherweise die Anzeige oben, möglicherweise die Schlagzeile). Manchmal stellen Computer die Seite jedes Mal, wenn sie eine Anfrage erhalten, aus vielen kleinen Komponenten zusammen. Ich bin mir nicht sicher, was CNN macht
Die Antwort gelangt über das Netzwerk zu Ihrem Computer, der sie dann anzeigt.
Die Antwort enthielt keine Bilder: Ihr Computer sendet dann eine weitere Anforderung für die Bilder, und so ziemlich das gleiche Szenario passiert.
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.
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.
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!"
quelle
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
quelle
quelle
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.
quelle
Was auf der CNN-Seite passiert, ist, dass die anderen Antworten so weit fehlen:
quelle
Dies ist offensichtlich keine technische Erklärung, aber es ist eine nette visuelle Hilfe (von Vladstudio.com ), die für einige hilfreich sein kann:
quelle
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.
quelle
Jeff Moser hatte eine hervorragende technische Analyse einer HTTPS-Anfrage in seinem Blog: Die ersten Millisekunden einer HTTPS-Verbindung .
quelle
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.
quelle