Yalnızca ASPX dosyanızı sıkıştırmasının nedeni, yazdığınız kodun yalnızca ASPX dosyasına gömülü olmasıdır. Bir ASPX dosyası, içerdiği herhangi bir bağlantılı içerikten ayrı bir istektir. Dolayısıyla, şunları içeren bir ASPX sayfanız varsa:
<img src="www.example.com\exampleimg.jpg" alt="example" />
Bu, tarayıcınızdan kaynaklara 2 istek (DNS aramaları) anlamına gelir:
- aspx sayfası için ve
- aspx sayfasının içerdiği görüntü için.
Her isteğin kendi yanıt buharı vardır. Gönderdiğiniz kod yalnızca ASPX yanıt akışına ekleniyor, bu nedenle yalnızca ASPX sayfanız sıkıştırılıyor. Gönderilen kodunuzun 1. ve 2. satırları, esasen sayfanın normal yanıt akışını devralır ve bu durumda normal çıkış akışını bir GZip akışı ile yiyip sıkıştıran ve bunun yerine kabloya gönderen bazı "orta adam" kodunu enjekte eder.
3. ve 4. satırlar yanıt başlıklarını ayarlıyor. Tüm http istekleri ve yanıtları, içerikten önce gönderilen başlıklara sahiptir. Bunlar, isteği / yanıtı ayarlar, böylece sunucu ve istemci neyin nasıl gönderildiğini bilir.
Bu durumda Satır 3, istemci tarayıcısına yanıt akışının gzip aracılığıyla sıkıştırıldığını ve bu nedenle görüntülenmeden önce istemci tarayıcısı tarafından sıkıştırmasının kaldırılması gerektiğini bildirmektedir.
Ve 4. Satır basitçe yanıtın Accept-Encoding başlığını açıyor. Aksi takdirde bu, yanıtta yer almazdı.
Yazabileceğiniz / edinebileceğiniz, * .js ve * .css gibi diğer MIME türlerini çok parçalı sıkıştırmanıza izin veren takılabilir modüller vardır, ancak yalnızca IIS'nin yerleşik sıkıştırma işlevini kullanmanız daha iyidir.
Hangi IIS versonunu kullandığınızı söylemediniz, ancak IIS 7.0 olsaydı, <system.webserver>
web.config dosyanızın bölümüne aşağıdakine benzer bir şey eklemeniz gerekir :
<httpCompression>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<staticTypes>
<add mimeType="text/*" enabled="true" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" />
..
Richard