웹 서버 · 1 min read · Sep 13, 2025

mod_gzip - 압축된 콘텐츠 제공하기 - 페이지 2

저자: Michael Schröpl

HTTP에서의 통신

웹 콘텐츠의 서버와 클라이언트 간 전송을 위해 하이퍼텍스트 전송 프로토콜 (HTTP)이 사용됩니다.

통신은 다음과 같은 방식으로 작동합니다:

  1. 클라이언트는 서버에 요청을 보냅니다. 이 요청은 주로 클라이언트가 수신하고자 하는 데이터에 대해 설명하는 HTTP 헤더로 구성됩니다.
    어느 정도 클라이언트는 요청된 페이지의 URL을 지정하는 것과 같이 데이터 콘텐츠를 직접적으로 영향을 미칠 수 있습니다; 요청의 다른 부분은 서버에 클라이언트가 받고 싶어하는 데이터 유형에 대한 추가 정보를 제공합니다.
  2. 서버는 요청된 데이터의 속성을 결정하기 위해 모든 사용 가능한 정보를 평가하고, 이후 클라이언트의 요청에 가장 적합한 형태로 이러한 데이터를 제공하려고 시도합니다.
    이 데이터 패킷은 다시 HTTP 헤더를 포함하지만 주로 데이터를 포함하고 있으며, 이는 HTTP 헤더를 고려하지 않고는 부분적으로만 해석될 수 있습니다.

원하는 콘텐츠를 결정하는 두 번째 측면은 일반적인 형태로 콘텐츠 협상(Content Negotiation)이라고 불립니다. 여기서 설명된 형태로 압축된 페이지 콘텐츠를 제공하는 것은 이 일반 원칙에 기반합니다.

HTTP에서의 인코딩

HTTP 1.1은 3.5장에서 각 브라우저가 준수해야 하는 콘텐츠 인코딩을 정의합니다.

서버와 클라이언트 간의 통신에서 이러한 인코딩은 다음과 같은 의미를 가집니다:

  1. 이 클라이언트는 HTTP 헤더 Accept-Encoding:에서 수락된 콘텐츠 인코딩 목록을 지정할 수 있습니다. 특별 인코딩 아이덴티티(콘텐츠를 변경하지 않는 인코딩을 설명하는)는 기본값으로 암묵적으로 사용됩니다.
  2. 서버는 이 클라이언트가 수락한 인코딩을 사용하여 요청된 문서의 콘텐츠를 제공해야 합니다.
    서버가 그렇게 할 수 없는 경우, 요청을 406 Not Acceptable 상태 코드로 거부해야 합니다; 그럼에도 불구하고 요청에 따라 이 클라이언트에 대해 수용할 수 없는 콘텐츠를 제공할 수 있습니다 (그리고 그 처리로 인해 클라이언트에 해결할 수 없는 문제가 발생할 수 있습니다).
    Apache 웹 서버는 이와 관련하여 방어적인 전략을 사용합니다: 클라이언트의 요청에 따라 페이지를 제공할 수 없는 경우, 제공 가능한 여러 다른 변형이 있을 때, 상황에 대한 간단한 설명과 관련된 모든 문서에 대한 링크를 포함하는 HTML 문서를 동적으로 생성합니다. (이 경우는 이 문서가 현재 구성에 따라 deen 언어를 수용하지 않는 브라우저에 의해 요청될 때도 마찬가지입니다; 이 문제를 외국어 독자에게 인식시키기 위해 의도적으로 기본값을 정의하지 않았습니다.)

서버가 클라이언트가 처리할 수 없는 인코딩을 포함하는 파일을 제공하는 경우, 이 클라이언트는 이를 올바르게 처리할 수 없을 수 있습니다.

이 문서의 원본 위치:

http://www.schroepl.net/projekte/mod_gzip/encoding.htm

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.