ASP.NET 코어 파일 응답 압축 의 일반적인 오류

오류 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 코어 의 응답 압축 - MS Doc
있다 - 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:사용자 정의 BrotliCompassionProvider

public class BrotliCompressionProvider : ICompressionProvider
{
    public string EncodingName => "br";
    public bool SupportsFlush => true
    public Stream CreateStream(Stream outputStream)
    {
           return new BrotliStream(outputStream,CompressionLevel.Fastest);
    }
}
불 행 히 도 상기 세 가지 표기 법 은 모두 Brotil 압축 알고리즘 의 장점 을 발휘 하지 못 했다.
이들 의 공통점 은 모두 Compression Level.Fastest 를 사용 했다 는 것 이다. 압축 단계.
반면 Compression Level.Fastest 등급 에 서 는 Brotil 과 Gzip 의 압축 성능 이 거의 다 릅 니 다.
참고:ASP.NET Core 에서 brotli 압축 사용 하기

오류 3:Optimal 급 Brotli 압축 사용
Compression Level 은 세 개의 매 거 진 값 만 있 습 니 다:Fastest/NoCompression/Optimal.
Fastest 등급 이 소 용이 없 으 니 우 리 는 Optimal 로 바 꿀 수 밖 에 없다.


최 적 실천:4 또는 5 단계 의 Brotli 압축 사용
...에 있다 Introducing Support for Brotli Compression 이 글 에서 작 가 는 서로 다른 등급 의 Brotil 의 압축 시간 에 대해 평 가 를 했 는데 바로 아래 의 그림 이다.

 이 그림 을 살 펴 보면 Brotil 의 압축 품질 은 사실 1~11 개의 등급 이 있다.
브 로 틀 리 의 압축 단 계 를 어떻게 정의 합 니까?정 답 은 단계 에 대응 하 는 정 수 를 Compression Level 로 직접 바 꾸 는 것 입 니 다.

비록 이런 표기 법 은 매우 기괴 해 보이 지만.NET 소스 코드 를 고찰 함으로써 이런 표기 법 이 가능 하 다 는 것 을 확실히 알 수 있다.
이상 은 ASP.NET Core 파일 응답 압축 의 일반적인 사용 오류 에 대한 상세 한 내용 입 니 다.ASP.NET Core 파일 응답 압축 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기