다음을 통해 공유


HTTP용 zstd 기반 공유 사전 압축에 대한 고려 사항

이 문서에서는 ZSDCH(HTTP) 기능에 대한 zstd 기반 공유 사전 압축에 대한 엔터프라이즈 고려 사항을 제공합니다.

인프라 고려 사항은 주로 Chromium 프로젝트에서 구현한 압축 사전 전송 기능에도 적용됩니다. 압축된 사전 전송 기능은 Microsoft Edge 119 이상의 원본 평가판 메커니즘을 통해 사이트에서 사용할 수 있습니다.

ZSDCH란?

ZSDCH는 브라우저가 공유 사전을 사용하여 HTTPS를 통해 제공되는 응답의 압축을 풀 수 있도록 하는 Microsoft Edge의 실험적 기능입니다. 예를 들어 사용자가 이 기능을 사용하여 사이트(예: bing.com)를 방문할 때 서버가 페이지를 사용자에게 다시 보낼 수 있도록 대역폭 요구 사항을 줄여 성능이 향상되는 이점을 얻을 수 있습니다.

압축 사전 전송 기능은 동일한 시나리오를 대상으로 하며 비슷한 방식으로 작동합니다.

ZSDCH는 어떻게 작동하나요?

ZSDCH는 브라우저가 ZSDCH 압축을 지원함을 서버에 나타내기 위해 "Accept-Encoding" 요청 헤더에 새 값 "zsdch"를 보내도록 하는 방식으로 작동합니다.

서버가 향후 응답에 ZSDCH를 사용하려는 경우 ZSDCH가 아닌 Content-Encoding과 함께 일반적인 응답을 제공하지만 추가 "get-dictionary" 응답 헤더를 제공합니다. 이 헤더는 나중에 사용할 수 있도록 브라우저가 ZSDCH 사전을 가져올 수 있는 위치에 대한 포인터를 제공합니다.

브라우저가 사전을 가져오고 캐시한 후 서버에 대한 향후 요청에는 "avail-dictionary" 헤더에 사용 가능한 사전 목록이 포함됩니다. 서버가 사용 가능한 사전 중 하나를 사용하여 압축된 응답을 제공할 수 있는 경우 사전을 사용하여 응답을 제공하고 "zsdch"의 "Content-Encoding"을 지정합니다.

압축 사전 전송 기능은 어떻게 작동하나요?

마찬가지로, 요청 시간 동안 클라이언트에서 압축 사전 전송 사전을 사용할 수 있는 경우 압축 사전 전송은 "Sec-Available-Dictionary" 요청 헤더와 함께 추가 "Accept-Encoding" 요청 헤더 값("sbr" 및/또는 "zstd-d")을 보급합니다.

이러한 기능을 테스트하는 사이트는 무엇인가요?

다양한 네트워크 토폴로지와의 성능 향상 및 호환성을 검증하기 위해 Edge는 bing.com, bing.cn 및 msn.com 콘텐츠를 요청할 때 ZSDCH 지원을 보급합니다. Edge는 또한 "localhost" 호스트 이름을 사용하여 서버에 보급하여 로컬 테스트를 지원합니다.

압축 사전 전송 기능은 원본 평가판 메커니즘을 사용하여 Microsoft가 아닌 사이트를 비롯한 다양한 사이트에서 테스트되고 있습니다.

네트워크 미들박스와의 잠재적 상호 작용

일부 기업은 캐싱 및/또는 네트워크 트래픽 검사 기능을 제공하는 네트워크 미들박스를 사용합니다. 경우에 따라 이러한 제품에는 응답을 구문 분석할 수 있어야 하는 요구 사항이 있습니다. 그렇지 않으면 페이지를 중단하는 방식으로 응답을 수정하거나 차단할 수 있습니다.

Content-Encoding이 이해되는 인코딩이어야 하는 미들박스는 요청의 Accept-Encoding 헤더 값을 수정하여 지원되지 않는 인코딩을 제거해야 합니다. 그렇지 않으면 웹 서버가 미들박스에서 디코딩할 수 없다는 응답을 제공하도록 선택할 수 있습니다.

응답을 검사할 필요가 없는 캐싱 계층의 경우 "Vary" 값의 "avail-dictionary" 및/또는 "sec-available-dictionary" 헤더 이름을 포함하는 서버 응답이 올바르게 처리되고 압축된 응답이 적절한 사전이 없는 클라이언트에 반환되지 않도록 "Vary" 헤더도 올바르게 지원해야 합니다.

이러한 사례는 일반적이며 브라우저에서 지원하는 새로운 향후 콘텐츠 인코딩에도 적용됩니다.

프록시 또는 미들박스는 프라이빗 가로채기 인증서를 사용하여 TLS 트래픽의 암호를 해독하는 경우에만 TLS 연결의 압축을 방해할 수 있습니다.

위의 모범 사례를 따르지 않는 엔터프라이즈 환경에 대한 위험을 최소화하기 위해 Edge는 이러한 암호 해독 중간 상자가 검색되면 ZDSCH 기능을 사용하지 않도록 설정합니다.

압축 사전 전송 기능의 경우 명시적 엔터프라이즈 정책(CompressionDictionaryTransportEnabled)이 제공됩니다. 영향을 받는 기업은 공급업체와 협력하여 익숙하지 않은 새 콘텐츠 인코딩을 제대로 처리하도록 제품을 업데이트하는 동안 이 정책을 사용하여 기능을 사용하지 않도록 설정할 수 있습니다.

ZSDCH가 사용자 환경에서 문제를 일으키는지 확인

ZSDCH가 사용자 환경에서 바람직하지 않은 문제를 일으킨다고 생각되면 다음 단계를 통해 Edge에서 ZSDCH를 사용하지 않도록 설정할 수 있습니다.

  1. 을 엽니다 edge://flags.
  2. "#edge-enable-zsdch-content-encoding"을 검색합니다.
  3. 기능의 값을 "사용 안 함"으로 설정합니다.
  4. Edge를 다시 시작하여 변경 내용이 적용되도록 합니다.
  5. 문제가 발생한 시나리오를 실행하여 여전히 발생하거나 해결되었는지 확인합니다.