MINT lernen

Textaufgaben: Wie eine Website funktioniert

Eine Seite mit fehlendem Foto und ein Ticketshop unter Volllast.

Dein Fortschritt:
0 / 0 Aufgaben
1

Die Schülerzeitung online

AFB I–II

Die Schülerzeitung hat ihre neue Ausgabe als Webseite veröffentlicht. Beim ersten Aufruf fällt der Redakteurin Aylin auf, dass an einer Stelle statt des Interviewfotos nur ein leerer Rahmen erscheint; der übrige Text und das große Titelbild sind zu sehen.

Aylin öffnet die Entwicklerwerkzeuge ihres Browsers und lässt sich alle Anfragen anzeigen, die beim Laden der Seite gestellt wurden (siehe Abbildung).

Netzwerk-Ansicht der Entwicklerwerkzeuge
DateiTypStatusGrößeindex.htmlHTML20022 KBstil.cssCSS20014 KBmenue.jsJavaScript20048 KBlogo.svgBild2006 KBtitelbild.jpgBild2001 450 KBinterview-foto.jpgBild4041 KB
Vereinfachte Darstellung beim ersten Aufruf der Seite, ohne Cache
  1. Lesen Sie ab, wie viele Anfragen der Browser gestellt hat und welche davon nicht erfolgreich war.
  2. Interpretieren Sie den Statuscode dieser Anfrage im Sachzusammenhang und geben Sie an, wie die Redaktion den Fehler beheben kann.
  3. Werten Sie die Liste im Hinblick darauf aus, womit sich die Ladezeit der Seite am wirksamsten verkürzen ließe.

Hinweise

Hinweis zu Aufgabe a)
Jede Zeile der Liste steht für eine eigene Anfrage an den Server.
Hinweis zu Aufgabe b)
Die erste Ziffer des Statuscodes verrät die Richtung. Überlegen Sie auch, was es bedeutet, dass überhaupt eine Antwort kam.
Hinweis zu Aufgabe c)
Berechnen Sie die gesamte Datenmenge und den Anteil der einzelnen Dateien daran.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Der Browser hat 6 Anfragen gestellt. Nicht erfolgreich war die Anfrage nach interview-foto.jpg mit dem Statuscode 404; alle anderen wurden mit 200 beantwortet.

Erwartungshorizont zu Aufgabe b)

404 bedeutet „nicht gefunden“. Der Server läuft und hat geantwortet — die übrigen Dateien kamen ja an —, aber unter dem angefragten Pfad liegt keine Datei. Ein 4xx-Code weist auf ein Problem mit der Anfrage hin, hier also mit der Adresse des Bildes: Entweder wurde das Foto nicht auf den Server hochgeladen, oder der Dateiname im HTML stimmt nicht mit dem Namen der Datei überein (zum Beispiel ein Tippfehler).

Behebung: Datei hochladen bzw. den Dateinamen im HTML oder auf dem Server korrigieren.

Erwartungshorizont zu Aufgabe c)

Gesamt: \(22 + 14 + 48 + 6 + 1\,450 + 1 = 1\,541\text{ KB}\).

Das Titelbild hat einen Anteil von \(\frac{1\,450}{1\,541} \approx 94\,\%\); alle Text-, Stil- und Skriptdateien zusammen machen nur rund 5 % aus.

Ergebnis: Am wirksamsten ist es, das Titelbild zu verkleinern bzw. stärker zu komprimieren. Den Text oder die CSS-Datei zu kürzen brächte kaum etwas. Bei späteren Aufrufen hilft zusätzlich der Cache, weil Logo, CSS und JavaScript dann nicht erneut geladen werden müssen.

2

Ansturm auf den Ticketshop

AFB II–III

Um Punkt 10:00 Uhr beginnt der Vorverkauf für die Tour einer bekannten Band. Nach Angaben des Betreibers öffnen innerhalb der ersten Minute rund 200 000 Menschen die Verkaufsseite. Für jeden Aufruf stellt der Browser etwa 60 Anfragen: HTML, mehrere CSS- und JavaScript-Dateien, Schriften und viele Bilder.

