TsgcHTTPServer › Özellikler › HTTPCompression

HTTPCompression Özellik

İstemci destek bildirdiğinde, hem DocumentRoot statik dosyaları hem de dinamik OnCommandGet yanıtları için HTTP/1.1 yanıtlarını gzip veya deflate ile sıkıştırır.

Sözdizimi

property HTTPCompression: TsgcHTTPCompression_Options read FHTTPCompression write SetHTTPCompression;

Varsayılan Değer

Enabled=False

Remarks

Varsayılan olarak sunucu her HTTP/1.1 yanıtını sıkıştırılmamış olarak gönderir. İstemcinin Accept-Encoding istek başlığı izin verdiğinde uygun yanıtları gzip veya deflate ile sıkıştırmak için HTTPCompression.Enabled'ı True olarak ayarlayın. Level, 0 ile 9 arasındaki sıkıştırma düzeyidir (varsayılan 6). MinSize, bu kadar bayttan küçük yanıtların sıkıştırılmasını atlar (varsayılan 1.024), çünkü çok küçük bir gövdeyi sıkıştırmak nadiren CPU maliyetine değer. Algorithms, sunucunun kullanabileceği kodlamalar kümesidir (varsayılan olarak hem caGZip hem de caDeflate; istemci ikisini de kabul ettiğinde gzip tercih edilir). ContentTypes, hangi yanıt içerik türlerinin uygun olduğunu listeler, text/* gibi joker karakterler desteklenir ve varsayılan olarak yaygın text, JSON, JavaScript, XML ve SVG türlerini içerir.

Sunucu, zaten bir Content-Encoding başlığına, 204/304/1xx durum koduna veya text/event-stream (Server-Sent Events) içerik türüne sahip bir yanıtı asla sıkıştırmaz ve sıkıştırılmış sonuç gerçekte daha küçük olmayacaksa sıkıştırmayı atlar. Bir yanıtı sıkıştırdığında Content-Encoding'i ayarlar ve bir Vary: Accept-Encoding başlığı ekler. Bu özellik yalnızca HTTP/1.1 yanıtlarını kapsar; HTTP/2 yanıtları etkilenmez. Ayrıntılı bir açıklama için HTTP Compression konusuna bakın.

Örnek


oServer := TsgcHTTPServer.Create(nil);
oServer.DocumentRoot := 'C:\inetpub\wwwroot';
oServer.HTTPCompression.Enabled := true;
oServer.HTTPCompression.MinSize := 1024;
oServer.Active := true;

Özelliklere Dön