Webframeworkk/ASP.NET Core/Http: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „ == 1. Was ist HTTP? == HTTP (Hypertext Transfer Protocol) ist das grundlegende Protokoll für die Kommunikation im Web. Es arbeitet nach dem Client-Server-Modell: Ein Client (z.B. Browser) sendet eine Anfrage, der Server antwortet mit Ressourcen oder Fehlermeldungen. HTTP ist zustandslos – jeder Request ist unabhängig. == 2. HTTP-Server und Kestrel == Ein HTTP-Server verarbeitet Anfragen und sendet Antworten. Beispiele: Apache, Nginx, IIS, Kestrel (A…“ |
imported>Import Version 182 |
||
| Zeile 2: | Zeile 2: | ||
---- | ---- | ||
== 1. Was ist HTTP? == | |||
HTTP (Hypertext Transfer Protocol) ist das grundlegende Protokoll für die Kommunikation im Web. Es arbeitet nach dem Client-Server-Modell: Ein Client (z.B. Browser) sendet eine Anfrage, der Server antwortet mit Ressourcen oder Fehlermeldungen. HTTP ist zustandslos – jeder Request ist unabhängig. | HTTP (Hypertext Transfer Protocol) ist das grundlegende Protokoll für die Kommunikation im Web. Es arbeitet nach dem Client-Server-Modell: Ein Client (z.B. Browser) sendet eine Anfrage, der Server antwortet mit Ressourcen oder Fehlermeldungen. HTTP ist zustandslos – jeder Request ist unabhängig. | ||
== 2. HTTP-Server und Kestrel == | == 2. HTTP-Server und Kestrel == | ||
Ein HTTP-Server verarbeitet Anfragen und sendet Antworten. Beispiele: Apache, Nginx, IIS, Kestrel (ASP.NET Core). Kestrel ist ein moderner, plattformübergreifender Webserver für ASP.NET Core. | Ein HTTP-Server verarbeitet Anfragen und sendet Antworten. Beispiele: Apache, Nginx, IIS, Kestrel (ASP.NET Core). Kestrel ist ein moderner, plattformübergreifender Webserver für ASP.NET Core. | ||
== 3. Ablauf einer HTTP-Anfrage in ASP.NET Core == | == 3. Ablauf einer HTTP-Anfrage in ASP.NET Core == | ||
# Client sendet HTTP-Anfrage. | # Client sendet HTTP-Anfrage. | ||
# Kestrel empfängt die Anfrage und leitet sie durch die Middleware-Pipeline. | # Kestrel empfängt die Anfrage und leitet sie durch die Middleware-Pipeline. | ||
| Zeile 17: | Zeile 19: | ||
== 4. HTTP-Requests und -Responses == | == 4. HTTP-Requests und -Responses == | ||
* '''Request:''' Enthält Methode (GET, POST, etc.), URI, Version, Header und optional einen Body. | * '''Request:''' Enthält Methode (GET, POST, etc.), URI, Version, Header und optional einen Body. | ||
* '''Response:''' Enthält Version, Statuscode, Header und optional einen Body. | * '''Response:''' Enthält Version, Statuscode, Header und optional einen Body. | ||
=== Beispiel für eine HTTP-Response === | === Beispiel für eine HTTP-Response === | ||
<pre> | |||
HTTP/1.1 200 OK | <pre>HTTP/1.1 200 OK | ||
Content-Type: text/html | Content-Type: text/html | ||
Content-Length: 137 | Content-Length: 137 | ||
<html> | |||
<body> | |||
<h1>Hello, World!</h1> | |||
</body> | |||
</html></pre> | |||
</pre> | == 5. Wichtige Statuscodes == | ||
* 200 OK: Erfolg | * 200 OK: Erfolg | ||
* 201 Created: Ressource erstellt | * 201 Created: Ressource erstellt | ||
| Zeile 41: | Zeile 43: | ||
== 6. Header und Statuscodes in ASP.NET Core setzen == | == 6. Header und Statuscodes in ASP.NET Core setzen == | ||
<syntaxhighlight lang="csharp"> | |||
var builder = WebApplication.CreateBuilder(args); | <syntaxhighlight lang="csharp">var builder = WebApplication.CreateBuilder(args); | ||
var app = builder.Build(); | var app = builder.Build(); | ||
| Zeile 52: | Zeile 54: | ||
}); | }); | ||
app.Run(); | app.Run();</syntaxhighlight> | ||
</syntaxhighlight> | == 7. Zugriff auf Request-Informationen == | ||
<syntaxhighlight lang="csharp">app.Run(async (HttpContext context) => | |||
<syntaxhighlight lang="csharp"> | |||
app.Run(async (HttpContext context) => | |||
{ | { | ||
string path = context.Request.Path; | string path = context.Request.Path; | ||
| Zeile 63: | Zeile 63: | ||
context.Response.Headers["Content-Type"] = "text/html"; | context.Response.Headers["Content-Type"] = "text/html"; | ||
await context.Response.WriteAsync($"<p>{path}</p><p>{method}</p>"); | await context.Response.WriteAsync($"<p>{path}</p><p>{method}</p>"); | ||
}); | });</syntaxhighlight> | ||
</syntaxhighlight> | == 8. GET vs. POST == | ||
* '''GET:''' Daten abfragen, Parameter in der URL, idempotent, cachbar. | * '''GET:''' Daten abfragen, Parameter in der URL, idempotent, cachbar. | ||
* '''POST:''' Daten senden, Parameter im Body, nicht idempotent, nicht cachbar. | * '''POST:''' Daten senden, Parameter im Body, nicht idempotent, nicht cachbar. | ||
== 9. Testen mit Postman == | == 9. Testen mit Postman == | ||
Postman ist ein Tool zum Testen von HTTP-Anfragen. Damit können Sie Ihre ASP.NET Core Endpunkte einfach testen und die Antworten analysieren. | Postman ist ein Tool zum Testen von HTTP-Anfragen. Damit können Sie Ihre ASP.NET Core Endpunkte einfach testen und die Antworten analysieren. | ||
== 10. Zusammenfassung == | == 10. Zusammenfassung == | ||
HTTP ist das Rückgrat des Webs. ASP.NET Core und Kestrel bieten eine moderne Plattform für Webanwendungen. Mit Middleware, Statuscodes und Headern können Sie flexibel auf Anfragen reagieren und Antworten gestalten. | HTTP ist das Rückgrat des Webs. ASP.NET Core und Kestrel bieten eine moderne Plattform für Webanwendungen. Mit Middleware, Statuscodes und Headern können Sie flexibel auf Anfragen reagieren und Antworten gestalten. | ||
== Weblinks == | |||
* https://learn.microsoft.com/de-de/aspnet/core/fundamentals/?view=aspnetcore-10.0&tabs=linux | |||
* https://developer.mozilla.org/de/docs/Web/HTTP/Guides/Overview | |||
---- | ---- | ||
''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).'' | ''Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).'' | ||
Version vom 15. Februar 2026, 23:36 Uhr
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
1. Was ist HTTP?
HTTP (Hypertext Transfer Protocol) ist das grundlegende Protokoll für die Kommunikation im Web. Es arbeitet nach dem Client-Server-Modell: Ein Client (z.B. Browser) sendet eine Anfrage, der Server antwortet mit Ressourcen oder Fehlermeldungen. HTTP ist zustandslos – jeder Request ist unabhängig.
2. HTTP-Server und Kestrel
Ein HTTP-Server verarbeitet Anfragen und sendet Antworten. Beispiele: Apache, Nginx, IIS, Kestrel (ASP.NET Core). Kestrel ist ein moderner, plattformübergreifender Webserver für ASP.NET Core.
3. Ablauf einer HTTP-Anfrage in ASP.NET Core
- Client sendet HTTP-Anfrage.
- Kestrel empfängt die Anfrage und leitet sie durch die Middleware-Pipeline.
- Middleware verarbeitet die Anfrage und gibt sie an die Anwendung weiter.
- Die Anwendung generiert eine Antwort.
- Kestrel sendet die Antwort zurück an den Client.
4. HTTP-Requests und -Responses
- Request: Enthält Methode (GET, POST, etc.), URI, Version, Header und optional einen Body.
- Response: Enthält Version, Statuscode, Header und optional einen Body.
Beispiel für eine HTTP-Response
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 137 <html> <body> <h1>Hello, World!</h1> </body> </html>
5. Wichtige Statuscodes
- 200 OK: Erfolg
- 201 Created: Ressource erstellt
- 400 Bad Request: Syntaxfehler
- 401 Unauthorized: Authentifizierung nötig
- 404 Not Found: Ressource nicht gefunden
- 500 Internal Server Error: Serverfehler
6. Header und Statuscodes in ASP.NET Core setzen
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.Run(async (HttpContext context) =>
{
context.Response.Headers["Content-Type"] = "text/html";
context.Response.StatusCode = 200;
await context.Response.WriteAsync("<h1>Hello</h1><h2>World</h2>");
});
app.Run();
7. Zugriff auf Request-Informationen
app.Run(async (HttpContext context) =>
{
string path = context.Request.Path;
string method = context.Request.Method;
context.Response.Headers["Content-Type"] = "text/html";
await context.Response.WriteAsync($"<p>{path}</p><p>{method}</p>");
});
8. GET vs. POST
- GET: Daten abfragen, Parameter in der URL, idempotent, cachbar.
- POST: Daten senden, Parameter im Body, nicht idempotent, nicht cachbar.
9. Testen mit Postman
Postman ist ein Tool zum Testen von HTTP-Anfragen. Damit können Sie Ihre ASP.NET Core Endpunkte einfach testen und die Antworten analysieren.
10. Zusammenfassung
HTTP ist das Rückgrat des Webs. ASP.NET Core und Kestrel bieten eine moderne Plattform für Webanwendungen. Mit Middleware, Statuscodes und Headern können Sie flexibel auf Anfragen reagieren und Antworten gestalten.
Weblinks
- https://learn.microsoft.com/de-de/aspnet/core/fundamentals/?view=aspnetcore-10.0&tabs=linux
- https://developer.mozilla.org/de/docs/Web/HTTP/Guides/Overview
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).