Die Server des Betreibers können zusammen höchstens 50 000 Anfragen pro Sekunde beantworten. Was darüber hinausgeht, wird mit dem Statuscode 503 abgewiesen. Viele Fans sehen deshalb nur eine Fehlerseite und laden sie immer wieder neu. Der Betreiber erklärt anschließend, es seien „im Schnitt rund 200 000 Anfragen pro Sekunde“ eingegangen.

  1. Erläutern Sie anhand des Client-Server-Prinzips, warum die gesamte Last in diesem Moment beim Server entsteht.
  2. Bestätigen Sie die Angabe des Betreibers durch eine Rechnung und geben Sie an, um welchen Faktor die Kapazität der Server überschritten wurde.
  3. Entwickeln Sie mindestens drei Maßnahmen, mit denen der Betreiber die Last beim nächsten Verkaufsstart senken kann, und begründen Sie jeweils deren Wirkung.

Hinweise

Hinweis zu Aufgabe a)
Wer beginnt bei HTTP die Kommunikation, und wie viele Anfragen verursacht ein einziger Seitenaufruf?
Hinweis zu Aufgabe b)
Rechnen Sie zuerst die Anfragen der ersten Minute aus und teilen Sie dann durch die Anzahl der Sekunden.
Hinweis zu Aufgabe c)
Überlegen Sie, an welchen Stellen Anfragen entstehen: Lassen sich Dateien einsparen, woanders ausliefern oder zeitlich verteilen? Denken Sie auch an den Cache und an das CDN aus Kapitel 3.1.2.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Beim Client-Server-Prinzip beginnt immer der Client: Jeder Browser stellt eigene Anfragen, und der Server beantwortet jede einzeln. Weil eine Seite nicht aus einer Datei besteht, sondern der Browser nach dem HTML jede weitere Datei gesondert anfordert, erzeugt ein einziger Aufruf rund 60 Anfragen.

Da alle Fans genau um 10:00 Uhr gleichzeitig aufrufen, treffen alle diese Anfragen im selben Moment beim Server ein. Die Clients selbst haben kaum Arbeit; die gesamte Last trägt der Server. Erneutes Neuladen verschärft das Problem, weil jeder Versuch neue Anfragen erzeugt.

Erwartungshorizont zu Aufgabe b)

\(200\,000 \cdot 60 = 12\,000\,000\) Anfragen in der ersten Minute.

\(12\,000\,000 : 60\text{ s} = 200\,000\) Anfragen pro Sekunde — die Angabe des Betreibers stimmt.

\(200\,000 : 50\,000 = 4\): Die Kapazität wurde um das Vierfache überschritten.

Erwartungshorizont zu Aufgabe c)

Mögliche Maßnahmen, jeweils mit Begründung:

  • Unveränderliche Dateien über ein CDN ausliefern: Bilder, Schriften, CSS und JavaScript kommen dann aus Rechenzentren nahe bei den Nutzern; beim eigenen Server kommen nur noch die eigentlichen Ticketanfragen an.
  • Dateien verkleinern und zusammenfassen: weniger und kleinere Dateien bedeuten weniger Anfragen pro Aufruf und kürzere Übertragungszeiten.
  • Cache nutzen: Wer die Seite vorab schon einmal geöffnet hat, hat Logo, CSS und Skripte bereits im Cache und stellt beim Verkaufsstart weniger Anfragen.
  • Virtueller Warteraum: Besucher werden in eine Warteschlange gestellt und nacheinander eingelassen; die Anfragen verteilen sich über einen längeren Zeitraum.
  • Verkauf zeitlich staffeln oder Serverkapazität erhöhen: verteilt die Last bzw. hebt die Grenze von 50 000 Anfragen pro Sekunde an.

Vollständig ist die Antwort, wenn mindestens drei sinnvolle Maßnahmen genannt werden und bei jeder erklärt wird, wie sie die Zahl der gleichzeitigen Anfragen beim Server senkt.