0

我已經按照所有文檔在我的.NET Core 2.0 Web API項目中設置ResponseCompression,但是我看不到傳輸大小的差異。下面是郵差前和後的結果使用:讓ResponseCompression在.NET Core 2.0 Web API中工作

壓縮前: https://i.stack.imgur.com/jAAuy.jpg

壓縮後: https://i.stack.imgur.com/HviP5.jpg

這裏是我的ConfigureServices方法在Startup.cs開頭:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddResponseCompression(options => 
    { 
     options.Providers.Add<GzipCompressionProvider>(); 
    }); 
    services.Configure<GzipCompressionProviderOptions>(options => 
    { 
     options.Level = CompressionLevel.Optimal; 
    }); 

這是我在Startup.cs中的配置方法:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
{ 
    app.UseResponseCompression(); 

    if (env.IsDevelopment()) 
    { 
     app.UseDeveloperExceptionPage(); 
    } 

    app.UseSwagger(); 
    app.UseSwaggerUI(c => 
    { 
     c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); 
    }); 

    app.UseMvc(); 
} 

這裏是我的VendorController我的獲取動作:

[HttpGet] 
public IActionResult Get() 
{ 
    var stuff = new Collection<string>(); 
    for (int i = 0; i < 100000; i++) 
    { 
     stuff.Add($"hello{i}"); 
    } 
    return Ok(stuff); 
} 

我不使用IIS,這裏是我的Program.cs:

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     BuildWebHost(args).Run(); 
    } 

    public static IWebHost BuildWebHost(string[] args) => 
     WebHost.CreateDefaultBuilder(args) 
      .UseStartup<Startup>() 
      .Build(); 
} 

任何幫助將非常感激。所有的文件都表示這應該會給我的轉移量帶來很大的差異。

回答

0

壓縮工程確定你的情況,你只是檢查它不太正確。

郵差向你顯示實際上非壓縮數據的大小。這很有意義,因爲郵差是一個使用HTTP協議運行的應用程序,它並不關心底層傳輸協議(如TCP)的大小。

查看實際響應大小的最簡單方法是使用Fiddler。您可以添加ResponseSize列在Miscellaneous集合之下的列,因爲它實際上不是HTTP響應的一部分。然後你會看到這樣的合成數據壓縮包的大小確實是小10倍以上,對於非壓縮:

enter image description here

+0

感謝您的答覆CodeFuller,這有助於一噸。我不熟悉Postman和Fiddler。那麼,我在Postman上看到的最終結果是什麼,因爲它已經被解壓縮了?是這樣的流程: 請求(http) - >響應(tcp) - >壓縮(tcp) - >未壓縮(tcp) - >響應(http)?有沒有一個網站或鏈接可以讓我更詳細地解釋TCP/HTTP發生了什麼? – stumpykilo

+0

壓縮是HTTP協議的一部分,因此底層傳輸協議(如TCP)不知道它。郵差向您顯示未壓縮數據的大小並不是因爲它接收到未壓縮數據,而是因爲它知道如何計算原始數據的大小。查看這些文章以開始:https://developer.mozilla.org/en-US/docs/Web/HTTP/Compression和https://betterexplained.com/articles/how-to-optimize-your-site-with -gzip壓縮/ – CodeFuller

相關問題