TsgcWebSocketHTTPServerWłaściwości › HTTPCompression

HTTPCompression Właściwość

Kompresuje odpowiedzi HTTP/1.1 za pomocą gzip lub deflate, gdy klient zgłasza obsługę tej funkcji, zarówno dla statycznych plików DocumentRoot, jak i dynamicznych odpowiedzi OnCommandGet.

Składnia

property HTTPCompression: TsgcHTTPCompression_Options read FHTTPCompression write SetHTTPCompression;

Wartość domyślna

Enabled=False

Uwagi

Domyślnie serwer wysyła każdą odpowiedź HTTP/1.1 bez kompresji. Ustaw HTTPCompression.Enabled na True, aby kompresować kwalifikujące się odpowiedzi za pomocą gzip lub deflate, ilekroć pozwala na to nagłówek żądania Accept-Encoding klienta. Level to poziom kompresji od 0 do 9 (domyślnie 6). MinSize pomija kompresję odpowiedzi mniejszych niż podana liczba bajtów (domyślnie 1,024), ponieważ kompresja drobnej treści rzadko zwraca koszt procesora. Algorithms to zbiór kodowań, których serwer może użyć (domyślnie zarówno caGZip, jak i caDeflate; gdy klient akceptuje oba, preferowany jest gzip). ContentTypes wymienia, które typy treści odpowiedzi się kwalifikują, obsługiwane są symbole wieloznaczne takie jak text/*, a domyślnie obejmuje typowe typy tekstowe, JSON, JavaScript, XML i SVG.

Serwer nigdy nie kompresuje odpowiedzi, która ma już nagłówek Content-Encoding, kod statusu 204/304/1xx lub typ zawartości text/event-stream (Server-Sent Events), i pomija kompresję, gdy skompresowany wynik nie byłby faktycznie mniejszy. Gdy kompresuje odpowiedź, ustawia Content-Encoding i dodaje nagłówek Vary: Accept-Encoding. Ta właściwość dotyczy wyłącznie odpowiedzi HTTP/1.1; odpowiedzi HTTP/2 nie są nią objęte. Zobacz Kompresja HTTP, aby uzyskać pełne wyjaśnienie i dowiedzieć się, czym różni się od kompresji wiadomości WebSocket.

Przykład


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

Wróć do Właściwości