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

相关问题