Zum Inhalt springen

Von der Webseite zur Webanwendung

IT 12.6 – Webanwendungen · Einheit 1 · Café-App Schritt 1

  • Du kannst die Aufgaben von HTML, CSS und JavaScript in einer Webanwendung beschreiben.
  • Du kannst statische und dynamische Webseiten unterscheiden und die Schritte eines Seitenaufrufs für beide darstellen.
  • Du kannst Aufgaben begründet der Client- oder der Serverseite zuordnen.
  • Du kannst die Aufgaben eines Webservers nennen.
1. Was ist ein Client, was ist ein Server?

Ein Client (zum Beispiel der Browser) fragt nach etwas. Ein Server (zum Beispiel ein Webserver) bietet einen Dienst an und antwortet.

2. Warum trennt man Inhalt (HTML) und Design (CSS)?

Damit man das Aussehen an einer Stelle für alle Seiten ändern kann, der Code übersichtlich bleibt und die Seite sich an verschiedene Geräte anpassen lässt.

3. Was passiert, wenn du in einem Formular auf „Abschicken“ drückst, aber niemand die Daten auswertet?

Der Browser schickt die Eingaben an die angegebene Adresse (ohne Angabe an dieselbe Seite). Dort lädt nur dieselbe Seite neu, und die Eingaben gehen verloren.

Die Seite des Schülercafés „Pause“ ist fertig gestaltet. Aber das Team ist unzufrieden:

  • „Jeden Morgen muss jemand im HTML ändern, ob heute geöffnet ist.“
  • „Wenn ein Produkt ausverkauft ist, steht es trotzdem auf der Speisekarte.“
  • „Das Bestellformular schickt die Daten ab, aber bei uns kommt nichts an.“
  • „Man sieht nicht, was die Bestellung insgesamt kostet.“

Die Seite soll zu einer Webanwendung werden, die rechnet, reagiert und Daten verarbeitet. Aber wo passiert das: im Browser oder auf dem Server?

Bevor du weiterliest: Bearbeite die Erkundungen. Die Erklärungen weiter unten helfen dir erst danach.

Erkundung 1: Dreimal „Heute ist …“ mittel

Das Café möchte auf der Startseite den heutigen Wochentag zeigen. Drei Mitglieder des Teams haben es auf verschiedene Arten gelöst.

Fassung A (Datei index.html auf dem Webserver):

<p>Heute ist <strong>Montag</strong>.</p>

Fassung B (Datei index.html mit JavaScript). Probiere sie aus:

Übungsbereich im Browser: Dein Code läuft abgeschottet in der Vorschau. Es wird nichts gespeichert. Sichere deine Arbeit mit „Herunterladen“.

Tab rückt ein. Mit Esc und dann Tab verlässt du das Feld.

Vorschau

Fassung C (Datei index.php auf dem Webserver, in der Sprache PHP):

<?php
$tage = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];
$heute = $tage[date('w')];
?>
<p>Heute ist <strong><?php echo $heute; ?></strong>.</p>

Bei Fassung C zeigt der Browser mit Strg + U (Quelltext) am Montag und am Dienstag Folgendes:

<p>Heute ist <strong>Montag</strong>.</p>
<p>Heute ist <strong>Dienstag</strong>.</p>

a) Gib an, welche Fassungen auch morgen noch den richtigen Tag zeigen.

b) Vergleiche bei Fassung B und C: Was bekommt der Browser vom Webserver geschickt? Wo, also auf welchem Rechner, wird der Wochentag jeweils bestimmt?

c) Stell dir vor, die Uhr eines Handys ist falsch eingestellt. Beschreibe, welche Fassung dann einen falschen Tag zeigt.

Tipp 1

Zu b): Bei Fassung B steht im Quelltext (Strg + U) genau der JavaScript-Code. Bei Fassung C steht dort kein PHP mehr. Was folgt daraus?

Lösung

Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

Erkundung 2: Browser oder Server? mittel

