.NET'te HTTP desteği
Köprü Metni Aktarım Protokolü (veya HTTP), bir web sunucusundan kaynak istemeye yönelik bir protokoldür. System.Net.Http.HttpClient sınıfı, 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 fiil ancak aynı zamanda aşağıdaki özelliklere göre çeşitli faktörlerle ayırt edilir:
- Bir istek yöntemi, sonucu değiştirmeden birden fazla kez başarıyla işlenebiliyorsa idempotent'dur. Daha fazla bilgi için bkz. RFC 9110: 9.2.2 .Idempotent Yöntemleri.
- Bir istek yöntemi önbelleğe alınabilen, karşılık gelen yanıtı yeniden kullanılmak üzere depolanabildiğinde olur. 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ştirmezsegüvenli bir yöntem olarak kabul edilir. tüm güvenli yöntemler de yöntemleri güvenli olarak kabul edilmez. Daha fazla bilgi için bkz. RFC 9110: Bölüm 9.2.1. Güvenli Yöntemler.
HTTP yöntemi | İdempotent mi? | Önbelleğe alınabilir | Güvenlidir |
---|---|---|---|
GET |
✔️ Evet | ✔️ Evet | ✔️ Evet |
POST |
❌ Hayır | ️ ⚠†Nadiren | ❌ 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 |
†
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 kodları
.NET, HttpClientile çoğu İnternet trafiğini hesaplayan 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. HTTP durum kodları, çağrılan yöntem bir yanıt iletisi döndürmediğinde ya HttpResponseMessage ile HttpResponseMessage.StatusCode ya da HttpRequestException ile HttpRequestException.StatusCode olarak bildirilir. Hata işleme hakkında daha fazla bilgi için bkz. http hata işlemeve 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. Geçici yanıtların çoğu, örneğin HttpStatusCode.Continue, HttpClient ile dahili olarak işlenir ve hiçbir zaman kullanıcıya sunulmaz.
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, HttpClientHandler.AllowAutoRedirect veya SocketsHttpHandler.AllowAutoRedirectile 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.
Ayrıca bkz.
- HttpClient sınıf ile HTTP istekleri yapma
- .NET ile HTTP istemci fabrikası
- HttpClient kullanmaya yönelik Yönergeleri
- .NET Ağ geliştirmeleri