TsgcWebSocketHTTPServer属性 › HTTPCompression

HTTPCompression 属性

当客户端声明支持时,使用 gzip 或 deflate 压缩 HTTP/1.1 响应,适用于 DocumentRoot 提供的静态文件和 OnCommandGet 动态生成的响应。

语法

property HTTPCompression: TsgcHTTPCompression_Options read FHTTPCompression write SetHTTPCompression;

默认值

Enabled=False

备注

默认情况下,服务器发送的每个 HTTP/1.1 响应都不会被压缩。将 HTTPCompression.Enabled 设置为 True,即可在客户端的 Accept-Encoding 请求头允许的情况下,使用 gzip 或 deflate 压缩符合条件的响应。Level 是压缩级别,范围为 0 到 9(默认值为 6)。MinSize 会跳过压缩小于此字节数的响应(默认值为 1,024),因为压缩极小的响应体通常不值得付出额外的 CPU 开销。Algorithms 是服务器可使用的编码集合(默认同时包含 caGZipcaDeflate;当客户端两者都接受时,优先使用 gzip)。ContentTypes 列出了哪些响应内容类型符合压缩条件,支持像 text/* 这样的通配符,默认包含常见的文本、JSON、JavaScript、XML 和 SVG 类型。

如果响应已经包含 Content-Encoding 头、状态码为 204/304/1xx,或内容类型为 text/event-stream(Server-Sent Events),服务器将不会对其进行压缩;如果压缩后的结果实际上并不会更小,也会跳过压缩。压缩响应时,服务器会设置 Content-Encoding 并添加 Vary: Accept-Encoding 头。此属性仅适用于 HTTP/1.1 响应,不影响 HTTP/2 响应。有关完整说明以及它与 WebSocket 消息压缩的区别,请参见 HTTP 压缩

示例


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

返回属性