TsgcWebSocketHTTPServerEigenschappen › HTTPCompression

HTTPCompression Eigenschap

Comprimeert HTTP/1.1-antwoorden met gzip of deflate wanneer de client ondersteuning aankondigt, zowel voor statische DocumentRoot-bestanden als voor dynamische OnCommandGet-antwoorden.

Syntaxis

property HTTPCompression: TsgcHTTPCompression_Options read FHTTPCompression write SetHTTPCompression;

Standaardwaarde

Enabled=False

Opmerkingen

Standaard verstuurt de server elke HTTP/1.1-response ongecomprimeerd. Zet HTTPCompression.Enabled op True om in aanmerking komende responses met gzip of deflate te comprimeren wanneer de Accept-Encoding-requestheader van de client dat toestaat. Level is het compressieniveau van 0 tot 9 (standaard 6). MinSize slaat het comprimeren over van responses die kleiner zijn dan dit aantal bytes (standaard 1.024), omdat het comprimeren van een kleine body de CPU-kosten zelden waard is. Algorithms is de set encodings die de server mag gebruiken (standaard zowel caGZip als caDeflate; gzip heeft de voorkeur wanneer de client beide accepteert). ContentTypes somt op welke content types van responses in aanmerking komen, jokertekens zoals text/* worden ondersteund, en standaard omvat de lijst de gebruikelijke text-, JSON-, JavaScript-, XML- en SVG-types.

De server comprimeert nooit een respons die al een Content-Encoding-header heeft, een statuscode 204/304/1xx, of een content type text/event-stream (Server-Sent Events), en slaat compressie over wanneer het gecomprimeerde resultaat niet echt kleiner zou zijn. Wanneer de server een respons comprimeert, stelt hij Content-Encoding in en voegt hij een header Vary: Accept-Encoding toe. Deze eigenschap geldt alleen voor HTTP/1.1-responsen; HTTP/2-responsen worden niet beïnvloed. Zie HTTP Compression voor een volledige uitleg en voor het verschil met de compressie van WebSocket-berichten.

Voorbeeld


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

Terug naar Properties