Kurse:HTTP Code Übungen: Unterschied zwischen den Versionen
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
- Ö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
- Notiere für jede Anfrage:
- * Statuscode, z. B. 200 oder 404
- * Content-Type und Größe (Bytes)
- 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:
- Welche HTTP-Version wird verwendet?
- Wurde der Inhalt erfolgreich gesendet?
- Wie groß ist das Dokument?
- Ist die Verbindung persistent?
- Welcher Medientyp wird zurückgesendet?
- Welche Server-Software und Version?
- Ä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 `` zurückgeliefert wird.
Hallo Welt!
Ü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}!
");
}