Response Compression'ı Körlemesine Açınca Ne Oldu
gzip her cevabı küçültmez, bazılarını şişirir

Middleware listesine UseResponseCompression eklemek bir satır. Satırın bedeli her yanıtta CPU. Küçük API cevaplarında gzip bazen gövdeyi küçültmez, header ekler, CPU yakar.
Ne sıkışır, ne sıkışmaz
HTML, JSON, CSV sıkışır. Zaten sıkışmış JPEG, PNG, ZIP, brotli'li statik dosya tekrar sıkışmaz. MIME listesini varsayılan bırakınca image/png'ye de girmeye çalıştık. Kazanç sıfır, maliyet encoder.
builder.Services.AddResponseCompression(options =>
{
options.EnableForHttps = true;
options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(
[
"application/json",
"application/problem+json"
]);
});
var app = builder.Build();
app.UseResponseCompression();
EnableForHttps varsayılan kapalıdır; HTTPS'te açmak bilinçli. BREACH gibi eski tartışmalar var, çoğu JSON API için pratik risk düşük. Yine de compression'ı auth cookie'si taşıyan HTML sayfalarında kör açmıyorum.
Ölçmeden 'açık olsun'
p95 CPU %8 arttı, p95 latency 4 ms düştü. Bu takas bazı endpoint'lerde kâr, 200 byte'lık healthcheck'te zarar. Exclude ile health ve metrics dışarıda. Compression bir performans özelliği değil, bir takas; takası yazmadan açmayın.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap