Kurse:HTTP Code Übungen: Unterschied zwischen den Versionen

Aus ahrensburg.city
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „== Übungen zu HTTP-Protokoll und ASP.NET Core == === Übung 1: HTTP-Antwort beobachten im Browser === # Öffne deine Beispiel-Webseite in Chrome oder Firefox. # Aktiviere die Entwickler-Tools und wechsle zum Netzwerk-Tab (siehe §19.6 in LaunchCode) :contentReference[oaicite:1]{index=1}. # Lade die Seite neu und identifiziere: : * Eine GET‑Anfrage für das HTML-Dokument : * Eine GET‑Anfrage für eine CSS-Datei : * Eine GET‑Anfrage für ein Bild #…“
(kein Unterschied)

Version vom 23. Juni 2025, 19:29 Uhr

Übungen zu HTTP-Protokoll und ASP.NET Core

Übung 1: HTTP-Antwort beobachten im Browser

  1. Öffne deine Beispiel-Webseite in Chrome oder Firefox.
  2. Aktiviere die Entwickler-Tools und wechsle zum Netzwerk-Tab (siehe §19.6 in LaunchCode) :contentReference[oaicite:1]{index=1}.
  3. Lade die Seite neu und identifiziere:
* Eine GET‑Anfrage für das HTML-Dokument
* Eine GET‑Anfrage für eine CSS-Datei
* Eine GET‑Anfrage für ein Bild
  1. Notiere für jede Anfrage:
* Statuscode, z. B. 200 oder 404
* Content-Type und Größe (Bytes)
  1. Experimentiere:
* Ändere im HTML die URL einer CSS-Datei auf einen falschen Namen
* Lade die Seite erneut und erkläre, wie sich das Verhalten ändert :contentReference[oaicite:2]{index=2}

Übung 2: HTTP‑Response‑Analyse

Analysiere diese Beispiel-Antwort:

HTTP/1.1 404 Not Found
Date: Sat, 21 Jun 2025 20:38:53 +0000
Server: Apache/2.2.3 (CentOS)
Content-Length: 67365
Keep-Alive: timeout=37, max=95
Connection: Keep-alive
Content-Type: text/html

Beantworte:

  1. Welche HTTP-Version wird verwendet?
  2. Wurde der Inhalt erfolgreich gesendet?
  3. Wie groß ist das Dokument?
  4. Ist die Verbindung persistent?
  5. Welcher Medientyp wird zurückgesendet?
  6. Welche Server-Software und Version?
  7. Ändert sich der ETag bei neuen Ressourcenversionen?

(Lösungsvorlage siehe UMass-Quelle) :contentReference[oaicite:3]{index=3}

Übung 3: Minimal-HTTP‑Server mit ASP.NET Core

Erstelle eine minimalistische ASP.NET Core‑App (ohne MVC oder Razor), die:

  • Auf GET-Anfragen an `/` antwortet mit: `Hello, World!`
  • Angabe:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.Run(async context => {
    context.Response.Headers["Content-Type"] = "text/plain";
    await context.Response.WriteAsync("Hello, World!");
});

app.Run();

Übung 4: Antwort-Header anpassen

Erweitere Übung 3 so, dass:

  • Ein eigener Header `X‑Powered‑By` mit Wert `MyServer` gesetzt wird.
  • Der Content-Type auf `text/html` geändert wird und das HTML `

    Hallo Welt!

    ` zurückgeliefert wird.

Übung 5: HTTP‑Statuscodes dynamisch setzen

Erstelle eine Route `/status`, die anhand eines Query‑Parameters `code` den Status festlegt:

  • Beispielaufruf: `/status?code=201`
  • Dein Code:
var code = int.Parse(context.Request.Query["code"]);
context.Response.StatusCode = code;
await context.Response.WriteAsync($"Status: {code}");

Teste mit verschiedenen Codes wie 200, 400, 404, 500.

Übung 6: GET‑Parameter auslesen

Baue eine Route `/hello`, die einen Query‑Parameter `name` erwartet:

  • Beispiel: `/hello?name=Alice`
  • Antwort: `

    Hello, Alice!

    `
  • Beispiel-Code:
if (context.Request.Path == "/hello" && context.Request.Method == "GET") {
  var name = context.Request.Query["name"];
  await context.Response.WriteAsync($"

Hello, {name}!

"); }