<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Netzwerke_und_Systemintegration_%E2%80%93_Netzwerkdienste_im_Testsystem_pr%C3%BCfen</id>
	<title>Netzwerke und Systemintegration – Netzwerkdienste im Testsystem prüfen - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://staging.moocwiki.org/index.php?action=history&amp;feed=atom&amp;title=Netzwerke_und_Systemintegration_%E2%80%93_Netzwerkdienste_im_Testsystem_pr%C3%BCfen"/>
	<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Netzwerke_und_Systemintegration_%E2%80%93_Netzwerkdienste_im_Testsystem_pr%C3%BCfen&amp;action=history"/>
	<updated>2026-10-12T06:49:13Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in MOOCsWiki Staging</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://staging.moocwiki.org/index.php?title=Netzwerke_und_Systemintegration_%E2%80%93_Netzwerkdienste_im_Testsystem_pr%C3%BCfen&amp;diff=64109&amp;oldid=prev</id>
		<title>Glanz: aiMOOC über GPT aiMOOC Action erstellt</title>
		<link rel="alternate" type="text/html" href="https://staging.moocwiki.org/index.php?title=Netzwerke_und_Systemintegration_%E2%80%93_Netzwerkdienste_im_Testsystem_pr%C3%BCfen&amp;diff=64109&amp;oldid=prev"/>
		<updated>2026-10-11T15:19:48Z</updated>

		<summary type="html">&lt;p&gt;aiMOOC über GPT aiMOOC Action erstellt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{T}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Netzwerke und Systemintegration – Netzwerkdienste im Testsystem prüfen =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kurzbeschreibung:&amp;#039;&amp;#039;&amp;#039; Erreichbarkeit und erwartete Funktion.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Client-Server.png|500px|rahmenlos|center]]&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Ein Netzwerkdienst ist sinnvoll geprüft, wenn Du zwei Fragen getrennt beantwortest: &amp;#039;&amp;#039;&amp;#039;Ist der Dienst erreichbar?&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;liefert er die erwartete Funktion?&amp;#039;&amp;#039;&amp;#039; Ein offener TCP-Port allein beweist noch nicht, dass eine Anwendung fachlich korrekt antwortet. In diesem Lernkurs arbeitest Du deshalb mit der Prüfkette &amp;#039;&amp;#039;&amp;#039;Adresse → Port → Protokoll → Inhalt/Funktion&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Der Kurs richtet sich an Auszubildende, besonders an angehende [[Fachinformatiker für Systemintegration|Fachinformatikerinnen und Fachinformatiker für Systemintegration]]. Alle praktischen Übungen verwenden ausschließlich &amp;#039;&amp;#039;&amp;#039;localhost&amp;#039;&amp;#039;&amp;#039;, die Loopback-Adresse &amp;#039;&amp;#039;&amp;#039;127.0.0.1&amp;#039;&amp;#039;&amp;#039; oder eine ausdrücklich freigegebene, isolierte Testumgebung mit fiktiven Daten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sicherheitsregel:&amp;#039;&amp;#039;&amp;#039; Übertrage die gezeigten Befehle nicht ungefragt auf fremde Netze, Produktivsysteme, Kundensysteme oder öffentliche IP-Adressen. Verwende keine echten Zugangsdaten oder Kundendaten.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Lernziele ==&lt;br /&gt;
