# 3.6 Aufgabe zum Kapitel Webserver

Aufgabe: Apache Webserver

Nachweis der erfolgreichen Einrichtung des Webservers

Vorgehen: Geben Sie in den Browser http://localhost/index.html ein. Wichtig ist die Angabe von „index.html“, damit Sie nicht in das Verzeichnis „xampp“ weitergeleitet werden.

Sie sollten nun im Browser den Text „It works“ sehen.

Aufgabe: Suchen Sie die Datei und erweitern diese um Ihren Namen. Erstellen Sie davon einen Screenshot und geben Sie diesen einfach als JPG-Datei ab.

Ziel dieser Aufgabe: Sie haben einen Webserver in Betrieb genommen und weisen dies mit dem Screenshot nach. Somit sind die Grundlagen vorhanden, damit Sie die kommenden Aufgaben erfolgreich bearbeiten können.

Bitte beachten Sie UNBEDINGT, dass Sie nun einen im Prinzip frei zugänglichen Webserver haben, der von überall im Internet erreicht (und gehackt werden kann).

Zeitumfang

Der zeitliche Umfang dieser Einsendeaufgabe wird mit 1 Stunde abgeschätzt

Aufgabe: Node.js Server

- Erstellen Sie ein Node.js Projekt mit einem Node-Server, der Web-Anfragen mit der Meldung "Hello World!" beantwortet.

Installieren Sie eine aktuelle Version von Node.js - https://nodejs.org/.

- Erstellen Sie ein Projektverzeichnis, z.B. "helloworld", als Arbeitsumgebung in Ihrem Dateisystem.
- Führen Sie in der Kommandozeile "`npm init`" innerhalb des Projektverzeichnisses aus und übernehmen die vorgeschlagenen Projektinformationen mit Ausnahme von "`entry point`". Hier geben Sie "`helloworld.js`" als Wert ein.
- Als nächstes wird eine Funktionalität zum Beantworten von Web-Anfragen hinzugefügt. Hierzu ist Express (http://expressjs.com/) eines der am meisten verwendeten Module und der de facto Standard für Web-Applikationen mit Node.js. Führen Sie "`npm install express --save`" in der Kommandozeile aus. Im Anschluss schauen Sie in das Unterverzeichnis `node_modules`. Hier sollte nun eine Vielzahl von Modulen vorhanden sein (express + alle abhängigen Module). Durch den Zusatz von "`--save`" wurde auch Ihre package.json angepasst und "`express`" als Abhängigkeit hinzugefügt.
- Erstellen Sie die Datei `helloworld.js` und füllen diese mit folgendem Code:

    // Importiert das Modul express
    var expressModule = require('express');

    // Erzeugt ein Objekt mit den Modul-Funktionalitäten von express
    var express = expressModule();

    /* Express reagiert auf GET-Anfragen auf dem Root-Kontext des Servers
    * localhost:3000/
    * req - Informationen zur Anfrage an den Server (Request)
    * res - Informationen zur Antwort des Servers (Response)
    */
    express.get('/', function (req, res) {
        // die Meldung "Hello World!" in die Antwort schreiben.
        res.send('Hello World!');
    });

    // Express horcht auf eingehende Web-Anfragen auf Port 3000
    express.listen(3000, function () {
        // Meldung auf die Kommandozeile
        console.log('Express listening on port 3000');
    });

- Führen Sie "`node helloworld.js`" im Projektverzeichnis aus. Der Server sollte die Meldung "`Express listening on port 3000`" in der Kommandozeile ausgeben.
- Rufen Sie "`localhost:3000`" im Web-Browser auf. Es sollte nun die Meldung "`Hello World!`" von ihrem Node.js-Server angezeigt werden.

Zeitumfang

Der zeitliche Umfang dieser Einsendeaufgabe wird mit 3 Stunden abgeschätzt.