返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NET Core 文件响应压缩的常见使用误区
  • 750
分享到

ASP.NET Core 文件响应压缩的常见使用误区

2024-04-02 19:04:59 750人浏览 薄情痞子
摘要

目录误区1:未使用 Brotil 压缩误区2:使用 Fastest 级别的 Brotli 压缩误区3:使用 Optimal 级别的 Brotli 压缩误区1:未使用&nbs

误区1:未使用 Brotil 压缩

  几乎不需要任何额外的代价,Brotil 压缩算法可以帮助你的网站提升约 20% 静态资源加载性能。

  同时启用 Gzip / Brotil 压缩

  Gzip 有更好的 user-agent 兼容性,而 Brotli 有更好的性能。

  所以我们通常需要在 ASP.net core 网站中同时启用这两种压缩。

  如何区分 Gzip 压缩和 Brotli 压缩

  网站启用 Brotli 压缩时,服务器请求返回头 Content-Encoding 中会包含 br 字样,否则是 gzip。

误区2:使用 Fastest 级别的 Brotli 压缩

  如果你阅读并参考了微软官方文档或者其他中文资源,比如:

  ASP.net core 中的响应压缩 - MS Doc

  在ASP.Net Core中使用brotli压缩 - Cnblogs

  那么你可能会在代码中像下面这样使用压缩功能:

  写法1:使用默认的压缩行为(框架将隐式添加 Brotli 和 Gzip 功能)


public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddResponseCompression();
    }

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

  写法2:显式添加压缩功能


public void ConfigureServices(IServiceCollection services)
{
    services.AddResponseCompression(options =>
    {
        options.Providers.Add<BrotliCompressionProvider>();
        options.Providers.Add<GzipCompressionProvider>();
        options.Providers.Add<CustomCompressionProvider>();
        options.MimeTypes = 
            ResponseCompressionDefaults.MimeTypes.Concat(
                new[] { "image/svg+xml" });
    });
    services.Configure<BrotliCompressionProviderOptions>(options => 
    {
        options.Level = CompressionLevel.Fastest;
    });
}

  写法3:自定义 BrotliCompressionProvider


public class BrotliCompressionProvider : ICompressionProvider
{
    public string EncodingName => "br";
    public bool SupportsFlush => true
    public Stream CreateStream(Stream outputStream)
    {
           return new BrotliStream(outputStream,CompressionLevel.Fastest);
    }
}

  不幸的是,以上三种写法都没有发挥出 Brotil 压缩算法的优势。

  它们的共同点是均使用了 CompressionLevel.Fastest 压缩级别。

  而在 CompressionLevel.Fastest 级别时,Brotil 与 Gzip 压缩性能几乎无异。

  参考:Introducing Support for Brotli Compression

误区3:使用 Optimal 级别的 Brotli 压缩

  CompressionLevel 只有三个枚举值:Fastest / NoCompression / Optimal。

  既然 Fastest 级别没有用,那我们只能换成 Optimal 了。

最佳实践:使用 4 或 5 级别的 Brotli 压缩

  在 Introducing Support for Brotli Compression 这篇文章中,作者对不同级别 Brotil 的压缩耗时做了评测,也就是下面这幅图。

   观察这副图,Brotil 的压缩质量其实有 1~11 个级别。

  那我们如何自定义 Brotli 的压缩级别呢,答案是直接将级别对应的整数转成 CompressionLevel 枚举。

 尽管这种写法看起来十分古怪,但通过考察 .net 源码,可以确凿这种写法是可行的。

以上就是asp.net Core 文件响应压缩的常见使用误区的详细内容,更多关于ASP.NET Core 文件响应压缩的资料请关注编程网其它相关文章!

--结束END--

本文标题: ASP.NET Core 文件响应压缩的常见使用误区

