Dukungan HTTP di .NET
Hypertext Transfer Protocol (atau HTTP) adalah protokol untuk meminta sumber daya dari server web. Kelas ini System.Net.Http.HttpClient memaparkan kemampuan untuk mengirim permintaan HTTP dan menerima respons HTTP dari sumber daya yang diidentifikasi oleh URI. Banyak jenis sumber daya yang tersedia di web, dan HTTP menentukan serangkaian metode permintaan untuk mengakses sumber daya ini.
Metode permintaan HTTP
Metode permintaan dibingkai melalui beberapa faktor, pertama dengan kata kerjanya tetapi juga dengan karakteristik berikut:
- Metode permintaan idempogen jika dapat berhasil diproses beberapa kali tanpa mengubah hasilnya. Untuk informasi selengkapnya, lihat RFC 9110: 9.2.2. Metode Idempotensi.
- Metode permintaan dapat di-cache ketika respons yang sesuai dapat disimpan untuk digunakan kembali. Untuk informasi selengkapnya, lihat RFC 9110: Bagian 9.2.3. Metode dan Penembolokan.
- Metode permintaan dianggap sebagai metode yang aman jika tidak mengubah status sumber daya. Semua metode yang aman juga idempotensi, tetapi tidak semua metode idempotensi dianggap aman. Untuk informasi selengkapnya, lihat RFC 9110: Bagian 9.2.1. metode Brankas.
Metode HTTP | Idempotensi | Dapat di-cache | Aman |
---|---|---|---|
GET |
✔️ Ya | ✔️ Ya | ✔️ Ya |
POST |
❌ Tidak | ⚠️ †Rarely | ❌ Tidak |
PUT |
✔️ Ya | ❌ Tidak | ❌ Tidak |
PATCH |
❌ Tidak | ❌ Tidak | ❌ Tidak |
DELETE |
✔️ Ya | ❌ Tidak | ❌ Tidak |
HEAD |
✔️ Ya | ✔️ Ya | ✔️ Ya |
OPTIONS |
✔️ Ya | ❌ Tidak | ✔️ Ya |
TRACE |
✔️ Ya | ❌ Tidak | ✔️ Ya |
CONNECT |
❌ Tidak | ❌ Tidak | ❌ Tidak |
† Metode
POST
ini hanya dapat di-cache ketika header yang sesuaiCache-Control
atauExpires
respons ada. Ini sangat jarang dalam praktiknya.
Kode status HTTP
.NET menyediakan dukungan komprehensif untuk protokol HTTP, yang memperkirakan sebagian besar lalu lintas internet, dengan HttpClient. Untuk informasi selengkapnya, lihat Membuat permintaan HTTP dengan kelas HttpClient. Aplikasi menerima kesalahan protokol HTTP dengan menangkap HttpRequestException. Kode status HTTP dilaporkan HttpResponseMessage dengan HttpResponseMessage.StatusCode atau dalam HttpRequestException jika HttpRequestException.StatusCode metode yang dipanggil tidak mengembalikan pesan respons. Untuk informasi selengkapnya tentang penanganan kesalahan, lihat Penanganan kesalahan HTTP, dan untuk informasi selengkapnya tentang kode status, lihat RFC 9110, HTTP Semantics: Kode Status.
Kode status informasi
Kode status informasi mencerminkan respons sementara. Sebagian besar respons sementara, misalnya HttpStatusCode.Continue, ditangani secara internal dengan HttpClient dan tidak pernah muncul kepada pengguna.
Kode status HTTP | HttpStatusCode |
---|---|
100 |
HttpStatusCode.Continue |
101 |
HttpStatusCode.SwitchingProtocols |
102 |
HttpStatusCode.Processing |
103 |
HttpStatusCode.EarlyHints |
Kode status berhasil
Kode status yang berhasil menunjukkan bahwa permintaan klien berhasil diterima, dipahami, dan diterima.
Kode status 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 |
Kode status pengalihan
Kode status pengalihan mengharuskan agen pengguna mengambil tindakan untuk memenuhi permintaan. Pengalihan otomatis diaktifkan secara default, dapat diubah dengan HttpClientHandler.AllowAutoRedirect atau SocketsHttpHandler.AllowAutoRedirect.
Kode status HTTP | HttpStatusCode |
---|---|
300 |
HttpStatusCode.MultipleChoices atau HttpStatusCode.Ambiguous |
301 |
HttpStatusCode.MovedPermanently atau HttpStatusCode.Moved |
302 |
HttpStatusCode.Found atau HttpStatusCode.Redirect |
303 |
HttpStatusCode.SeeOther atau HttpStatusCode.RedirectMethod |
304 |
HttpStatusCode.NotModified |
305 |
HttpStatusCode.UseProxy |
306 |
HttpStatusCode.Unused |
307 |
HttpStatusCode.TemporaryRedirect atau HttpStatusCode.RedirectKeepVerb |
308 |
HttpStatusCode.PermanentRedirect |
Kode status kesalahan klien
Kode status kesalahan klien menunjukkan bahwa permintaan klien tidak valid.
Kode status kesalahan server
Kode status kesalahan server menunjukkan bahwa server mengalami kondisi tak terduga yang mencegahnya memenuhi permintaan.