Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Birkaç özel durum dışında WinINet, WinHTTP'nin üst kümesidir. İkisi arasında seçim yaparken, kimliğe bürünme ve oturum yalıtımı gerektiren bir hizmet veya hizmet benzeri işlem içinde çalıştırmayı planlamadığınız sürece WinINetkullanmalısınız.
Özelliklerin karşılaştırması
| Özellik | WinINet | WinHTTP |
|---|---|---|
| kimlik bilgisi önbelleği . Windows Internet Explorer'daki tüm yerleşik uygulamaların kimlik bilgilerini otomatik olarak almasına izin verir. Ayrıca, Internet Explorer dışında çalışan bir uygulamanın sunucu kimlik bilgilerini yalnızca bir kez istemesine/belirtmesine olanak tanır. Bundan sonra istekler otomatiktir. | evet | Hayır |
| Kimlik bilgisi istemi. Çağıran kodun kullanıcıdan kimlik bilgileri istemesine olanak tanıyan bir API sağlar. | evet | Hayır |
| FTP | evet | Hayır |
| otomatik arama/RAS desteği . Bu eski işlevselliktir. Bunun yerine Uzaktan Erişim kullanın. | evet | Hayır |
| Bölgeleri. Internet Explorer güvenlik bölgeleriyle otomatik tümleştirme. | evet | Hayır |
| IDNA desteği. IDNA RFC/Punycode için tümleşik destek. | evet | evet |
| Çerez Deposu API'leri. Kalıcı ve kalıcı olmayan tanımlama bilgileri desteklenir. Herhangi bir uygulama veya betik, tarayıcıyla aynı tanımlama bilgilerini görebilmek için bunu kullanabilir. | evet | Hayır |
| Korumalı mod IE desteği | evet | Hayır |
| Dekompresyon desteği. gzip ve deflate sıkıştırma şeması desteği. | evet | evet |
| Parçalı yükleme desteği. İstemci kodu parçalama işlemini yapmalıdır. | Hayır | evet |
| SOCKS4 (SOCKS sürüm 4) desteği. v4a içermez. | evet | Hayır |
| SOCKS5 (SOCKS sürüm 5) desteği | Hayır | Hayır |
| çift yönlü gönderme ve alma | Hayır | Hayır |
| Çakışan G/Ç | Hayır | Hayır |
| Dosya şeması desteği. Dosya şeması kullanan proxy betikleri için kullanışlıdır. | evet | Hayır |
| InternetOpenUrl . URL'yi açmak için basitleştirilmiş kod. | evet | Hayır |
| Hizmet desteği. Bir hizmetten veya hizmet hesabından çalıştırılabilir. | Hayır | evet |
| Oturum yalıtımı. Ayrı oturumlar birbirini etkilemez. | Hayır | evet |
| Kimliğe bürünme. İş parçacığı farklı bir kullanıcının kimliğine bürünüyorken çağrılmasını destekler. | Hayır | evet |
İlgili konular
- WinINet
- WinHTTP
Hızlı karar kılavuzu
Doğru HTTP istemci yığınını seçmek için bu akış çizelgesini kullanın:
-
Kodunuz bir Windows hizmetinde mi, sistem işleminde mi yoksa kimliğe bürünme altında mı çalışıyor?
- Evet → WinHTTP kullanın.
-
Kodunuz kullanıcının İnternet Seçenekleri (IE) proxy ayarlarına, tanımlama bilgilerine veya kimlik bilgileri istemlerine ihtiyaç duyan bir masaüstü uygulaması mı?
- Evet → WinINet kullanın.
-
Modern bir C++ masaüstü mü yoksa UWP/WinUI uygulaması mı yazıyorsunuz?
- Evet → Windows.Web.Http kullanın (C++/WinRT, Windows.Web.Http ad alanı aracılığıyla).
-
.NET uygulaması mı yazıyorsun?
- Evet → System.Net.http.httpClient kullanın.
-
Platformlar arası uyumluluğa mı ihtiyacınız var?
- Evet → Libcurl veya benzer bir taşınabilir kitaplık kullanın.
Note
Ne zaman WinINet ne de WinHTTP kullanılmamalıdır — Yeni bir uygulama oluşturuyorsanız ve eski Win32 tümleştirmesi gerekmiyorsa, yukarıda listelenen modern alternatifleri tercih edin. Daha basit API'ler ve daha iyi eşzamansız destek sunarlar. Bazı alternatifler ek avantajlar da sunar: libcurl ve .NET HttpClient platformlar arasıdır; TLS 1.3 kullanılabilirliği, temel alınan TLS yığınına ve işletim sistemi yapılandırmasına bağlıdır. Win32 hizmet desteği, tarayıcı kimlik bilgisi paylaşımı veya derin ara sunucu tümleştirmesi gerektiren senaryolar için WinHTTP/WinINet'i ayırın.
Important
Güvenlik anımsatıcısı — Hangi HTTP yığınını seçerseniz seçin, üretimde TLS sertifika doğrulamayı hiçbir zaman devre dışı bırakmayın. Hem WinHTTP hem de WinINet, bayraklarla sertifika hatalarının yok sayılmasına izin verir, ancak bunu yapmak uygulamanızı araya giren adam saldırılarına maruz bırakır.