Tentang WinHTTP

Catatan

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 Memindahkan 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, persistensi cookie, penembolokan, penanganan dialog kredensial otomatis, kompatibilitas Internet Explorer, atau dukungan platform tingkat bawah 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 . 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 utas memiliki panggilan yang tertunda ke salah satu fungsi WinHTTP seperti WinHttpSendRequest, WinHttpReceiveResponse, WinHttpQueryDataAvailable, WinHttpSendData, atau WinHttpWriteData, 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 diperingatkan secara internal, APC dapat berjalan. Jika rutinitas APC terjadi juga untuk memanggil WinHTTP, itu masuk kembali ke 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 hidup (persisten) dan cookie sesi.
  • Dukungan transfer terpotong 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 meliputi 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 Negosiasi/ Kerberos .
  • Penanganan pengalihan otomatis kecuali ditekan.
  • Antarmuka yang dapat ditulis selain API.
  • Lacak utilitas untuk membantu memecahkan masalah.

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

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

Memulai WinHTTP

Untuk informasi selengkapnya tentang WinHTTP, lihat topik berikut ini.