.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:

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 uygun Cache-Control veya Expires 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.

HTTP durum kodu HttpStatusCode
400 HttpStatusCode.BadRequest
401 HttpStatusCode.Unauthorized
402 HttpStatusCode.PaymentRequired
403 HttpStatusCode.Forbidden
404 HttpStatusCode.NotFound
405 HttpStatusCode.MethodNotAllowed
406 HttpStatusCode.NotAcceptable
407 HttpStatusCode.ProxyAuthenticationRequired
408 HttpStatusCode.RequestTimeout
409 HttpStatusCode.Conflict
410 HttpStatusCode.Gone
411 HttpStatusCode.LengthRequired
412 HttpStatusCode.PreconditionFailed
413 HttpStatusCode.RequestEntityTooLarge
414 HttpStatusCode.RequestUriTooLong
415 HttpStatusCode.UnsupportedMediaType
416 HttpStatusCode.RequestedRangeNotSatisfiable
417 HttpStatusCode.ExpectationFailed
418 Ben bir çaydanlıkım 🫖.
421 HttpStatusCode.MisdirectedRequest
422 HttpStatusCode.UnprocessableEntity
423 HttpStatusCode.Locked
424 HttpStatusCode.FailedDependency
426 HttpStatusCode.UpgradeRequired
428 HttpStatusCode.PreconditionRequired
429 HttpStatusCode.TooManyRequests
431 HttpStatusCode.RequestHeaderFieldsTooLarge
451 HttpStatusCode.UnavailableForLegalReasons

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.

HTTP durum kodu HttpStatusCode
500 HttpStatusCode.InternalServerError
501 HttpStatusCode.NotImplemented
502 HttpStatusCode.BadGateway
503 HttpStatusCode.ServiceUnavailable
504 HttpStatusCode.GatewayTimeout
505 HttpStatusCode.HttpVersionNotSupported
506 HttpStatusCode.VariantAlsoNegotiates
507 HttpStatusCode.InsufficientStorage
508 HttpStatusCode.LoopDetected
510 HttpStatusCode.NotExtended
511 HttpStatusCode.NetworkAuthenticationRequired

Ayrıca bkz.