TsgcWebSocketHTTPServerProperties › HTTPCompression

HTTPCompression Property

Compresses HTTP/1.1 responses with gzip or deflate when the client advertises support, for both DocumentRoot static files and dynamic OnCommandGet responses.

구문

property HTTPCompression: TsgcHTTPCompression_Options read FHTTPCompression write SetHTTPCompression;

기본값

Enabled=False

설명

기본적으로 서버는 모든 HTTP/1.1 응답을 압축하지 않은 채로 전송합니다. HTTPCompression.EnabledTrue로 설정하면, 클라이언트의 Accept-Encoding 요청 헤더가 허용할 때마다 대상 응답을 gzip 또는 deflate로 압축합니다. Level은 0에서 9까지의 압축 수준입니다(기본값 6). MinSize는 이보다 작은 바이트 수의 응답은 압축을 건너뜁니다(기본값 1,024). 작은 본문을 압축하는 것은 CPU 비용에 비해 이득이 거의 없기 때문입니다. Algorithms는 서버가 사용할 수 있는 인코딩 집합입니다(기본값은 caGZipcaDeflate 모두이며, 클라이언트가 둘 다 허용하면 gzip이 우선됩니다). ContentTypes는 어떤 응답 콘텐츠 유형이 대상인지 나열하며, text/*와 같은 와일드카드도 지원되고, 기본값은 일반적인 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 Compression을 참고하세요.

예제


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

속성으로 돌아가기