<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://logicwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Accept-Encoding%3A_gzip</id>
		<title>Accept-Encoding: gzip - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://logicwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=Accept-Encoding%3A_gzip"/>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Accept-Encoding:_gzip&amp;action=history"/>
		<updated>2026-08-18T07:05:05Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Accept-Encoding:_gzip&amp;diff=233&amp;oldid=prev</id>
		<title>Dt1nh6: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Accept-Encoding:_gzip&amp;diff=233&amp;oldid=prev"/>
				<updated>2016-05-09T13:27:26Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:27, 9 May 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Dt1nh6</name></author>	</entry>

	<entry>
		<id>https://logicwiki.co.uk/index.php?title=Accept-Encoding:_gzip&amp;diff=232&amp;oldid=prev</id>
		<title>Macrop at 11:38, 16 December 2014</title>
		<link rel="alternate" type="text/html" href="https://logicwiki.co.uk/index.php?title=Accept-Encoding:_gzip&amp;diff=232&amp;oldid=prev"/>
				<updated>2014-12-16T11:38:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:ASP.NET]]&lt;br /&gt;
[[Category:HTML]]&lt;br /&gt;
[[Category:IIS]]&lt;br /&gt;
[[Category:Web Services]]&lt;br /&gt;
&lt;br /&gt;
== 1st approach - Web.Config == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;system.webServer&amp;gt;&lt;br /&gt;
  &amp;lt;httpCompression directory=&amp;quot;%SystemDrive%inetpubtempIIS Temporary Compressed Files&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scheme name=&amp;quot;gzip&amp;quot; dll=&amp;quot;%Windir%system32inetsrvgzip.dll&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;dynamicTypes&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;text/*&amp;quot; enabled=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;message/*&amp;quot; enabled=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;application/javascript&amp;quot; enabled=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;*/*&amp;quot; enabled=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/dynamicTypes&amp;gt;&lt;br /&gt;
    &amp;lt;staticTypes&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;text/*&amp;quot; enabled=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;message/*&amp;quot; enabled=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;application/javascript&amp;quot; enabled=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;add mimeType=&amp;quot;*/*&amp;quot; enabled=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/staticTypes&amp;gt;&lt;br /&gt;
  &amp;lt;/httpCompression&amp;gt;&lt;br /&gt;
  &amp;lt;urlCompression doStaticCompression=&amp;quot;true&amp;quot; doDynamicCompression=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/system.webServer&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2nd approach - In Application ==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:c-sharp&amp;quot;&amp;gt;&lt;br /&gt;
 void Application_PreRequestHandlerExecute(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        HttpApplication app = sender as HttpApplication;&lt;br /&gt;
        string acceptEncoding = app.Request.Headers[&amp;quot;Accept-Encoding&amp;quot;];&lt;br /&gt;
        Stream prevUncompressedStream = app.Response.Filter;&lt;br /&gt;
&lt;br /&gt;
        if (!(app.Context.CurrentHandler is System.Web.UI.Page ||&lt;br /&gt;
            app.Context.CurrentHandler.GetType().Name == &amp;quot;SyncSessionlessHandler&amp;quot;) ||&lt;br /&gt;
            app.Request[&amp;quot;HTTP_X_MICROSOFTAJAX&amp;quot;] != null)&lt;br /&gt;
            return;&lt;br /&gt;
&lt;br /&gt;
        if (acceptEncoding == null || acceptEncoding.Length == 0)&lt;br /&gt;
            return;&lt;br /&gt;
&lt;br /&gt;
        acceptEncoding = acceptEncoding.ToLower();&lt;br /&gt;
&lt;br /&gt;
        if (acceptEncoding.Contains(&amp;quot;deflate&amp;quot;) || acceptEncoding == &amp;quot;*&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            // deflate&lt;br /&gt;
            app.Response.Filter = new DeflateStream(prevUncompressedStream,&lt;br /&gt;
                CompressionMode.Compress);&lt;br /&gt;
            app.Response.AppendHeader(&amp;quot;Content-Encoding&amp;quot;, &amp;quot;deflate&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        else if (acceptEncoding.Contains(&amp;quot;gzip&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
            // gzip&lt;br /&gt;
            app.Response.Filter = new GZipStream(prevUncompressedStream,&lt;br /&gt;
                CompressionMode.Compress);&lt;br /&gt;
            app.Response.AppendHeader(&amp;quot;Content-Encoding&amp;quot;, &amp;quot;gzip&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3rd approach - In Application (2) ==&lt;br /&gt;
We can also programmatically compress the ASP.NET http response, for example I want to transfer a large CSVfile to the client, a simple ASPX page named ReturnGzipPackage.aspx:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:c-sharp&amp;quot;&amp;gt;&lt;br /&gt;
protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
{&lt;br /&gt;
    Response.Headers.Add(&amp;quot;Content-Disposition&amp;quot;, &amp;quot;attachment; filename=IAmLarge.csv&amp;quot;);&lt;br /&gt;
    Response.ContentType = &amp;quot;text/csv&amp;quot;;&lt;br /&gt;
    Response.TransmitFile(&amp;quot;D:\\IAmLarge.csv&amp;quot;);&lt;br /&gt;
    Response.End();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the request was submitted by a client browser, browser will automatically decompress the Http package,  but in the Windows client application or Windows Service, we developers can also adopt gzip compression to save bandwidth, once received gzip Http package from the server, we can programmatically decompressing, I wrote a client console application to submit the Http request and receive/decompress the Http response package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:c-sharp&amp;quot;&amp;gt;&lt;br /&gt;
* Submit Http request to server with Accept-Encoding: gzip */&lt;br /&gt;
WebClient client = new WebClient();&lt;br /&gt;
// It is mandatory by the client, if this header information is not specified, &lt;br /&gt;
// server will return the original content type, in my case, it is: text/csv&lt;br /&gt;
//client.Headers.Add(&amp;quot;Accept-Encoding&amp;quot;, &amp;quot;gzip&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
using(Stream gzipData = client.OpenRead(&lt;br /&gt;
    &amp;quot;http://localhost/StudyASPNET/gzipHttp/ReturnGzipPackage.aspx&amp;quot;))&lt;br /&gt;
{&lt;br /&gt;
    WebHeaderCollection responseHeaders = client.ResponseHeaders;&lt;br /&gt;
&lt;br /&gt;
    using(GZipStream gzip = new GZipStream(gzipData, CompressionMode.Decompress))&lt;br /&gt;
    {&lt;br /&gt;
        using(StreamReader reader= new StreamReader(gzip))&lt;br /&gt;
        {&lt;br /&gt;
            String content = reader.ReadToEnd();&lt;br /&gt;
            File.WriteAllText(&amp;quot;D:\\Downloaded.csv&amp;quot;, content);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Macrop</name></author>	</entry>

	</feed>