Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Protokol HTTP (Hypertext Transfer Protocol) je protokol pro vyžádání prostředků z webového serveru. Třída System.Net.Http.HttpClient zpřístupňuje schopnost odesílat požadavky HTTP a přijímat odpovědi HTTP z prostředku identifikovaného identifikátorem URI. Mnoho typů prostředků je k dispozici na webu a HTTP definuje sadu metod požadavků pro přístup k těmto prostředkům.
Metody požadavků HTTP
Metody žádosti jsou rozlišovány několika faktory, nejprve jejich slovesem, ale také následujícími vlastnostmi:
- Metoda požadavku je idempotentní, pokud může být úspěšně zpracována vícekrát beze změny výsledku. Další informace najdete v tématu RFC 9110: 9.2.2. Idempotentní metody.
- Metoda požadavku je cacheovatelná, když lze odpovídající odpověď uložit pro opakované použití. Další informace viz RFC 9110: Oddíl 9.2.3. Metody a ukládání do mezipaměti.
- Metoda požadavku se považuje za bezpečnou metodu, pokud nezmění stav prostředku. Všechny bezpečné metody jsou také idempotentní, ale ne všechny idempotentní metody jsou považovány za bezpečné. Další informace naleznete v tématu RFC 9110: Oddíl 9.2.1. Bezpečné metody.
Metoda HTTP | Je idempotentní | Je možné ukládat do mezipaměti | Je bezpečné |
---|---|---|---|
GET |
✔️ Ano | ✔️ Ano | ✔️ Ano |
POST |
❌ Ne | ⚠️ †zřídka | ❌ Ne |
PUT |
✔️ Ano | ❌ Ne | ❌ Ne |
PATCH |
❌ Ne | ❌ Ne | ❌ Ne |
DELETE |
✔️ Ano | ❌ Ne | ❌ Ne |
HEAD |
✔️ Ano | ✔️ Ano | ✔️ Ano |
OPTIONS |
✔️ Ano | ❌ Ne | ✔️ Ano |
TRACE |
✔️ Ano | ❌ Ne | ✔️ Ano |
CONNECT |
❌ Ne | ❌ Ne | ❌ Ne |
†Metoda
POST
je uložena do mezipaměti pouze v případě, že jsou k dispozici příslušné hlavičky odpovědiCache-Control
neboExpires
. To je v praxi velmi neobvyklé.
Stavové kódy HTTP
.NET poskytuje komplexní podporu pro protokol HTTP, který představuje většinu internetového provozu HttpClient. Další informace najdete v tématu Vytváření požadavků HTTP pomocí třídy HttpClient. Aplikace obdrží chyby protokolu HTTP zachycením HttpRequestException. Stavové kódy HTTP jsou buď oznámeny v HttpResponseMessage s HttpResponseMessage.StatusCode nebo v HttpRequestException s HttpRequestException.StatusCode v případě, že volaná metoda nevrátí odpověď. Další informace o zpracování chyb naleznete v tématu zpracování chyb HTTPa další informace o stavových kódech naleznete v tématu RFC 9110, sémantika HTTP: Stavové kódy.
Informační stavové kódy
Informační stavové kódy odrážejí dočasnou odpověď. Většina dočasných odpovědí, například HttpStatusCode.Continue, se zpracovává interně pomocí HttpClient a nikdy se uživateli nezobrazuje.
Stavový kód HTTP | HttpStatusCode |
---|---|
100 |
HttpStatusCode.Continue |
101 |
HttpStatusCode.SwitchingProtocols |
102 |
HttpStatusCode.Processing |
103 |
HttpStatusCode.EarlyHints |
Úspěšné stavové kódy
Úspěšné stavové kódy označují, že žádost klienta byla úspěšně přijata, pochopena a akceptována.
Stavový kód HTTP | 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 |
Stavové kódy přesměrování
Stavové kódy přesměrování vyžadují, aby uživatelský agent podnikl akci pro splnění požadavku. Automatické přesměrování je ve výchozím nastavení zapnuté, lze ho změnit pomocí HttpClientHandler.AllowAutoRedirect nebo SocketsHttpHandler.AllowAutoRedirect.
Stavový kód HTTP | HttpStatusCode |
---|---|
300 |
HttpStatusCode.MultipleChoices nebo HttpStatusCode.Ambiguous |
301 |
HttpStatusCode.MovedPermanently nebo HttpStatusCode.Moved |
302 |
HttpStatusCode.Found nebo HttpStatusCode.Redirect |
303 |
HttpStatusCode.SeeOther nebo HttpStatusCode.RedirectMethod |
304 |
HttpStatusCode.NotModified |
305 |
HttpStatusCode.UseProxy |
306 |
HttpStatusCode.Unused |
307 |
HttpStatusCode.TemporaryRedirect nebo HttpStatusCode.RedirectKeepVerb |
308 |
HttpStatusCode.PermanentRedirect |
Stavové kódy chyb klienta
Stavové kódy chyb klienta označují, že požadavek klienta je neplatný.
Stavové kódy chyb serveru
Stavové kódy chyb serveru označují, že server zjistil neočekávanou podmínku, která mu zabránila v plnění požadavku.