.NET'te HTTP desteği
Köprü Metni Aktarım Protokolü (veya HTTP), bir web sunucusundan kaynak istemeye yönelik bir protokoldür. sınıfı, System.Net.Http.HttpClient URI tarafından tanımlanan bir kaynaktan HTTP istekleri gönderme ve HTTP yanıtları alma özelliğini kullanıma sunar. Web'de birçok kaynak türü vardır ve HTTP bu kaynaklara erişmek için bir dizi istek yöntemi tanımlar.
HTTP isteği yöntemleri
İstek yöntemleri, önce fiillerine göre ama aynı zamanda aşağıdaki özelliklere göre çeşitli faktörlerle ayırt edilir:
- Bir istek yöntemi, sonucu değiştirmeden birden çok kez başarıyla işlenebiliyorsa bir kez etkili olur. Daha fazla bilgi için bkz . RFC 9110: 9.2.2. Idempotent Yöntemleri.
- bir istek yöntemi, karşılık gelen yanıtı yeniden kullanılmak üzere depolanabildiğinde önbelleğe alınır. Daha fazla bilgi için bkz. RFC 9110: Bölüm 9.2.3. Yöntemler ve Önbelleğe Alma.
- İstek yöntemi, kaynağın durumunu değiştirmezse güvenli bir yöntem olarak kabul edilir. Tüm güvenli yöntemler de aynı anda etkili olur, ancak tüm etkili yöntemler güvenli olarak kabul edilmez. Daha fazla bilgi için bkz. RFC 9110: Bölüm 9.2.1. Kasa Yöntemleri.
HTTP yöntemi | Bir kez etkili mi? | Önbelleğe alınabilir | Güvenlidir |
---|---|---|---|
GET |
✔️ Evet | ✔️ Evet | ✔️ Evet |
POST |
❌ Hayır | ⚠️ †Rely | ❌ Hayır |
PUT |
✔️ Evet | ❌ Hayır | ❌ Hayır |
PATCH |
❌ Hayır | ❌ Hayır | ❌ Hayır |
DELETE |
✔️ Evet | ❌ Hayır | ❌ Hayır |
HEAD |
✔️ Evet | ✔️ Evet | ✔️ Evet |
OPTIONS |
✔️ Evet | ❌ Hayır | ✔️ Evet |
TRACE |
✔️ Evet | ❌ Hayır | ✔️ Evet |
CONNECT |
❌ Hayır | ❌ Hayır | ❌ Hayır |
†The
POST
yöntemi yalnızca uygunCache-Control
veyaExpires
yanıt üst bilgileri mevcut olduğunda önbelleğe alınır. Bu pratikte çok nadirdir.
HTTP durum kodu
.NET, ile HttpClientİnternet trafiğinin çoğunu oluşturan HTTP protokolü için kapsamlı destek sağlar. Daha fazla bilgi için bkz . HttpClient sınıfıyla HTTP istekleri oluşturma. Uygulamalar bir HttpRequestExceptionyakalayarak HTTP protokolü hataları alır. ÇAĞRılan yöntemin yanıt iletisi döndürmemesi durumunda HTTP durum kodları ile veya içinde olarak bildirilir HttpResponseMessageHttpResponseMessage.StatusCode.HttpRequestException.StatusCodeHttpRequestException Hata işleme hakkında daha fazla bilgi için bkz . HTTP hata işleme ve durum kodları hakkında daha fazla bilgi için bkz . RFC 9110, HTTP Semantiği: Durum Kodları.
Bilgilendirme durum kodları
Bilgilendirme durum kodları bir ara yanıtı yansıtır. Örneğin HttpStatusCode.Continue, ara yanıtların çoğu ile HttpClient birlikte işlenir ve hiçbir zaman kullanıcıya ortaya çıkarılır.
HTTP durum kodu | HttpStatusCode |
---|---|
100 |
HttpStatusCode.Continue |
101 |
HttpStatusCode.SwitchingProtocols |
102 |
HttpStatusCode.Processing |
103 |
HttpStatusCode.EarlyHints |
Başarılı durum kodları
Başarılı durum kodları, istemcinin isteğinin başarıyla alındığını, anlaşıldığını ve kabul edildiğine işaret eder.
HTTP durum kodu | 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 |
Yeniden yönlendirme durum kodları
Yeniden yönlendirme durum kodları, kullanıcı aracısının isteği yerine getirmek için eylem gerçekleştirmesini gerektirir. Otomatik yeniden yönlendirme varsayılan olarak açıktır, veya SocketsHttpHandler.AllowAutoRedirectile HttpClientHandler.AllowAutoRedirect değiştirilebilir.
HTTP durum kodu | HttpStatusCode |
---|---|
300 |
HttpStatusCode.MultipleChoices veya HttpStatusCode.Ambiguous |
301 |
HttpStatusCode.MovedPermanently veya HttpStatusCode.Moved |
302 |
HttpStatusCode.Found veya HttpStatusCode.Redirect |
303 |
HttpStatusCode.SeeOther veya HttpStatusCode.RedirectMethod |
304 |
HttpStatusCode.NotModified |
305 |
HttpStatusCode.UseProxy |
306 |
HttpStatusCode.Unused |
307 |
HttpStatusCode.TemporaryRedirect veya HttpStatusCode.RedirectKeepVerb |
308 |
HttpStatusCode.PermanentRedirect |
İstemci hata durum kodları
İstemci hata durum kodları, istemcinin isteğinin geçersiz olduğunu gösterir.
Sunucu hata durum kodları
Sunucu hata durum kodları, sunucunun isteği karşılamasını engelleyen beklenmeyen bir koşulla karşılaştığını gösterir.