HTTP-támogatás a .NET-ben
A Hypertext Transfer Protocol (vagy HTTP) egy protokoll, amely erőforrásokat kér le egy webkiszolgálóról. Az System.Net.Http.HttpClient osztály lehetővé teszi HTTP-kérések küldését és HTTP-válaszok fogadását egy URI által azonosított erőforrásból. A weben számos erőforrástípus érhető el, a HTTP pedig az erőforrások elérésére szolgáló kérési módszerek készletét határozza meg.
HTTP-kérési metódusok
A kérelemmetelyeket számos tényező különbözteti meg, először az ige , de a következő jellemzők is:
- A kérelemmetódus idempotens , ha az eredmény módosítása nélkül többször is sikeresen feldolgozható. További információ: RFC 9110: 9.2.2. Idempotens metódusok.
- A kérelemmetódus akkor gyorsítótárazható , ha a megfelelő válasz újrafelhasználható. További információ: RFC 9110: 9.2.3. szakasz. Metódusok és gyorsítótárazás.
- A kérelemmetódus akkor tekinthető biztonságos metódusnak, ha nem módosítja egy erőforrás állapotát. Minden biztonságos módszeridempotens is, de nem minden idempotens módszer tekinthető biztonságosnak. További információ: RFC 9110: 9.2.1. szakasz. Széf metódusok.
HTTP method | Idempotens | Gyorsítótárazható | Biztonságos |
---|---|---|---|
GET |
✔️ Igen | ✔️ Igen | ✔️ Igen |
POST |
❌ Nem | ⚠️ †Rarely | ❌ Nem |
PUT |
✔️ Igen | ❌ Nem | ❌ Nem |
PATCH |
❌ Nem | ❌ Nem | ❌ Nem |
DELETE |
✔️ Igen | ❌ Nem | ❌ Nem |
HEAD |
✔️ Igen | ✔️ Igen | ✔️ Igen |
OPTIONS |
✔️ Igen | ❌ Nem | ✔️ Igen |
TRACE |
✔️ Igen | ❌ Nem | ✔️ Igen |
CONNECT |
❌ Nem | ❌ Nem | ❌ Nem |
†A
POST
metódus csak akkor gyorsítótárazható, ha a megfelelőCache-Control
vagyExpires
válaszfejlécek vannak jelen. Ez a gyakorlatban nagyon ritka.
HTTP-állapotkódok
A .NET átfogó támogatást nyújt a HTTP protokollhoz, amely a legtöbb internetes forgalmat bonyolítja a HttpClient. További információ: HTTP-kérések készítése a HttpClient-osztálysal. Az alkalmazások http protokollhibákat kapnak egy HttpRequestException. A HTTP-állapotkódokat a rendszer be- vagy bejelenti HttpResponseMessageHttpRequestExceptionHttpResponseMessage.StatusCode abban az HttpRequestException.StatusCode esetben, ha a hívott metódus nem ad vissza válaszüzenetet. A hibakezeléssel kapcsolatos további információkért lásd a HTTP-hibakezelést, és az állapotkódokkal kapcsolatos további információkat az RFC 9110 HTTP Szemantikája: Állapotkódok című témakörben talál.
Információs állapotkódok
Az információs állapotkódok köztes választ tükröznek. A köztes válaszok többségét például HttpStatusCode.Continuebelsőleg HttpClient kezelik, és soha nem kerülnek felszínre a felhasználó számára.
HTTP-állapotkód | HttpStatusCode |
---|---|
100 |
HttpStatusCode.Continue |
101 |
HttpStatusCode.SwitchingProtocols |
102 |
HttpStatusCode.Processing |
103 |
HttpStatusCode.EarlyHints |
Sikeres állapotkódok
A sikeres állapotkódok azt jelzik, hogy az ügyfél kérését sikeresen fogadták, megértették és elfogadták.
HTTP-állapotkód | 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 |
Átirányítási állapotkódok
Az átirányítási állapotkódok megkövetelik, hogy a felhasználói ügynök műveletet hajt végre a kérés teljesítéséhez. Az automatikus átirányítás alapértelmezés szerint be van kapcsolva, és módosítható a következővel HttpClientHandler.AllowAutoRedirect : vagy SocketsHttpHandler.AllowAutoRedirect.
HTTP-állapotkód | HttpStatusCode |
---|---|
300 |
HttpStatusCode.MultipleChoices vagy HttpStatusCode.Ambiguous |
301 |
HttpStatusCode.MovedPermanently vagy HttpStatusCode.Moved |
302 |
HttpStatusCode.Found vagy HttpStatusCode.Redirect |
303 |
HttpStatusCode.SeeOther vagy HttpStatusCode.RedirectMethod |
304 |
HttpStatusCode.NotModified |
305 |
HttpStatusCode.UseProxy |
306 |
HttpStatusCode.Unused |
307 |
HttpStatusCode.TemporaryRedirect vagy HttpStatusCode.RedirectKeepVerb |
308 |
HttpStatusCode.PermanentRedirect |
Ügyfél hibaállapot-kódjai
Az ügyfél hibaállapot-kódjai azt jelzik, hogy az ügyfél kérése érvénytelen volt.
Kiszolgálói hibaállapot-kódok
A kiszolgáló hibaállapotkódjai azt jelzik, hogy a kiszolgáló váratlan feltételt észlelt, amely megakadályozta a kérés teljesítését.