압축 및 최적화 개념
IBM Cloud® Internet Services은(는) 일부 유형의 컨텐츠에 gzip
및 brotli
압축을 적용합니다. CIS는 또한 브라우저의 UserAgent를 기반으로 항목을 압축하여 페이지 로딩 시간을 단축합니다. .
이미 gzip
를 사용하고 있다면, 웹 서버에서 파일 헤더에 세부 정보를 전달하는 경우 CIS 가 gzip
설정을 받아들입니다.
CIS 은 원본 서버에 대해 컨텐츠 유형 gzip
만 지원하며 gzip
또는 brotli
로 압축되거나 압축되지 않은 컨텐츠만 전달할 수도 있습니다.
CIS의 역방향 프록시는 압축된 형식과 압축되지 않은 형식 간에 변환할 수 있습니다. 즉, gzip
을 통해 고객의 오리진 서버에서 컨텐츠를 가져와 압축하지 않고 클라이언트에 제공할 수 있습니다(또는 그 반대로). 이 변환은 캐싱과 독립적으로 이루어집니다.
Accept-Encoding 헤더는 준수되지 않고 제거됩니다.
압축되는 항목
CIS가 시간이 경과된(stale) 컨텐츠를 제공하고 CSS, JS 및 HTML을 축소하여 사이트 속도를 높이는 것 외에도 CIS는 사이트 소유자를 지원하기 위해 gzip
및 brotli
압축을 제공합니다.
CIS는 다음 content-type에 대해 호환 가능한 클라이언트 및 브라우저에 gzip
또는 brotli
로 인코딩된 응답을 리턴합니다.
text/html
text/richtext
text/plain
text/css
text/x-script
text/x-component
text/x-java-source
text/x-markdown
application/javascript
application/x-javascript
text/javascript
text/js
image/x-icon
image/vnd.microsoft.icon
application/x-perl
application/x-httpd-cgi
text/xml
application/xml
application/xml+rss
application/vnd.api+json
application/x-protobuf
application/json
multipart/bag
multipart/mixed
application/xhtml+xml
font/ttf
font/otf
font/x-woff
image/svg+xml
application/vnd.ms-fontobject
application/ttf
application/x-ttf
application/otf
application/x-otf
application/truetype
application/opentype
application/x-opentype
application/font-woff
application/eot
application/font
application/font-sfnt
application/wasm
application/javascript-binast
application/manifest+json
application/ld+json
원본에서 특정 응답을 인코딩하지 않으려면 원본 웹 서버에서 cache-control: no-transform을 설정하여 인코딩을 비활성화할 수 있습니다.
Brotli 압축 사용
- CIS 계정에 로그인하십시오.
- 적절한 도메인을 선택하십시오.
- 성능 탭을 클릭하십시오.
- 고급 탭을 클릭하십시오.
- Brotli 스위치를 켜십시오.
HTML, JavaScript 및 CSS 압축 기능
CIS는 웹 컨텐츠 축소를 사용하여 해당 기능을 변경하지 않고 모든 불필요한 문자를 HTML, JavaScript 및 CSS 파일에서 제거합니다.
CSS 및 JavaScript 축소는 캐시된 CSS 및 JS 파일에서만 작동합니다. CIS 이 파일에 대한 캐시 HIT를 리턴하면 이는 축소된 양식으로 브라우저에 리턴되어 CIS 이 전체 최소화 결과를 전달할 수 있습니다. CSS 및 JavaScript에 대한 축소를 사용 또는 사용 안함으로 설정해야 하는 경우 축소 변경의 영향을 확인하려면 CIS 캐시를 제거하십시오.
이미지 크기 최적화 압축
이미지 크기 최적화는 메타데이터를 제거하고 손실 압축 또는 무손실 압축을 적용하여 CIS 엣지 네트워크에 캐시된 리소스를 압축합니다. 이미지 크기 최적화는 이미지 크기를 줄여 이미지 다운로드를 가속화합니다. 이미지 크기 최적화는 외부 자원을 최적화할 수 없습니다.
이미지 크기 최적화 압축은 UI에서 페이지 규칙으로만 사용할 수 있습니다. 도메인 레벨 설정은 CLI에서 사용할 수 있습니다.
이미지 크기 최적화 압축 옵션
다음 절에서는 이미지 크기 최적화 압축 옵션에 대해 자세히 설명합니다.
보존
무손실 옵션은 대부분의 메타데이터(예: EXIF 데이터)를 제거하려고 시도하지만 이미지 세부사항을 변경하지는 않습니다. 사실상 압축을 풀 때 무손실 이미지는 원본과 동일합니다.
손실
손실 옵션은 대부분의 메타데이터를 제거하고 이미지를 약 15% 압축합니다. 압축을 풀면 원래 이미지의 일부 중복 정보가 손실됩니다.
손실은 PNG에 적용되는 경우 무손실과 동일한 효과를 가집니다.
무손실 및 손실 모드에서는 CIS가 가능한 많은 메타데이터를 제거하려고 시도합니다. 그러나 캐싱 상태와 같은 기타 요인이 응답에서 최종적으로 전송되는 메타데이터에 영향을 미칠 수 있기 때문에 모든 메타데이터가 제거된다는 보장은 없습니다.
WebP
WebP 은(는) 우수한 무손실 및 손실 압축을 제공하는 현대적인 이미지 형식입니다. WebP 무손실 이미지는 PNG에 비해 약 26% 작으며 손실 이미지는 JPEG에 비해 25 - 34% 작습니다.
이미지 크기 최적화는 이미지의 WebP 버전을 작성하고 캐시합니다. 그런 다음 브라우저의 Accept 헤더에 WebP 가 포함되어 있고 압축된 이미지가 손실 또는 손실이 없는 압축보다 상당히 작은 경우 이미지가 브라우저에 전달됩니다.
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
현재 WebP는 Firefox, Google Chrome 및 Opera 브라우저에서만 지원됩니다.
WebP 가 WebP 를 지원하지 않는 브라우저에 캐시되지 않도록 하려면, 이미지 크기 최적화를 사용할 때 원본 웹 서버에서 WebP 를 비활성화하십시오.
이미지 크기 최적화가 활성화되어 있는지 확인하십시오
페이지 규칙 또는 CLI 도메인 설정 을 사용하여 이미지 크기 최적화를 활성화하십시오.
이미지 크기 최적화는 압축된 이미지 요청에 다음 헤더를 추가합니다.
cf-bgj: imgq:85
cf-polished: qual=85, origFmt=jpeg, origSize=95005
cf-cache-status: HIT
cf-bgj
헤더는 CIS 이 이미지 크기 최적화를 적용했음을 확인하고 이미지 품질 설정 (imgq
) 을 리턴합니다. cf-polished
헤더는 이미지 크기 최적화 상태를 표시하고 이미지 품질 설정 (qual
) 및 원래 크기 (origSize
) 를 리턴합니다. cf-cache-status
는 이미지가 캐시되었으며 이미지 크기 최적화를 적용할 수 있음을 확인합니다.
WebP 변환은 이미지 URL을 변경하지 않습니다. Content-Type HTTP
헤더는 브라우저에 이미지의 원래 형식을 알려줍니다.
일반적인 Cf-Polished 상태
다음 표에는 일반적인 Cf-Polished 상태와 문제 해결 방법이 나열되어 있습니다. Cf-Polished 헤더가 반환되지 않으면, 단일 파일 캐시 퍼지를 사용하여 이미지를 퍼지하십시오.
상태 | 정의 | 권장사항 |
---|---|---|
input_too_large |
입력 이미지가 너무 크거나 복잡하여 처리할 수 없으며 더 낮은 해상도가 필요합니다. | 1,000px및 10MB미만의 .png 또는 .jpeg 이미지를 사용하십시오. |
not_compressed 또는 not_needed | 이미지가 오리진 서버에서 완전히 최적화되었으며 압축이 적용되지 않았습니다. | |
webp_bigger | Polish가 WebP, 로 변환하려고 시도했지만, 원본 서버에서 이미지가 최적화되었거나 품질 설정이 낮게 만들어졌습니다. | WebP 버전이 존재하지 않으므로 JPEG/PNG 버전의 응답에 상태가 설정됩니다. |
cannot_optimize 또는 internal_error | 오리진 서버에서 입력 이미지가 손상되었거나 불완전합니다. | 새 버전의 이미지를 오리진 서버에 업로드하십시오. |
format_not_supported | 입력 이미지 형식이 지원되지 않거나(예: BMP, TIFF) 원본 서버가 폴란드어와 호환되지 않는 추가 최적화 소프트웨어를 사용하고 있습니다. | 입력 이미지를 웹 호환 가능한 형식(예: PNG, JPEG)으로 변환하거나 원본 서버에서 추가 최적화 소프트웨어를 비활성화해 보십시오. |
vary_header_present | 원본 웹 서버가 accept-encoding 이외의 값을 가진 Vary 헤더를 보냈습니다. | 오리진 웹 서버가 WebP를 지원하려고 하는 경우 오리진 웹 서버에서 WebP를 사용 안함으로 설정하고 Polish가 WebP 변환을 수행하도록 하십시오. |
Vary
헤더에 accept-encoding이 유일한 헤더가 아닌 경우에도 이미지 크기 최적화는 여전히 작동합니다.