Für die Café-App sind diese Aufgaben geplant:

  1. Beim Tippen in das Feld „Klasse“ sofort einen Hinweis zeigen, wenn die Eingabe zu lang ist.
  2. Alle Bestellungen eines Tages für das Café-Team sammeln.
  3. Den Gesamtpreis im Warenkorb anzeigen, sobald man ein Produkt hinzufügt.
  4. Prüfen, ob das Passwort des Café-Teams stimmt.
  5. Die Speisekarte mit dem aktuellen Angebot ausliefern, das das Team am Morgen eingetragen hat.
  6. Ein Bild vergrößern, wenn man darauf tippt.

a) Ordne jede Aufgabe zu: im Browser (clientseitig), auf dem Server (serverseitig) oder beides.

b) Begründe deine Zuordnung bei Aufgabe 4 besonders genau.

Tipp 1

Zwei Leitfragen: Müssen die Daten für andere (das Team, andere Geräte) verfügbar sein? Und: Darf die Besucherin oder der Besucher den Code sehen und verändern können?

Lösung

Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

Vergleicht eure Ergebnisse. Eine Webseite zeigt Informationen an. Eine Webanwendung (Web-App) ist ein Programm, das im Browser bedient wird: Sie reagiert auf Eingaben, rechnet und verarbeitet Daten, zum Beispiel ein Online-Shop, ein Stundenplan-Programm oder ein Bestellsystem.

Drei Sprachen arbeiten im Browser zusammen. Jede hat ihre eigene Aufgabe:

Sprache Aufgabe im Café
HTML Struktur und Inhalt: was es gibt (Überschriften, Tabelle, Formular, Knöpfe) Speisekarte als Tabelle, Bestellformular
CSS Gestaltung: wie es aussieht (Farben, Schrift, Anordnung, Handy-Ansicht) Café-Farben, Kärtchen, Navigation
JavaScript Verhalten: was passiert (rechnen, reagieren, die Seite verändern) Warenkorb, Gesamtpreis, Hinweise beim Tippen

Eine statische Webseite liegt als fertige Datei auf dem Webserver. Jeder bekommt genau dieselbe Datei, bis jemand sie von Hand ändert (Fassung A). So läuft ein statischer Seitenaufruf ab:

