Bagikan melalui


Tentang WinHTTP

Nota

Untuk kontainer aplikasi dan layanan sistem sejak Windows 10, versi 1709, HTTP/2 (lihat RFC7540) aktif secara default.

Microsoft Windows HTTP Services (WinHTTP) memberi Anda antarmuka tingkat tinggi yang didukung server ke protokol Internet HTTP/2 dan 1.1. WinHTTP dirancang untuk digunakan terutama dalam skenario berbasis server oleh aplikasi server yang berkomunikasi dengan server HTTP.

WinINet dirancang sebagai platform klien HTTP untuk aplikasi desktop interaktif. WinINet menampilkan antarmuka pengguna untuk beberapa operasi seperti mengumpulkan kredensial pengguna. Namun, WinHTTP menangani operasi ini secara terprogram. Aplikasi server yang memerlukan layanan klien HTTP harus menggunakan WinHTTP alih-alih WinINet. Untuk informasi selengkapnya, lihat Porting Aplikasi WinINet ke WinHTTP.

WinHTTP juga dirancang untuk digunakan dalam layanan sistem dan aplikasi klien berbasis HTTP. Namun, aplikasi pengguna tunggal yang memerlukan fungsionalitas protokol FTP, penyimpanan cookie, cache, penanganan dialog kredensial otomatis, kompatibilitas dengan Internet Explorer, atau dukungan platform lama harus mempertimbangkan untuk menggunakan WinINet.

Antarmuka ini dapat diakses dari C/C++ dengan menggunakan antarmuka pemrograman aplikasi WinHTTP (API), atau dengan menggunakan antarmuka IWinHttpRequest dan IWinHttpRequestEvents antarmuka. WinHTTP juga dapat diakses dari skrip dan Microsoft Visual Basic melalui objek WinHTTP. Untuk informasi selengkapnya dan deskripsi fungsi individual, lihat referensi fungsi WinHTTP untuk bahasa tertentu.

Dimulai dengan Windows 8, WinHTTP menyediakan API untuk mengaktifkan koneksi menggunakan Protokol WebSocketl, seperti WinHttpWebSocketSend dan WinHttpWebSocketReceive.

Perhatian

WinHTTP tidak masuk kembali kecuali selama panggilan balik penyelesaian asinkron. Artinya, saat suatu utas memiliki panggilan yang tertunda ke salah satu fungsi WinHTTP seperti WinHttpSendRequest, WinHttpReceiveResponse, WinHttpQueryDataAvailable, WinHttpSendData, atau WinHttpWriteData, maka seharusnya tidak boleh memanggil WinHTTP untuk kedua kalinya sampai panggilan pertama selesai. Salah satu skenario di mana panggilan kedua dapat terjadi adalah sebagai berikut: Jika aplikasi mengantre Panggilan Prosedur Asinkron (APC) ke utas yang memanggil WinHTTP, dan jika WinHTTP melakukan tunggu yang dapat diingat secara internal, APC dapat berjalan. Jika rutinitas APC kebetulan memanggil WinHTTP, maka ini akan memasuki kembali WinHTTP API, dan status internal WinHTTP dapat rusak.

Fitur WinHTTP 5.1

Fitur berikut ditambahkan di WinHTTP versi 5.1:

  • Dukungan IPv6.
  • Kemampuan AutoProxy.
  • Protokol HTTP/1.0, termasuk dukungan untuk koneksi tetap aktif (persisten) dan cookie sesi.
  • Dukungan chunked transfer HTTP/1.1 untuk respons HTTP.
  • Kumpulan koneksi anonim tetap aktif di seluruh sesi.
  • Fungsionalitas Secure Sockets Layer (SSL), termasuk sertifikat klien. Protokol SSL yang didukung mencakup yang berikut ini: SSL 2.0, SSL 3.0, dan Transport Layer Security (TLS) 1.0.
  • Dukungan untuk autentikasi server dan proksi, termasuk dukungan terintegrasi untuk Microsoft Passport 1.4 dan paket Kerberos Negotiate.
  • Penanganan pengalihan otomatis kecuali ditunda.
  • Antarmuka yang dapat ditulis selain API.
  • Alat pelacak untuk membantu memecahkan masalah.

Sejumlah fitur WinINet tidak didukung di WinHTTP, termasuk penembolokan URL dan cookie persisten, autoproksi, autodialing, dukungan offline, dan Protokol Transfer File (FTP).

Untuk informasi selengkapnya tentang perubahan yang diperkenalkan dalam versi 5.1, lihat Apa yang Baru di WinHTTP 5.1.

Memulai dengan WinHTTP

Untuk informasi selengkapnya tentang WinHTTP, lihat topik berikut ini.