HTTP-stöd i .NET
Hypertext Transfer Protocol (eller HTTP) är ett protokoll för att begära resurser från en webbserver. Klassen System.Net.Http.HttpClient visar möjligheten 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. Idempotent-metoder.
- En begärandemetod kan cachelagrats 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å idempotent, men inte alla idempotentmetoder anses vara säkra. Mer information finns i RFC 9110: Avsnitt 9.2.1. Valv metoder.
HTTP-metod | Är idempotent | Kan cachelagrats | Är säkert |
---|---|---|---|
GET |
✔️ Ja | ✔️ Ja | ✔️ Ja |
POST |
❌ Nej | ⚠️ †Rarely | ❌ 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 |
POST
†Metoden kan bara cachelagrats när lämpligaCache-Control
sidhuvuden ellerExpires
svarshuvuden finns. Detta är mycket ovanligt i praktiken.
HTTP-statuskoder
.NET ger omfattande stöd för HTTP-protokollet, som står för den största delen av Internettrafiken, med HttpClient. Mer information finns i Skapa 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 om HttpRequestException.StatusCode den anropade metoden inte returnerar ett svarsmeddelande. Mer information om felhantering finns i HTTP-felhantering och mer information om statuskoder finns i RFC 9110, HTTP-semantik: 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.