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.
HTTP protokolünde (RFC 2616) belirtildiği gibi uygulamalar, sunucunun HTTP yanıtlarını kodlanmış biçimde döndürmesini isteyebilir. Windows Server 2008 ve Windows Vista'nın öncesinde, içerik kodlaması olan istekler kendi düzeyinde işlenmek üzere uygulamaya gönderiliyordu. Windows Server 2008 ve Windows Vista'dan başlayarak uygulama, WinINet'i gzip için içerik kod çözme gerçekleştirmeye ve içerik kodlama düzenlerini kullanımdan kaldırmaya yönlendirebilir.
Uygulama, içerik kod çözmeyi etkinleştirmek için WinINet'in kendi adına kod çözme gerçekleştirmesini isteyen kod çözme seçeneğini ayarlar. Ancak, kod çözmenin etkinleştirilmesi, WinINet'in içerik kod çözme işlemini gerçekleştireceğini garanti etmez ve uygulamanın kod çözme işlemini işlemeye hazır olması gerekir. WinINet, içerik kod çözme işlemi başarıyla gerçekleştirildiğinde yanıttan içerik kodlama üst bilgisini kaldırır. Uygulamaların, yanıtta içerik kodlama üst bilgisi bulunduğunda kod çözme seçeneğinin etkin veya devre dışı olmasına bakılmaksızın içerik kod çözmeyi işlemesi beklenir.
Kod çözme etkinleştirildiğinde, uygulamanın isteğin Accept-Encoding üst bilgisinde desteklenen kodlamaların listesini belirtmesi gerekir. Ancak Accept-Encoding üst bilgisi, sunucuya kodlanmış yanıt gönderme zorunluluğu yoktur. WinINet, kabul edilebilir kodlamalar listesiyle eşleşmeyen yanıtları uygulamaya geri gönderir.
Aşağıdaki listede, seçenek etkinleştirildiğinde WinINet'in içerik kodunu çözme işlemini gerçekleştireceği koşullar açıklanmaktadır:
- Accept-Encoding üst bilgisi istekte yer almalıdır ve gzip, deflate veya hem gzip hem de deflate kodlama düzenlerini belirtmelidir.
- content-encoding üst bilgisinde belirtilen kodlama düzeni, Accept-Encoding üst bilgisinde belirtilen kodlama düzenlerinden biriyle eşleşmelidir.
- Yanıttaki Content-Encoding üst bilgisi yalnızca bir kodlama şeması belirtir.
- Yanıt yalnızca bir Content- Encoding üst bilgisi içermelidir. WinINet, yalnızca bir kodlama düzeniyle kodlanmış içeriğin kodunu çözer.
- Cache-Control üst bilgisi "no-transform" direktifini içermemelidir.
- İçerik Aralığı üst bilgisi yanıtta mevcut olmamalıdır.
Dekompresyon Seçeneğini Ayarlama
Kod çözme seçeneği oturum tutamacı, istek tutamacı veya bağlantı tutamacı üzerinde ayarlanabilir. Kod çözme seçeneğinin ayarlandığı tanıtıcı, kod çözme seçeneğinin kapsamını tanımlar. Örneğin, oturumda kod çözme ayarının ayarlanması, bu tanıtıcı altında oluşturulan tüm bağlantıların ve isteklerin kodunun çözülmesini sağlar.
Kod çözme seçeneğini ayarlamak için uygulama InternetSetOptioninternetopen, InternetConnectveya HttpOpenRequest'dan döndürülen tanıtıcıyla çağırır. INTERNET_OPTION_HTTP_DECODING seçeneği dwOption parametresinde belirtilir ve lpBuffer parametresi true olarak ayarlanmış bir boole değişkenini gösterir. Kod çözmeyi devre dışı bırakmak için, uygulama InternetSetOption işlevini, INTERNET_OPTION_HTTP_DECODING seçeneği ve boolean değişken false olarak ayarlanmış şekilde çağırır.
Kod çözme seçeneği ayarlandığında, uygulama internetreadfileçağırdığında WinINet istekte kod çözme gerçekleştirir. WinINet, içerik kod çözme işlemi gerçekleştirirken bir hatayla karşılaşırsa, internetreadfile çağrısı bir ERROR_INTERNET_DECODING_FAILEDile başarısız olur. Kod çözme başarısız olduğunda uygulamanın iki seçeneği vardır: Accept-Encoding üst bilgisini kaldırabilir ve isteği yeniden gönderebilir veya istekte INTERNET_OPTION_HTTP_DECODING seçeneğini false olarak ayarlayabilir ve sonra isteği yeniden gönderebilir. Kod çözme seçeneği false olarak ayarlanırsa, uygulamanın Content-Encoding üst bilgisini denetlemesi ve uygulama düzeyinde kod çözme gerçekleştirmesi gerekir.
Not
WinINet, sunucu uygulamalarını desteklemez. Ayrıca, bir hizmet üzerinden yapılmamalıdır. Sunucu uygulamaları veya hizmetleri için Microsoft Windows HTTP Services (WinHTTP)kullanın.