Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hypertext Transfer Protocol (oder HTTP) ist ein Protokoll zum Anfordern von Ressourcen von einem Webserver. Die System.Net.Http.HttpClient Klasse macht die Möglichkeit verfügbar, HTTP-Anforderungen zu senden und HTTP-Antworten von einer Ressource zu empfangen, die durch einen URI identifiziert wird. Viele Arten von Ressourcen sind im Web verfügbar, und HTTP definiert eine Reihe von Anforderungsmethoden für den Zugriff auf diese Ressourcen.
HTTP-Anforderungsmethoden
Die Anforderungsmethoden werden durch mehrere Faktoren unterschieden, zuerst durch ihr Verb , aber auch durch die folgenden Merkmale:
- Eine Anforderungsmethode ist idempotent , wenn sie mehrmals erfolgreich verarbeitet werden kann, ohne das Ergebnis zu ändern. Weitere Informationen finden Sie unter RFC 9110: 9.2.2. Idempotent-Methoden.
- Eine Anforderungsmethode ist cache-fähig, wenn ihre entsprechende Antwort zur Wiederverwendung gespeichert werden kann. Weitere Informationen finden Sie unter RFC 9110: Section 9.2.3. Methoden und Zwischenspeichern.
- Eine Anforderungsmethode wird als sichere Methode betrachtet, wenn sie den Status einer Ressource nicht ändert. Alle sicheren Methoden sind auch idempotent, aber nicht alle idempotenten Methoden gelten als sicher. Weitere Informationen finden Sie unter RFC 9110: Section 9.2.1. Sichere Methoden.
HTTP-Methode | Ist idempotent | Ist zwischenspeicherbar | Ist sicher |
---|---|---|---|
GET |
✔️ Ja | ✔️ Ja | ✔️ Ja |
POST |
❌ Nein | ⚠– † Selten | ❌ Nein |
PUT |
✔️ Ja | ❌ Nein | ❌ Nein |
PATCH |
❌ Nein | ❌ Nein | ❌ Nein |
DELETE |
✔️ Ja | ❌ Nein | ❌ Nein |
HEAD |
✔️ Ja | ✔️ Ja | ✔️ Ja |
OPTIONS |
✔️ Ja | ❌ Nein | ✔️ Ja |
TRACE |
✔️ Ja | ❌ Nein | ✔️ Ja |
CONNECT |
❌ Nein | ❌ Nein | ❌ Nein |
†Die
POST
Methode kann nur zwischengespeichert werden, wenn die entsprechendenCache-Control
OderExpires
Antwortheader vorhanden sind. Dies ist in der Praxis sehr ungewöhnlich.
HTTP-Statuscodes
.NET bietet umfassende Unterstützung für das HTTP-Protokoll, das den meisten Internetverkehr ausmacht, mit dem HttpClient. Weitere Informationen finden Sie unter Http-Anforderungen mit der HttpClient-Klasse. Anwendungen empfangen HTTP-Protokollfehler durch das Abfangen von HttpRequestException. HTTP-Statuscodes werden entweder mit HttpResponseMessage zusammen mit HttpResponseMessage.StatusCode oder mit HttpRequestException zusammen mit HttpRequestException.StatusCode gemeldet, wenn die aufgerufene Methode keine Antwortnachricht zurückgibt. Weitere Informationen zur Fehlerbehandlung finden Sie unter HTTP-Fehlerbehandlung und weitere Informationen zu Statuscodes, siehe RFC 9110, HTTP-Semantik: Statuscodes.
Statuscodes für Informationen
Die Statuscodes für Informationen spiegeln eine Zwischenantwort wider. Die meisten Zwischenantworten, wie zum Beispiel HttpStatusCode.Continue, werden intern mit HttpClient behandelt und dem Benutzer niemals angezeigt.
HTTP-Statuscode | HttpStatusCode |
---|---|
100 |
HttpStatusCode.Continue |
101 |
HttpStatusCode.SwitchingProtocols |
102 |
HttpStatusCode.Processing |
103 |
HttpStatusCode.EarlyHints |
Erfolgreiche Statuscodes
Die erfolgreichen Statuscodes geben an, dass die Anforderung des Clients erfolgreich empfangen, verstanden und akzeptiert wurde.
HTTP-Statuscode | HttpStatusCode |
---|---|
200 |
HttpStatusCode.OK |
201 |
HttpStatusCode.Created |
202 |
HttpStatusCode.Accepted |
203 |
HttpStatusCode.NonAuthoritativeInformation |
204 |
HttpStatusCode.NoContent |
205 |
HttpStatusCode.ResetContent |
206 |
HttpStatusCode.PartialContent |
207 |
HttpStatusCode.MultiStatus |
208 |
HttpStatusCode.AlreadyReported |
226 |
HttpStatusCode.IMUsed |
HTTP-Statuscodes für Umleitungen
Umleitungsstatuscodes erfordern, dass der Benutzer-Agent Maßnahmen ergreifen muss, um die Anforderung zu erfüllen. Die automatische Umleitung ist standardmäßig aktiviert, kann mit HttpClientHandler.AllowAutoRedirect oder SocketsHttpHandler.AllowAutoRedirectgeändert werden.
HTTP-Statuscode | HttpStatusCode |
---|---|
300 |
HttpStatusCode.MultipleChoices oder HttpStatusCode.Ambiguous |
301 |
HttpStatusCode.MovedPermanently oder HttpStatusCode.Moved |
302 |
HttpStatusCode.Found oder HttpStatusCode.Redirect |
303 |
HttpStatusCode.SeeOther oder HttpStatusCode.RedirectMethod |
304 |
HttpStatusCode.NotModified |
305 |
HttpStatusCode.UseProxy |
306 |
HttpStatusCode.Unused |
307 |
HttpStatusCode.TemporaryRedirect oder HttpStatusCode.RedirectKeepVerb |
308 |
HttpStatusCode.PermanentRedirect |
Clientfehlerstatuscodes
Die Clientfehlerstatuscodes deuten darauf hin, dass die Anforderung des Clients ungültig war.
Serverfehlerstatuscodes
Die Serverfehlerstatuscodes deuten darauf hin, dass auf dem Server eine unerwartete Bedingung aufgetreten ist, die verhindert hat, dass sie die Anforderung erfüllt.