TsgcWebSocketHTTPServer › Propriedades › HTTPCompression
Comprime as respostas HTTP/1.1 com gzip ou deflate quando o cliente anuncia suporte, tanto para os arquivos estáticos do DocumentRoot quanto para as respostas dinâmicas de OnCommandGet.
property HTTPCompression: TsgcHTTPCompression_Options read FHTTPCompression write SetHTTPCompression;
Enabled=False
Por padrão o servidor envia todas as respostas HTTP/1.1 sem compressão. Defina HTTPCompression.Enabled como True para comprimir as respostas elegíveis com gzip ou deflate sempre que o cabeçalho de requisição Accept-Encoding do cliente permitir. Level é o nível de compressão de 0 a 9 (padrão 6). MinSize evita comprimir respostas menores que esta quantidade de bytes (padrão 1.024), já que comprimir um corpo minúsculo raramente compensa o custo de CPU. Algorithms é o conjunto de codificações que o servidor pode usar (padrão tanto caGZip quanto caDeflate; o gzip é preferido quando o cliente aceita ambas). ContentTypes lista quais tipos de conteúdo de resposta são elegíveis, curingas como text/* são suportados, e o padrão inclui os tipos comuns de texto, JSON, JavaScript, XML e SVG.
O servidor nunca compacta uma resposta que já tenha um cabeçalho Content-Encoding, um código de status 204/304/1xx ou um tipo de conteúdo text/event-stream (Server-Sent Events), e ignora a compactação quando o resultado compactado não seria realmente menor. Quando compacta uma resposta, define Content-Encoding e adiciona um cabeçalho Vary: Accept-Encoding. Esta propriedade cobre apenas as respostas HTTP/1.1; as respostas HTTP/2 não são afetadas. Consulte Compressão HTTP para uma explicação completa e para saber como isso difere da compressão de mensagens WebSocket.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.DocumentRoot := 'C:\inetpub\wwwroot';
oServer.HTTPCompression.Enabled := true;
oServer.HTTPCompression.MinSize := 1024;
oServer.Active := true;