.Net Core优化策略

1、设置浏览器缓存

使用中间件

            services.AddResponseCaching(options =>
            {
                //是否区分请求路径大小写
                options.UseCaseSensitivePaths = false;
            });
            app.UseResponseCaching();

在接口上或者控制器上设置缓存

/// <summary>
        /// Task方法
        /// </summary>
        /// <param name="val"></param>
        /// <returns></returns>
        [HttpGet("/GetTask")]
        [ResponseCache(Duration = 5, Location = ResponseCacheLocation.Any, NoStore = false)]
        public Task<string> GetTask (string val)
        {
            return Task.FromResult( $"{val}:{DateTime.Now.Ticks}");
        }
Duration :缓存时间(s)
Location : 获取或设置必须缓存来自特定URL的数据的位置
NoStore : 获取或设置一个值,该值决定是否存储数据或不是。当设置为真时,它将“Cache-control”头设置为“no-store”。忽略了“Location”参数用于指定除“None”以外的值。忽略了“持续时间”参数。

只能缓存Get请求

2、对响应进行压缩
services.Configure<GzipCompressionProviderOptions>(provider => provider.Level = CompressionLevel.Optimal);
            services.AddResponseCompression(options =>

            {
                //设置Https请求是否被压缩
                options.EnableForHttps = true;
                //设置优先被使用的压缩算法
                options.Providers.Add<GzipCompressionProvider>();
                //设置需要被压缩的文件格式
                options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] { "" });
                //设置这些格式不被压缩
                options.ExcludedMimeTypes = new[] { "image/png", "image/jpg", };

            });
            //必须放在app.UseStaticFiles()前面,否则请求会先进入静态文件管道并返回响应
            app.UseResponseCompression();
 
原文地址:https://www.cnblogs.com/yuchenghao/p/13291234.html