Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Hypertext Transfer Protocol (eller HTTP) är ett protokoll för att begära resurser från en webbserver. Klassen System.Net.Http.HttpClient gör det möjligt att skicka HTTP-begäranden och ta emot HTTP-svar från en resurs som identifieras av en URI. Många typer av resurser är tillgängliga på webben och HTTP definierar en uppsättning metoder för att begära åtkomst till dessa resurser.
HTTP-begärandemetoder
Begärandemetoderna särskiljs via flera faktorer, först av deras verb men också av följande egenskaper:
- En begärandemetod är idempotent om den kan bearbetas flera gånger utan att resultatet ändras. Mer information finns i RFC 9110: 9.2.2. Idempotenta metoder.
- En begärandemetod kan cachelagras när motsvarande svar kan lagras för återanvändning. Mer information finns i RFC 9110: Avsnitt 9.2.3. Metoder och cachelagring.
- En begärandemetod anses vara en säker metod om den inte ändrar tillståndet för en resurs. Alla säkra metoder är också idempotenta, men inte alla idempotenta metoder anses säkra. Mer information finns i RFC 9110: Avsnitt 9.2.1. Säkra metoder.
HTTP-metod | Är idempotent | Är cachbar | Är säkert |
---|---|---|---|
GET |
✔️ Ja | ✔️ Ja | ✔️ Ja |
POST |
❌ Nej | ⚠️ †sällan | ❌ Nej |
PUT |
✔️ Ja | ❌ Nej | ❌ Nej |
PATCH |
❌ Nej | ❌ Nej | ❌ Nej |
DELETE |
✔️ Ja | ❌ Nej | ❌ Nej |
HEAD |
✔️ Ja | ✔️ Ja | ✔️ Ja |
OPTIONS |
✔️ Ja | ❌ Nej | ✔️ Ja |
TRACE |
✔️ Ja | ❌ Nej | ✔️ Ja |
CONNECT |
❌ Nej | ❌ Nej | ❌ Nej |
†Metoden
POST
kan endast cachelagras när lämpligaCache-Control
- ellerExpires
-svarshuvuden är närvarande. Detta är mycket ovanligt i praktiken.
HTTP-statuskoder
.NET ger omfattande stöd för HTTP-protokollet, som står för de flesta internettrafik, med HttpClient. Mer information finns i Göra HTTP-begäranden med klassen HttpClient. Program får HTTP-protokollfel genom att fånga en HttpRequestException. HTTP-statuskoder rapporteras antingen i HttpResponseMessage med HttpResponseMessage.StatusCode eller i HttpRequestException med HttpRequestException.StatusCode om den anropade metoden inte returnerar ett svarsmeddelande. Mer information om felhantering finns i HTTP-felhanteringoch mer information om statuskoder finns i RFC 9110, HTTP Semantics: Statuskoder.
Informationsstatuskoder
Informationsstatuskoderna återspeglar ett interimsvar. De flesta interimsvar, till exempel HttpStatusCode.Continue, hanteras internt med HttpClient och visas aldrig för användaren.
HTTP-statuskod | HttpStatusCode |
---|---|
100 |
HttpStatusCode.Continue |
101 |
HttpStatusCode.SwitchingProtocols |
102 |
HttpStatusCode.Processing |
103 |
HttpStatusCode.EarlyHints |
Lyckade statuskoder
De lyckade statuskoderna anger att klientens begäran har tagits emot, förståtts och godkänts.
HTTP-statuskod | 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 |
Statuskoder för omdirigering
Omdirigeringsstatuskoder kräver att användaragenten vidtar åtgärder för att uppfylla begäran. Automatisk omdirigering är aktiverat som standard, det kan ändras med HttpClientHandler.AllowAutoRedirect eller SocketsHttpHandler.AllowAutoRedirect.
HTTP-statuskod | HttpStatusCode |
---|---|
300 |
HttpStatusCode.MultipleChoices eller HttpStatusCode.Ambiguous |
301 |
HttpStatusCode.MovedPermanently eller HttpStatusCode.Moved |
302 |
HttpStatusCode.Found eller HttpStatusCode.Redirect |
303 |
HttpStatusCode.SeeOther eller HttpStatusCode.RedirectMethod |
304 |
HttpStatusCode.NotModified |
305 |
HttpStatusCode.UseProxy |
306 |
HttpStatusCode.Unused |
307 |
HttpStatusCode.TemporaryRedirect eller HttpStatusCode.RedirectKeepVerb |
308 |
HttpStatusCode.PermanentRedirect |
Statuskoder för klientfel
Statuskoderna för klientfel anger att klientens begäran var ogiltig.
Statuskoder för serverfel
Statuskoderna för serverfel anger att servern påträffade ett oväntat villkor som hindrade den från att uppfylla begäran.