TsgcHTTPServer › 속성 › HTTPCompression
클라이언트가 지원을 알릴 때 DocumentRoot 정적 파일과 동적 OnCommandGet 응답 모두에 대해 HTTP/1.1 응답을 gzip 또는 deflate로 압축합니다.
property HTTPCompression: TsgcHTTPCompression_Options read FHTTPCompression write SetHTTPCompression;
Enabled=False
기본적으로 서버는 모든 HTTP/1.1 응답을 압축하지 않고 전송합니다. 클라이언트의 Accept-Encoding 요청 헤더가 허용할 때마다 적합한 응답을 gzip 또는 deflate로 압축하려면 HTTPCompression.Enabled를 True로 설정하십시오. Level은 0에서 9까지의 압축 수준입니다(기본값 6). MinSize는 이보다 작은 바이트 수의 응답은 압축하지 않도록 건너뜁니다(기본값 1,024). 작은 본문을 압축하는 것은 CPU 비용에 비해 이득이 거의 없기 때문입니다. Algorithms는 서버가 사용할 수 있는 인코딩 집합입니다(기본값은 caGZip과 caDeflate 둘 다이며, 클라이언트가 둘 다 허용하면 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 응답에는 영향을 주지 않습니다. 전체 설명은 HTTP Compression을 참조하십시오.
oServer := TsgcHTTPServer.Create(nil);
oServer.DocumentRoot := 'C:\inetpub\wwwroot';
oServer.HTTPCompression.Enabled := true;
oServer.HTTPCompression.MinSize := 1024;
oServer.Active := true;