我有一個asp.net 4(C#)的網站。GZIP vs DEFLATE壓縮的優點是什麼?
我試圖找到一種方法來更好地爲我的網站優化帶寬。
我讀過很多文章,說GML的DEFLATE更快更小,因爲GZIP(基於DEFLATE)增加了一些額外的數據。
檢查bing.com和google.com的標題,似乎它們都發送GZIP編碼的數據。
假設我讀的是真的,我錯過了這種情況下GZIP的優勢。所以我懷疑應該有一個很好的理由來選擇GZIP來DEFLATE。
我的問題:
- 不GZIP提供了DEFLATE任何優勢,我不知道的?
- 任何線索爲什麼主要的搜索引擎使用GZIP?
下面是我用送放氣的密碼(Global.asax中):
protected 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 == "*")
{
// defalte
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");
}
}
參見http://stackoverflow.com/questions/388595/why-use-deflate-而不是gzip-for-text-files-served-by-apache –
感謝Paul的修改。 – GibboK
所有的答案都是錯誤/不完整的,除了這個:http://stackoverflow.com/a/9856879/632951 – Pacerier