本文链接: https://lsjlt.com/news/127240.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NET Core 文件响应压缩的常见使用误区
    目录误区1:未使用 Brotil 压缩误区2:使用 Fastest 级别的 Brotli 压缩误区3:使用 Optimal 级别的 Brotli 压缩误区1:未使用&nbs...
    99+
    2024-04-02
  • ASP.NET Core文件压缩常见使用误区是什么
    这篇文章主要介绍了ASP.NET Core文件压缩常见使用误区是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。误区1:未使用Brotil 压缩  几乎不需要任何额外的代价...
    99+
    2023-06-15
  • ASP.NET Core文件压缩常见使用误区(最佳实践)
    前言   在微软官方文档中,未明确指出文件压缩功能的使用误区。   本文将对 ASP.NET Core 文件响应压缩的常见使用误区做出说明。 误区1:未使用Brotil 压缩   几...
    99+
    2024-04-02
  • 使用ASP.NET Core怎么实现文件响应压缩
    使用ASP.NET Core怎么实现文件响应压缩?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。误区1:未使用 Brotil 压缩  几乎不需要任何额外的代价,Br...
    99+
    2023-06-15
  • ASP.NET Core中的响应压缩的实现
    介绍# 响应压缩技术是目前Web开发领域中比较常用的技术,在带宽资源受限的情况下,使用压缩技术是提升带宽负载的首选方案。我们熟悉的Web服务器,比如IIS、Tomcat、Ng...
    99+
    2022-06-07
    ASP.NET 压缩 core net ASP
  • 常见的压缩文件格式有哪些
    常见的压缩文件格式包括:1. ZIP格式(.zip):最常见的压缩格式之一,可在多个操作系统和软件中使用。2. RAR格式(.rar...
    99+
    2023-06-11
    压缩文件格式
  • Linux中常用压缩文件的命令——tar
    一般我们在使用电脑传输邮件到对方邮箱中时,碰到比较大的文件时,通常都会对所要传输的文件进行压缩,然后再传输到对方的邮箱中,这样做是因为压缩文件可以减少文件的大小,使得我们可以既快又方便地将文件传输到对方邮箱中。 ...
    99+
    2023-10-20
    linux 运维 服务器 centos Powered by 金山文档
  • 使用Python读写及压缩和解压缩文件的示例
    读写文件 首先看一个例子: f = open('thefile.txt','w') #以写方式打开, try: f.write('wokao') finally: f.close() 文...
    99+
    2022-06-04
    示例 压缩文件 Python
  • 服务器使用——解压常见文件tar、zip、rar等
    服务器使用——解压常见文件tar、zip、rar等 一、解压文件 1.tar文件 tar -cf all.tar *.jpg # 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表...
    99+
    2023-09-05
    服务器 linux 运维
  • Python实现批量压缩文件/文件夹zipfile的使用
    目录【Python压缩文件夹】导入“zipfile”模块【python压缩文件】导入“zipfile”模块补充zipfile是python里用来做zip格式编码的压缩和解压缩的,由于...
    99+
    2024-04-02
  • Python 文件响应开发中的常见问题有哪些?
    Python 文件响应是 Web 开发中常用的一种技术,它可以帮助我们在服务器端生成并返回文件给客户端。在实际开发中,我们可能会遇到一些常见问题。本文将介绍一些常见的 Python 文件响应开发问题以及相应的解决方案。 问题1:如何返回文...
    99+
    2023-09-03
    响应 文件 开发技术
  • ASP.NET Core 中间件的使用之全局异常处理机制
    目录1、创建项目2、创建全局异常过滤器3、依赖注入全局异常处理机制4、测试全局异常处理机制前言: 我们经常听到“秒修复秒上线”,觉得很厉害的样子。 其实不然,这只是一个调侃而已,出...
    99+
    2024-04-02
  • C++ minizip的简单使用,zip文件的创建、读取、修改、密码压缩、4G以上大文件压缩。
            兄弟姐妹们好,深夜党又来记录枯燥的编程生活了。今天给大家带来的是minizip库,一个解压和压缩文件的开源代码库,如题目所示的结构来介绍。你可以在下面的链接搜索到minizip库: http://www.winimage...
    99+
    2023-09-01
    linux 运维 服务器 minizip c++
  • win7如何使用压缩文件加密电脑的重要文件
    这篇文章主要为大家展示了“win7如何使用压缩文件加密电脑的重要文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“win7如何使用压缩文件加密电脑的重要文件”这篇文章吧。方法/步骤:右键选择需要...
    99+
    2023-06-27
  • 使用Node.js和Vue.js怎么构建一个文件压缩应用程序
    使用Node.js和Vue.js怎么构建一个文件压缩应用程序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。设置项目我们将从构建后端开始,这是我...
    99+
    2024-04-02
  • win7中如何使用压缩文件加密电脑的重要文件
    这篇文章给大家分享的是有关win7中如何使用压缩文件加密电脑的重要文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。方法一:若我们的磁盘文件系统是NTFS格式,使用NTFS文件系统自带的加密功能:右键单击需要加密...
    99+
    2023-06-27
  • 大数据中常见的文件存储格式以及hadoop中支持的压缩算法
    在大数据中常见的文件存储格式有:1. 文本文件(Text File):以纯文本的形式保存数据,例如CSV格式或JSON格式。2. 序...
    99+
    2023-10-11
    大数据
  • 使用Java 压缩文件打包tar.gz 包的详细教程
    目录一、背景二、如何通过 Java 打包文件?2.1 添加 Maven 依赖2.2 打包核心代码三、结语一、背景 最近,小哈主要在负责日志中台的开发工作, 等等,啥是日志中台? 俺...
    99+
    2024-04-02
  • 使用 Python 破解压缩文件的密码的思路详解
    经常遇到百度网盘的压缩文件加密了,今天我们就破解它! 实现思路 上篇文章给大家介绍了爆破密码的思路,感兴趣的朋友可以了解下。 其实都大同小异:无非就是字典爆破,就看你是有现成密码字典...
    99+
    2024-04-02
  • Linux实现压缩文件的生成与查看的常用命令总结
    目录简介tar与gzip压缩日志文件tar与其它压缩算法zip与jar查看jar文件总结简介 如果你是后端程序员,我想你一定见过*.tar.gz、*.zip、*.jar后缀的文件吧,这些都是压缩文件,那这些文件都是怎么生...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作