Deflate metoduyla http kompres ekleme

En meşhur http kompres yani sıkıştırma metodu bildiğiniz gibi gzip. Ancak deflate methodu daha çok sıkıştırma yapabiliyor ve daha performanslı çalışabiliyor. Konu hakkında aşağıdaki makaleyi okuyabilirsiniz.

http://www.stardeveloper.com/articles/display.html?article=2008111201&page=1

Sitenize deflate kompres eklemek için global.asax dosyanıza (sitenizde yoksa ekleyin) aşağıdaki kodları ekleyin. Böylece ziyaretçinin browser’ı deflate methodunu kabul ediyorsa deflate, etmiyorsa gzip, onu da kabul etmiyorsa kompres etmeden sunucunuzdan gönderim yapılacaktır.

<%@ Application Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.IO.Compression" %>

<script runat="server">
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
	HttpApplication app = sender as HttpApplication;
	string acceptEncoding = app.Request.Headers["Accept-Encoding"];
	Stream prevUncompressedStream = app.Response.Filter;

	if (!(app.Context.CurrentHandler is Page ||
		app.Context.CurrentHandler.GetType().Name == "SyncSessionlessHandler") ||
		app.Request["HTTP_X_MICROSOFTAJAX"] != null)
		return;

	if (acceptEncoding == null || acceptEncoding.Length == 0)
		return;

	acceptEncoding = acceptEncoding.ToLower();

	if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
	{
		// deflate
		app.Response.Filter = new DeflateStream(prevUncompressedStream,
			CompressionMode.Compress);
		app.Response.AppendHeader("Content-Encoding", "deflate");
	} else if (acceptEncoding.Contains("gzip"))
	{
		// gzip
		app.Response.Filter = new GZipStream(prevUncompressedStream,
			CompressionMode.Compress);
		app.Response.AppendHeader("Content-Encoding", "gzip");
	}
}
</script>
Recommended Posts
Showing 5 comments
  • fethimadan
    Cevapla

    Elinize sağlık, öncelikle. WordPress’ de işe yarar mı bu kodlar acaba?

  • Rıza Sırman
    Cevapla

    Bunlar ASP.NET siteleri için. wordpress sitesi için gzippy eklentisi mevcut. yada cpanelden sıkıştırma modunu etkinleştirebilirsiniz.

  • selcuk
    Cevapla

    abi tamamda global asaxa mı yazıyoruz bunu

  • Rıza Sırman
    Cevapla

    Makaleyi okursanız zaten Global.Asax’a diye yazıyor.

  • okan demir
    Cevapla

    Klasik ASP için çalışan bir kod bulamadım bir türlü.. Klasik asp’ye uyarlanamaz bu kodlar dimi?

Leave a Comment


*