Alle bisherigen Schritte

    Eine dynamische Webseite entsteht oder verändert sich erst beim Aufruf. Das kann an zwei Stellen passieren:

    • serverseitig dynamisch (Fassung C): Ein Skript auf dem Server erzeugt das HTML in dem Moment, in dem die Seite angefragt wird, oft mit Daten aus einer Datenbank. Typische Sprachen: PHP, aber auch Python oder JavaScript auf dem Server.
    • clientseitig dynamisch (Fassung B): Der Browser bekommt HTML mit JavaScript und führt den Code auf dem Gerät aus. Das Skript verändert die angezeigte Seite, ohne sie neu zu laden.

    So läuft ein serverseitig dynamischer Aufruf ab:

    Alle bisherigen Schritte

      Viele Webanwendungen verbinden beides: Der Server liefert die aktuellen Daten, JavaScript im Browser sorgt für die schnelle Bedienung.

      im Browser (clientseitig) auf dem Server (serverseitig)
      Wo läuft der Code? auf dem Gerät der Besucherin oder des Besuchers auf dem Webserver
      Wer sieht den Code? jeder (Quelltext, Entwicklerwerkzeuge) nur, wer Zugriff auf den Server hat
      Geschwindigkeit sofort, ohne neue Anfrage jede Aktion braucht eine Anfrage und Antwort
      Daten nur auf diesem Gerät an einer Stelle für alle (z. B. in einer Datenbank)
      geeignet für Anzeige, Rückmeldung beim Tippen, Rechnen für die Anzeige Speichern, Daten für alle, Passwörter, alles Sicherheitsrelevante

      Ein Webserver ist ein Programm (und oft auch der Rechner, auf dem es läuft), das Anfragen von Browsern beantwortet. Verbreitete Webserver sind zum Beispiel Apache HTTP Server und nginx. Seine Aufgaben:

      • Anfragen annehmen über HTTP bzw. HTTPS (üblicherweise Port 80 bzw. 443, siehe IT 12.4, Einheit 14),
      • Dateien ausliefern aus einem festgelegten Ordner (HTML, CSS, JavaScript, Bilder),
      • Skripte ausführen lassen, zum Beispiel .php-Dateien an den PHP-Interpreter übergeben und dessen Ergebnis zurückschicken,
      • Zugriffe regeln, zum Beispiel geschützte Bereiche nur nach Anmeldung,
      • Protokoll führen, welche Anfragen gekommen sind und ob Fehler auftraten.

      Café-App, Schritt 1: Die App vorbereiten leicht

      In 12.6 wird die Café-Seite Schritt für Schritt zur Webanwendung. Du arbeitest in deiner Entwicklungsumgebung (zum Beispiel VSCodium).

      1. Nimm deinen Café-Ordner aus IT 11.7 oder lade die Startdateien herunter: cafe-start-12-6.zip. Entpacke sie in einen Ordner schuelercafe.
      2. Lege im Ordner eine leere Datei app.js an.
      3. Binde sie in allen drei Seiten am Ende des head ein: <script src="app.js" defer></script>.
      4. Schreibe in app.js die Zeile console.log('Café-App gestartet');.
      5. Öffne index.html im Browser, drücke F12 und öffne die Konsole. Dort muss die Meldung stehen.
      6. Lege in deinem Ordner eine Datei plan.txt an. Notiere für die vier Wünsche des Teams aus dem Einstieg, ob sie im Browser, auf dem Server oder an beiden Stellen umgesetzt werden müssen.
      Tipp 1

      Zu 5.: Steht in der Konsole eine Fehlermeldung wie „Failed to load resource“, stimmt der Dateiname oder der Pfad nicht. Prüfe Groß- und Kleinschreibung.

      Stand nach Schritt 1

      Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

      Aufgabe 1: Drei Sprachen in der Stadtbücherei leicht

      Die Stadtbücherei bekommt eine Webanwendung, mit der man Bücher suchen und vormerken kann. Sie wird mit HTML, CSS und JavaScript gebaut.

      Beschreibe die Aufgaben von HTML, CSS und JavaScript in dieser Anwendung. Nenne zu jeder Sprache ein passendes Beispiel aus der Bücherei.

      Lösung

      Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

      Aufgabe 2: Code lesen – wer macht was? leicht

      <!doctype html>
      <html lang="de">
      <head>
      <meta charset="utf-8">
      <title>Zähler</title>
      <style>
      .gross { font-size: 3rem; color: #874026; }
      </style>
      </head>
      <body>
      <p class="gross" id="anzeige">0</p>
      <button id="knopf">Ein Gast mehr</button>
      <script>
      let gaeste = 0;
      document.querySelector('#knopf').addEventListener('click', () => {
      gaeste = gaeste + 1;
      document.querySelector('#anzeige').textContent = gaeste;
      });
      </script>
      </body>
      </html>

      a) Gib an, welche Zeilen HTML, CSS und JavaScript sind.

      b) Beschreibe, was nach dem Öffnen angezeigt wird und was bei drei Klicks auf den Knopf passiert.

      c) Gib an, ob die Seite statisch oder dynamisch ist. Begründe.

      Lösung

      Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

      Aufgabe 3: Zwei Seitenaufrufe mittel

      Die Schule bietet auf ihrer Webseite eine Seite mit dem Vertretungsplan an. Früher war es die feste Datei vertretung.html, die die Sekretärin jeden Morgen hochgeladen hat. Heute ist es das Skript vertretung.php, das die Daten aus dem Stundenplanprogramm liest.

      Stelle die Schritte des Seitenaufrufs für beide Fälle dar, vom Eintippen der Adresse bis zur Anzeige im Browser.

      Tipp 1

      Beginne beide Darstellungen gleich: Der Browser schickt eine Anfrage an den Webserver. Ab wann unterscheiden sie sich?

      Tipp 2

      Beim zweiten Fall sind zusätzlich der PHP-Interpreter und die Daten des Stundenplanprogramms beteiligt.

      Lösung

      Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

      Aufgabe 4: Ein Fahrradverleih plant mittel

      Ein Fahrradverleih möchte eine Webanwendung. Ordne jede Aufgabe begründet dem Browser oder dem Server zu (oder beiden):

      a) eine Karte mit den Stationen vergrößern und verschieben,

      b) anzeigen, wie viele Räder an jeder Station gerade frei sind,

      c) beim Ausfüllen sofort melden, dass das Rückgabedatum vor dem Ausleihdatum liegt,

      d) die Ausleihe speichern und das Rad für andere sperren,

      e) den Preis für die gewählte Dauer anzeigen, bevor man bucht.

      Tipp 1

      Achte bei e) darauf, welcher Preis am Ende verbindlich ist.

      Lösung

      Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

      Aufgabe 5: Ein Gutscheincode im Browser schwer

      Ein Mitschüler hat für das Café einen Gutschein eingebaut. Wer den Code eingibt, bekommt 10 Prozent Rabatt. Die Bestellung wird mit dem berechneten Preis an den Server geschickt.

      function rabattPruefen(code, preis) {
      if (code === 'PAUSE10') {
      return preis * 0.9;
      }
      return preis;
      }

      Die Funktion steht in app.js und läuft im Browser.

      Nimm Stellung zu dieser Lösung. Gehe auf mindestens zwei Probleme ein und beschreibe eine bessere Lösung.

      Tipp 1

      Wer kann die Datei app.js alles lesen? Und wer bestimmt eigentlich den Preis, der beim Server ankommt?

      Lösung (Beispiel)

      Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

      Zusatzaufgabe: Anfragen beobachten mittel Zusatz

      Öffne eine Seite von Maternet und drücke F12. Wechsle zum Reiter Netzwerk und lade die Seite neu (F5).

      a) Gib an, wie viele Anfragen beim Laden gestellt werden und welche Dateiarten dabei sind.

      b) Klicke auf die erste Anfrage. Nenne die Methode, den Statuscode und den Typ der Antwort (Content-Type).

      c) Vergleiche: Lade die Seite noch einmal. Was ändert sich an den Anfragen?

      Lösung (Beispiel)

      Das Passwort bekommst du von deiner Lehrkraft. Es gilt für alle Lösungen auf dieser Seite.

      • Eine Webanwendung reagiert auf Eingaben, rechnet und verarbeitet Daten.
      • HTML = Struktur und Inhalt, CSS = Gestaltung, JavaScript = Verhalten.
      • Statisch: feste Datei, für alle gleich. Serverseitig dynamisch: ein Skript (z. B. PHP) erzeugt das HTML bei der Anfrage. Clientseitig dynamisch: JavaScript verändert die Seite im Browser.
      • Der Browser bekommt bei PHP nur das Ergebnis, nie den PHP-Code. JavaScript-Code dagegen sieht jeder.
      • Browser: schnelle Anzeige und Rückmeldung. Server: Speichern, Daten für alle, alles Sicherheitsrelevante.
      • Ein Webserver nimmt Anfragen an, liefert Dateien aus, lässt Skripte ausführen, regelt Zugriffe und führt Protokoll.

      Geh die Fragen ehrlich durch. Wenn du bei einer unsicher bist, lies den verlinkten Abschnitt noch einmal oder bearbeite die passende Aufgabe.

      Begriff Bedeutung in einfachen Worten
      Webanwendung Programm, das im Browser bedient wird und auf Eingaben reagiert
      JavaScript Programmiersprache, die im Browser läuft und das Verhalten einer Seite bestimmt
      statische Webseite fertige Datei, die für alle gleich ausgeliefert wird
      dynamische Webseite Seite, die erst beim Aufruf entsteht oder sich im Browser verändert
      clientseitig auf dem Gerät der Besucherin oder des Besuchers, im Browser
      serverseitig auf dem Webserver, bevor die Antwort verschickt wird
      Skript kleines Programm, das bei Bedarf ausgeführt wird
      PHP verbreitete Sprache für serverseitige Skripte
      PHP-Interpreter Programm auf dem Server, das PHP-Skripte ausführt
      Webserver Programm, das Anfragen von Browsern beantwortet und Dateien ausliefert oder Skripte ausführen lässt
      Konsole Bereich in den Entwicklerwerkzeugen, in dem Meldungen und Fehler von JavaScript erscheinen
      • Hessisches Kultusministerium: Kerncurriculum Fachoberschule, Fachrichtung Technik, Schwerpunkt Informationstechnik, Themenfeld 12.6 Webanwendungen, „Architekturen von Webanwendungen“ (Stand November 2022).
      • Texte, Beispiele, Aufgaben, Abläufe und Code-Beispiele sind selbst erstellt.