TsgcWebSocketHTTPServerWłaściwości › HTTPCompression

HTTPCompression Właściwość

Kompresuje odpowiedzi HTTP/1.1 przy użyciu gzip lub deflate, gdy klient zgłasza taką obsługę, zarówno dla plików statycznych 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 przy użyciu gzip lub deflate, gdy tylko zezwala na to nagłówek żądania Accept-Encoding klienta. Level to poziom kompresji od 0 do 9 (domyślnie 6). MinSize pomija kompresowanie odpowiedzi mniejszych niż ta liczba bajtów (domyślnie 1024), ponieważ kompresowanie niewielkiej treści rzadko rekompensuje koszt procesora. Algorithms to zestaw kodowań, których może używać serwer (domyślnie zarówno caGZip, jak i caDeflate; gdy klient akceptuje oba, preferowany jest gzip). ContentTypes określa, które typy treści odpowiedzi kwalifikują się do kompresji, obsługiwane są symbole wieloznaczne, takie jak text/*, a domyślnie ustawione są typowe typy tekstowe, JSON, JavaScript, XML i SVG.

Serwer nigdy nie kompresuje odpowiedzi, która już ma nagłówek Content-Encoding, kod stanu 204/304/1xx lub typ treści text/event-stream (Server-Sent Events), a także pomija kompresję, gdy skompresowany wynik nie byłby faktycznie mniejszy. Kompresując odpowiedź, ustawia nagłówek 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. Pełne wyjaśnienie oraz różnice względem kompresji wiadomości WebSocket znajdują się w temacie Kompresja HTTP.

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