&lt;br /&gt;
Nach dem Kurs kannst Du Erreichbarkeit und Funktion eines Netzwerkdienstes unterscheiden, lokale Testdienste starten, erwartete Antworten definieren, Messergebnisse auswerten und Abweichungen systematisch einordnen.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Prüfkette auf einen Blick ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; text-align:center&amp;quot;&lt;br /&gt;
! Prüfschritt&lt;br /&gt;
! Leitfrage&lt;br /&gt;
! Lokales Werkzeug&lt;br /&gt;
! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| Adresse&lt;br /&gt;
| Wird das richtige Ziel verwendet?&lt;br /&gt;
| localhost / 127.0.0.1&lt;br /&gt;
| 127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
| Transport&lt;br /&gt;
| Ist der TCP-Port erreichbar?&lt;br /&gt;
| Python socket&lt;br /&gt;
| 8080/tcp&lt;br /&gt;
|-&lt;br /&gt;
| Protokoll&lt;br /&gt;
| Antwortet HTTP formal?&lt;br /&gt;
| curl&lt;br /&gt;
| Statuscode 200&lt;br /&gt;
|-&lt;br /&gt;
| Funktion&lt;br /&gt;
| Ist der erwartete Inhalt vorhanden?&lt;br /&gt;
| curl + Vergleich&lt;br /&gt;
| TESTSYSTEM-OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Warum localhost? ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;localhost&amp;#039;&amp;#039;&amp;#039; bezeichnet den eigenen Rechner. Für IPv4 wird typischerweise die Loopback-Adresse &amp;#039;&amp;#039;&amp;#039;127.0.0.1&amp;#039;&amp;#039;&amp;#039; verwendet, für IPv6 &amp;#039;&amp;#039;&amp;#039;::1&amp;#039;&amp;#039;&amp;#039;. Dadurch kann ein Netzwerkdienst lokal getestet werden, ohne Pakete in ein fremdes Netz zu senden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Server-based-network.svg|420px|rahmenlos|center]]&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Ausbildungsfall =&lt;br /&gt;
&lt;br /&gt;
Du arbeitest im internen Ausbildungs-Testlabor der fiktiven Firma &amp;#039;&amp;#039;&amp;#039;Beispielwerk GmbH&amp;#039;&amp;#039;&amp;#039;. Für eine Übung soll ein kleiner Statusdienst geprüft werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Vorgabe&lt;br /&gt;
! Erwarteter Wert&lt;br /&gt;
|-&lt;br /&gt;
| Ziel&lt;br /&gt;
| 127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
| TCP-Port&lt;br /&gt;
| 8080&lt;br /&gt;
|-&lt;br /&gt;
| Protokoll&lt;br /&gt;
| HTTP&lt;br /&gt;
|-&lt;br /&gt;
| Pfad&lt;br /&gt;
| /health&lt;br /&gt;
|-&lt;br /&gt;
| Statuscode&lt;br /&gt;
| 200&lt;br /&gt;
|-&lt;br /&gt;
| Inhalt&lt;br /&gt;
| TESTSYSTEM-OK&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Dein Auftrag lautet: &amp;#039;&amp;#039;&amp;#039;Beweise nachvollziehbar, ob der Dienst erreichbar ist und ob er die erwartete Funktion liefert.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Kurze Lerneinheit 1: Erreichbarkeit und Funktion =&lt;br /&gt;
&lt;br /&gt;
Ein erfolgreicher Verbindungsaufbau zeigt, dass an einer Adresse und einem Port ein Prozess Verbindungen annimmt. Erst eine protokollgerechte Anfrage mit einer erwarteten Antwort prüft die Funktion.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Ping_command_example.png|500px|rahmenlos|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Merksatz:&amp;#039;&amp;#039;&amp;#039; Ein erfolgreicher Ping beweist nicht die Funktion eines Webdienstes. Prüfe deshalb den Dienst selbst.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Mini-Aufgabe Basis ==&lt;br /&gt;
&lt;br /&gt;
Ein Test ergibt: TCP-Port 8080 ist erreichbar, die Webanwendung liefert aber nicht die erwartete Antwort. Ist der Netzwerkdienst vollständig funktionsfähig?&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Feedback:&amp;#039;&amp;#039;&amp;#039; Nein. Die Transportschicht ist erreichbar, die Anwendung erfüllt jedoch die festgelegte Sollvorgabe nicht. Die Prüfung muss deshalb bis zur Anwendungsebene gehen.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Kurze Lerneinheit 2: Lokalen Testdienst starten =&lt;br /&gt;
&lt;br /&gt;
Das folgende Beispiel verwendet nur die Python-Standardbibliothek und bindet den Dienst ausdrücklich an &amp;#039;&amp;#039;&amp;#039;127.0.0.1&amp;#039;&amp;#039;&amp;#039;. Es werden keine Daten an fremde Systeme übertragen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from http.server import BaseHTTPRequestHandler, HTTPServer&lt;br /&gt;
import json&lt;br /&gt;
&lt;br /&gt;
HOST = &amp;quot;127.0.0.1&amp;quot;&lt;br /&gt;
PORT = 8080&lt;br /&gt;
&lt;br /&gt;
class Handler(BaseHTTPRequestHandler):&lt;br /&gt;
    def do_GET(self):&lt;br /&gt;
        if self.path == &amp;quot;/health&amp;quot;:&lt;br /&gt;
            body = json.dumps({&lt;br /&gt;
                &amp;quot;status&amp;quot;: &amp;quot;TESTSYSTEM-OK&amp;quot;,&lt;br /&gt;
                &amp;quot;system&amp;quot;: &amp;quot;ausbildungs-lab&amp;quot;&lt;br /&gt;
            }).encode(&amp;quot;utf-8&amp;quot;)&lt;br /&gt;
            self.send_response(200)&lt;br /&gt;
            self.send_header(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/json; charset=utf-8&amp;quot;)&lt;br /&gt;
            self.send_header(&amp;quot;Content-Length&amp;quot;, str(len(body)))&lt;br /&gt;
            self.end_headers()&lt;br /&gt;
            self.wfile.write(body)&lt;br /&gt;
        else:&lt;br /&gt;
            self.send_response(404)&lt;br /&gt;
            self.end_headers()&lt;br /&gt;
&lt;br /&gt;
    def log_message(self, format, *args):&lt;br /&gt;
        pass&lt;br /&gt;
&lt;br /&gt;
HTTPServer((HOST, PORT), Handler).serve_forever()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Speichere den Code als &amp;#039;&amp;#039;&amp;#039;testdienst.py&amp;#039;&amp;#039;&amp;#039; und starte ihn lokal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 testdienst.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unter Windows ist je nach Installation auch möglich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
py testdienst.py&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Gestufte Hilfe:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Hilfe 1:&amp;#039;&amp;#039;&amp;#039; Prüfe zuerst, ob Python läuft und ob Port 8080 frei ist.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Hilfe 2:&amp;#039;&amp;#039;&amp;#039; Der Dienst muss im Terminal weiterlaufen, während Du in einem zweiten Terminal testest.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Hilfe 3:&amp;#039;&amp;#039;&amp;#039; Verwende als Ziel ausschließlich http://127.0.0.1:8080/health.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Kurze Lerneinheit 3: TCP-Port lokal testen =&lt;br /&gt;
&lt;br /&gt;
Mit Python kannst Du ohne zusätzliches Werkzeug prüfen, ob der lokale TCP-Port Verbindungen annimmt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import socket&lt;br /&gt;
&lt;br /&gt;
ziel = (&amp;quot;127.0.0.1&amp;quot;, 8080)&lt;br /&gt;
&lt;br /&gt;
with socket.create_connection(ziel, timeout=2):&lt;br /&gt;
    print(&amp;quot;TCP erreichbar&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Test bewertet ausschließlich den lokalen TCP-Verbindungsaufbau.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Wichtig:&amp;#039;&amp;#039;&amp;#039; Dieser Test sagt noch nichts darüber aus, ob unter dem Port tatsächlich die erwartete HTTP-Funktion verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Mini-Aufgabe Anwendung ==&lt;br /&gt;
&lt;br /&gt;
Starte den lokalen Dienst. Führe zuerst den TCP-Test aus. Ändere danach im Client testweise den Port von 8080 auf 8081.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Feedback:&amp;#039;&amp;#039;&amp;#039; Auf 8080 sollte bei laufendem Testdienst die TCP-Verbindung gelingen. Auf 8081 gibt es nur dann eine erfolgreiche Verbindung, wenn dort ebenfalls ein lokaler Dienst lauscht. So erkennst Du den Unterschied zwischen einem erwarteten und einem anderen Endpunkt.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Kurze Lerneinheit 4: HTTP-Funktion prüfen =&lt;br /&gt;
&lt;br /&gt;
HTTP ist ein Anfrage-Antwort-Protokoll. Für den Ausbildungsfall reicht deshalb nicht die Aussage „Port offen“. Erwartet werden der Statuscode &amp;#039;&amp;#039;&amp;#039;200&amp;#039;&amp;#039;&amp;#039; und der Inhalt &amp;#039;&amp;#039;&amp;#039;TESTSYSTEM-OK&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -i http://127.0.0.1:8080/health&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nur den Antwortkörper anzeigen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -s http://127.0.0.1:8080/health&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|   https://www.youtube.com/watch?v=98fSp15gE70   |500|center}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Funktion automatisch bewerten ==&lt;br /&gt;
&lt;br /&gt;
Dieses lokale Prüfskript kontrolliert Statuscode und erwarteten Inhalt. Es verwendet nur &amp;#039;&amp;#039;&amp;#039;127.0.0.1&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import json&lt;br /&gt;
import urllib.request&lt;br /&gt;
&lt;br /&gt;
URL = &amp;quot;http://127.0.0.1:8080/health&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with urllib.request.urlopen(URL, timeout=2) as response:&lt;br /&gt;
    daten = json.loads(response.read().decode(&amp;quot;utf-8&amp;quot;))&lt;br /&gt;
    status_ok = response.status == 200&lt;br /&gt;
    inhalt_ok = daten.get(&amp;quot;status&amp;quot;) == &amp;quot;TESTSYSTEM-OK&amp;quot;&lt;br /&gt;
    print(status_ok and inhalt_ok)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Kurze Lerneinheit 5: DNS als Netzwerkdienst =&lt;br /&gt;
&lt;br /&gt;
DNS ordnet Namen Informationen zu, unter anderem IP-Adressen. Für eine systematische Prüfung ist wichtig, Namensauflösung und Erreichbarkeit getrennt zu betrachten.&lt;br /&gt;
&lt;br /&gt;
[[Datei:DNS_schema.svg|500px|rahmenlos|center]]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|   https://www.youtube.com/watch?v=GxABmSNc780   |500|center}}&lt;br /&gt;
&lt;br /&gt;
Im sicheren lokalen Kurs verwenden wir keine fremden DNS-Ziele. Für &amp;#039;&amp;#039;&amp;#039;localhost&amp;#039;&amp;#039;&amp;#039; ist die Loopback-Verwendung standardisiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import socket&lt;br /&gt;
&lt;br /&gt;
print(socket.gethostbyname(&amp;quot;localhost&amp;quot;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für IPv4 ist dabei typischerweise &amp;#039;&amp;#039;&amp;#039;127.0.0.1&amp;#039;&amp;#039;&amp;#039; relevant.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Kurze Lerneinheit 6: Messdaten lesen =&lt;br /&gt;
&lt;br /&gt;
Bei einer Funktionsprüfung können mehrere Messwerte zusammengehören. Das folgende Beispiel nutzt ausschließlich &amp;#039;&amp;#039;&amp;#039;fiktive lokale Testdaten&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Testlauf&lt;br /&gt;
! TCP&lt;br /&gt;
! HTTP&lt;br /&gt;
! Inhalt&lt;br /&gt;
! Antwortzeit&lt;br /&gt;
! Visualisierung&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| erreichbar&lt;br /&gt;
| 200&lt;br /&gt;
| korrekt&lt;br /&gt;
| 12 ms&lt;br /&gt;
| ███&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| erreichbar&lt;br /&gt;
| 200&lt;br /&gt;
| korrekt&lt;br /&gt;
| 18 ms&lt;br /&gt;
| ████&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| erreichbar&lt;br /&gt;
| abweichend&lt;br /&gt;
| abweichend&lt;br /&gt;
| 15 ms&lt;br /&gt;
| ███&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| keine Verbindung&lt;br /&gt;
| –&lt;br /&gt;
| –&lt;br /&gt;
| –&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Auswertung:&amp;#039;&amp;#039;&amp;#039; Lauf C zeigt, warum Erreichbarkeit und erwartete Funktion getrennt geprüft werden müssen. Der Transport funktioniert, die Anwendung erfüllt die Sollvorgabe jedoch nicht. Lauf D endet bereits auf der Transportebene.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Mini-Aufgabe Transfer ==&lt;br /&gt;
&lt;br /&gt;
Ein Kollege dokumentiert nur „Port 8080 offen = Dienst OK“. Formuliere eine bessere Prüfaussage.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Feedback:&amp;#039;&amp;#039;&amp;#039; Eine belastbare Aussage nennt mindestens Ziel, Port, Protokoll und erwartete Anwendungseigenschaft. Beispiel: „127.0.0.1:8080 ist per TCP erreichbar; GET /health liefert Statuscode 200 und den erwarteten Status TESTSYSTEM-OK.“ So ist erkennbar, was tatsächlich geprüft wurde.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Interaktive Testumgebung: Abweichungen gezielt erzeugen =&lt;br /&gt;
&lt;br /&gt;
Verändere in Deiner lokalen Kopie von &amp;#039;&amp;#039;&amp;#039;testdienst.py&amp;#039;&amp;#039;&amp;#039; jeweils genau einen Wert und beobachte die Auswirkung.&lt;br /&gt;
&lt;br /&gt;
# Ändere den Port des Servers auf 8081, aber nicht den Client.&lt;br /&gt;
# Ändere den Pfad im Client von /health auf /status.&lt;br /&gt;
# Ändere im Server den Inhalt TESTSYSTEM-OK auf TESTSYSTEM-WARN.&lt;br /&gt;
# Ändere den Statuscode testweise von 200 auf 201.&lt;br /&gt;
&lt;br /&gt;
Für jeden Fall notierst Du: &amp;#039;&amp;#039;&amp;#039;Erreichbarkeit&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Protokollantwort&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Funktionserwartung&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Ursache&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Gestufte Hilfen zur Diagnose ==&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Stufe 1 – Ziel prüfen:&amp;#039;&amp;#039;&amp;#039; Stimmen Host, Port und Pfad mit der Vorgabe überein?&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Stufe 2 – Transport prüfen:&amp;#039;&amp;#039;&amp;#039; Kann eine TCP-Verbindung aufgebaut werden?&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Stufe 3 – Protokoll prüfen:&amp;#039;&amp;#039;&amp;#039; Kommt eine formal auswertbare HTTP-Antwort zurück?&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Stufe 4 – Funktion prüfen:&amp;#039;&amp;#039;&amp;#039; Stimmen Statuscode und Nutzdaten mit der Sollvorgabe überein?&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Stufe 5 – Dokumentieren:&amp;#039;&amp;#039;&amp;#039; Trenne Beobachtung, Erwartung und Schlussfolgerung.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Quellen und Medienrechte =&lt;br /&gt;
&lt;br /&gt;
Die fachliche Grundlage wurde mit Standards und verlässlichen Referenzen abgeglichen: [https://www.rfc-editor.org/info/rfc9293 RFC 9293 – TCP], [https://www.rfc-editor.org/info/rfc9110 RFC 9110 – HTTP Semantics], [https://www.rfc-editor.org/info/rfc1035 RFC 1035 – DNS] und [https://www.rfc-editor.org/info/rfc6761 RFC 6761 – Special-Use Domain Names]. Ergänzend: [[Netzwerkdienst]], [[Localhost]] und die IANA-Registry für Dienstnamen und Portnummern.&lt;br /&gt;
&lt;br /&gt;
Die eingebundenen Bilder stammen von Wikimedia Commons. Die Dateien &amp;#039;&amp;#039;&amp;#039;Client-Server.png&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;DNS schema.svg&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Ping command example.png&amp;#039;&amp;#039;&amp;#039; stehen laut ihren Commons-Dateibeschreibungen unter freien Lizenzen; &amp;#039;&amp;#039;&amp;#039;Server-based-network.svg&amp;#039;&amp;#039;&amp;#039; ist als frei lizenzierte Grafik veröffentlicht. Die YouTube-Videos werden ausschließlich über die Plattform eingebettet und nicht kopiert oder neu veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Interaktive Aufgaben =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Quiz: Teste Dein Wissen ==&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was prüfst Du mit einem erfolgreichen TCP-Verbindungsaufbau zuerst?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Die Erreichbarkeit des Zielports)&lt;br /&gt;
(!Die fachliche Korrektheit aller Anwendungsdaten)&lt;br /&gt;
(!Die Qualität der Benutzeroberfläche)&lt;br /&gt;
(!Die Vollständigkeit der Dokumentation)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Welche Adresse eignet sich für den isolierten lokalen IPv4-Test?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(127.0.0.1)&lt;br /&gt;
(!8.8.8.8)&lt;br /&gt;
(!203.0.113.10)&lt;br /&gt;
(!192.0.2.20)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was muss zusätzlich geprüft werden, wenn Port 8080 erreichbar ist?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Die erwartete Funktion des Dienstes)&lt;br /&gt;
(!Nur die Bildschirmauflösung)&lt;br /&gt;
(!Nur der Rechnername)&lt;br /&gt;
(!Nur die Uhrzeit)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Welcher HTTP-Statuscode entspricht im Ausbildungsfall der Sollvorgabe?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(200)&lt;br /&gt;
(!201)&lt;br /&gt;
(!204)&lt;br /&gt;
(!302)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Welcher Pfad gehört im Ausbildungsfall zum lokalen Statusdienst?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(/health)&lt;br /&gt;
(!/login)&lt;br /&gt;
(!/customer)&lt;br /&gt;
(!/admin)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Welche Aussage zu Ping ist fachlich richtig?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Ping allein beweist nicht die Funktion eines HTTP-Dienstes)&lt;br /&gt;
(!Ping prüft automatisch jede Webanwendung)&lt;br /&gt;
(!Ping liefert immer einen HTTP-Statuscode)&lt;br /&gt;
(!Ping prüft den Inhalt einer JSON-Antwort)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Welche Daten werden in den praktischen Übungen verwendet?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Fiktive Testdaten)&lt;br /&gt;
(!Echte Kundendaten)&lt;br /&gt;
(!Produktivkennwörter)&lt;br /&gt;
(!Private Zugangsdaten)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Welche Reihenfolge unterstützt eine systematische Dienstprüfung?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Adresse dann Port dann Protokoll dann Funktion)&lt;br /&gt;
(!Funktion dann Passwort dann Bildschirm dann Drucker)&lt;br /&gt;
(!Port dann Kundendaten dann Internet dann Funktion)&lt;br /&gt;
(!Protokoll dann Produktion dann Fremdnetz dann Adresse)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Was zeigt eine abweichende Anwendungsantwort trotz erreichbarem TCP-Port?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Transport und Anwendung müssen getrennt bewertet werden)&lt;br /&gt;
(!Der Bildschirm ist zu klein)&lt;br /&gt;
(!Die Tastatur ist nicht verbunden)&lt;br /&gt;
(!Die Uhrzeit ist falsch)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{MC}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Warum wird der lokale Server an 127.0.0.1 gebunden?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
(Damit die Übung auf den eigenen Rechner begrenzt bleibt)&lt;br /&gt;
(!Damit fremde Server automatisch geprüft werden)&lt;br /&gt;
(!Damit Kundennetze erreichbar werden)&lt;br /&gt;
(!Damit Zugangsdaten übertragen werden)&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Memory ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;memo-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| localhost || lokaler Rechner&lt;br /&gt;
|-&lt;br /&gt;
| TCP || verbindungsorientierter Transport&lt;br /&gt;
|-&lt;br /&gt;
| HTTP || Anfrage und Antwort&lt;br /&gt;
|-&lt;br /&gt;
| Statuscode 200 || erwartete erfolgreiche HTTP-Antwort&lt;br /&gt;
|-&lt;br /&gt;
| Port 8080 || lokaler Übungsendpunkt&lt;br /&gt;
|-&lt;br /&gt;
| /health || Pfad der Funktionsprüfung&lt;br /&gt;
|-&lt;br /&gt;
| TESTSYSTEM-OK || erwarteter Testinhalt&lt;br /&gt;
|-&lt;br /&gt;
| DNS || Namensauflösung&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Drag and Drop ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;lueckentext-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Ordne die richtigen Begriffe zu.&lt;br /&gt;
! Thema&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Zieladresse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Prüfschritt Adresse&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;TCP-Port&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Prüfschritt Transport&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;HTTP-Antwort&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Prüfschritt Protokoll&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;TESTSYSTEM-OK&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Prüfschritt Funktion&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Dokumentation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| Prüfschritt Bewertung&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Kreuzworträtsel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;kreuzwort-quiz&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| Localhost || Welcher Name bezeichnet in der Übung den lokalen Rechner?&lt;br /&gt;
|-&lt;br /&gt;
| Erreichbarkeit || Welche Eigenschaft wird vor der Anwendungsfunktion geprüft?&lt;br /&gt;
|-&lt;br /&gt;
| Protokoll || Welche Regelmenge strukturiert die Kommunikation eines Dienstes?&lt;br /&gt;
|-&lt;br /&gt;
| Statuscode || Wie heißt bei HTTP die numerische Bewertung einer Antwort?&lt;br /&gt;
|-&lt;br /&gt;
| Loopback || Wie heißt die lokale Rückführung des Netzwerkverkehrs?&lt;br /&gt;
|-&lt;br /&gt;
| Funktion || Was muss zusätzlich zur Erreichbarkeit geprüft werden?&lt;br /&gt;
|}&lt;br /&gt;
{{E}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== LearningApps ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;iframe&amp;gt; https://learningapps.org/index.php?s=Netzwerke+und+Systemintegration+–+Netzwerkdienste+im+Testsystem+prüfen &amp;lt;/iframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Lückentext ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;quiz display=simple&amp;gt;&lt;br /&gt;
{&amp;#039;&amp;#039;&amp;#039;Vervollständige den Text.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
|type=&amp;quot;{}&amp;quot;}&lt;br /&gt;
Für einen sicheren lokalen Test verwendest Du { localhost } oder die Loopback-Adresse. Ein erfolgreicher TCP-Verbindungsaufbau bestätigt zunächst die { Erreichbarkeit } des Ports. Danach prüfst Du das erwartete { Protokoll }. Im Ausbildungsfall soll der Pfad /health den Statuscode { 200 } liefern. Zusätzlich muss der Inhalt { TESTSYSTEM-OK } enthalten. Eine abweichende Anwendungsantwort trotz erreichbarem Port zeigt, dass Transport und { Funktion } getrennt bewertet werden müssen. DNS dient unter anderem der { Namensauflösung }. Alle praktischen Übungen verwenden ausschließlich fiktive Daten in einer { Testumgebung }.&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Offene Aufgaben =&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Leicht ===&lt;br /&gt;
# [[Erreichbarkeit]]: Erkläre in drei Sätzen den Unterschied zwischen „Port erreichbar“ und „Dienst funktioniert“.&lt;br /&gt;
# [[Localhost]]: Erstelle eine kleine Skizze, die Client und lokalen Testserver auf demselben Rechner zeigt.&lt;br /&gt;
# [[HTTP]]: Markiere in einer selbst erzeugten Beispielantwort Statuscode, Header und Nutzdaten.&lt;br /&gt;
# [[Dokumentation]]: Formuliere eine Sollvorgabe für einen fiktiven lokalen Netzwerkdienst mit Host, Port, Pfad und erwartetem Ergebnis.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Standard ===&lt;br /&gt;
# [[TCP]]: Starte den lokalen Testdienst und dokumentiere einen passenden sowie einen abweichenden Porttest.&lt;br /&gt;
# [[Diagnose]]: Erzeuge lokal einen anderen Pfad und leite aus dem Ergebnis eine Ursache ab.&lt;br /&gt;
# [[Testprotokoll]]: Entwickle eine Tabelle mit Sollwert, Istwert, Bewertung und Begründung für mindestens vier Prüfschritte.&lt;br /&gt;
# [[Datenvisualisierung]]: Erzeuge mit fiktiven Messwerten eine eigene kleine Balkendarstellung für fünf lokale Antwortzeiten und erkläre, welche Aussage daraus zulässig ist.&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
=== Schwer ===&lt;br /&gt;
# [[Automatisierung]]: Erweitere das lokale Python-Prüfskript so, dass es Statuscode und Inhalt jeweils getrennt bewertet.&lt;br /&gt;
# [[Testdesign]]: Entwirf drei lokale Negativtests, bei denen jeweils nur eine Ursache verändert wird.&lt;br /&gt;
# [[Transfer]]: Vergleiche einen reinen Portcheck mit einer fachlichen Funktionsprüfung und begründe, wann beide nacheinander nötig sind.&lt;br /&gt;
# [[Ausbildungsprojekt]]: Produziere ein kurzes Bildschirmvideo aus einer isolierten lokalen Umgebung, in dem Du eine Abweichung erzeugst, systematisch eingrenzt und die Lösung begründest.&lt;br /&gt;
&lt;br /&gt;
{{:Offene Aufgabe - MOOC erstellen}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lernkontrolle =&lt;br /&gt;
&lt;br /&gt;
# [[Diagnosestrategie]]: Ein Dienst ist per TCP erreichbar, liefert aber nicht den erwarteten Inhalt. Entwickle eine begründete Reihenfolge der nächsten Prüfschritte.&lt;br /&gt;
# [[Soll-Ist-Vergleich]]: Gegeben sind Ziel 127.0.0.1, Port 8080, Statuscode 200 und TESTSYSTEM-OK. Erkläre, welche Abweichung jeweils auf Transport-, Protokoll- oder Funktionsebene hinweist.&lt;br /&gt;
# [[Abweichungsisolation]]: Zwei Testläufe unterscheiden sich nur im URL-Pfad. Einer erfüllt die Sollvorgabe, der andere nicht. Begründe, welche Ursachen dadurch wahrscheinlicher oder unwahrscheinlicher werden.&lt;br /&gt;
# [[Testqualität]]: Bewerte die Aussage „Ping erfolgreich, also Dienst in Ordnung“ und formuliere eine fachlich belastbarere Alternative.&lt;br /&gt;
# [[Transfer in den Betrieb]]: Beschreibe, welche zusätzlichen Freigaben, Datenschutzregeln und Dokumentationsschritte nötig wären, bevor eine vergleichbare Methode in einer autorisierten betrieblichen Testumgebung eingesetzt wird.&lt;br /&gt;
# [[Messdateninterpretation]]: Ein lokaler Dienst antwortet mehrfach korrekt und einmal abweichend. Begründe, warum ein einzelner erfolgreicher Test nicht genügt, um Zuverlässigkeit zu belegen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Lernnachweis =&lt;br /&gt;
&lt;br /&gt;
Für einen Lernnachweis solltest Du zeigen, dass Du eine Sollvorgabe in prüfbare Kriterien übersetzen kannst, Erreichbarkeit von Funktion unterscheidest, einen lokalen Testdienst sicher betreibst, Ergebnisse reproduzierbar dokumentierst, Abweichungen schrittweise isolierst und aus Messwerten nachvollziehbare Schlussfolgerungen ableitest.&lt;br /&gt;
&lt;br /&gt;
Ein geeigneter praktischer Lernnachweis enthält einen fiktiven lokalen Dienst, mindestens einen passenden Testlauf, mindestens zwei kontrolliert erzeugte Abweichungsfälle, eine Soll-Ist-Tabelle sowie eine kurze Begründung Deiner Diagnose.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= OERs zum Thema =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;iframe&amp;gt; https://de.m.wikipedia.org/wiki/Netzwerkdienst &amp;lt;/iframe&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= Verknüpfte Lernbereiche =&lt;br /&gt;
&lt;br /&gt;
{| align=center&lt;br /&gt;
{{:D-Tab}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Netzwerkdienste prüfen]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# [[Netzwerkdienst]]&lt;br /&gt;
# [[TCP]]&lt;br /&gt;
# [[HTTP]]&lt;br /&gt;
# [[DNS]]&lt;br /&gt;
# [[Localhost]]&lt;br /&gt;
# [[Portnummer]]&lt;br /&gt;
# [[Diagnose]]&lt;br /&gt;
# [[Testprotokoll]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Informatik]]&lt;br /&gt;
[[Kategorie:Netzwerktechnik]]&lt;br /&gt;
[[Kategorie:Systemintegration]]&lt;br /&gt;
[[Kategorie:Fachinformatiker]]&lt;br /&gt;
[[Kategorie:Ausbildung]]&lt;br /&gt;
[[Kategorie:IT-Sicherheit]]&lt;br /&gt;
[[Kategorie:Netzwerkdienst]]&lt;br /&gt;
[[Kategorie:AI_MOOC]]&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
= aiMOOC-Projekte =&lt;br /&gt;
[[Kategorie:AI_MOOC]] [[Kategorie:GPT aiMOOC]]&lt;br /&gt;
{{MT}}&lt;/div&gt;</summary>
		<author><name>Glanz</name></author>
	</entry>
</feed>