웹 서버 · 1 min read · Sep 13, 2025
mod_gzip - 압축된 콘텐츠 제공하기 - 페이지 2
저자: Michael Schröpl
HTTP에서의 통신
웹 콘텐츠의 서버와 클라이언트 간 전송을 위해 하이퍼텍스트 전송 프로토콜 (HTTP)이 사용됩니다.
통신은 다음과 같은 방식으로 작동합니다:
- 클라이언트는 서버에 요청을 보냅니다. 이 요청은 주로 클라이언트가 수신하고자 하는 데이터에 대해 설명하는 HTTP 헤더로 구성됩니다.
어느 정도 클라이언트는 요청된 페이지의 URL을 지정하는 것과 같이 데이터 콘텐츠를 직접적으로 영향을 미칠 수 있습니다; 요청의 다른 부분은 서버에 클라이언트가 받고 싶어하는 데이터 유형에 대한 추가 정보를 제공합니다. - 서버는 요청된 데이터의 속성을 결정하기 위해 모든 사용 가능한 정보를 평가하고, 이후 클라이언트의 요청에 가장 적합한 형태로 이러한 데이터를 제공하려고 시도합니다.
이 데이터 패킷은 다시 HTTP 헤더를 포함하지만 주로 데이터를 포함하고 있으며, 이는 HTTP 헤더를 고려하지 않고는 부분적으로만 해석될 수 있습니다.
원하는 콘텐츠를 결정하는 두 번째 측면은 일반적인 형태로 콘텐츠 협상(Content Negotiation)이라고 불립니다. 여기서 설명된 형태로 압축된 페이지 콘텐츠를 제공하는 것은 이 일반 원칙에 기반합니다.
HTTP에서의 인코딩
HTTP 1.1은 3.5장에서 각 브라우저가 준수해야 하는 콘텐츠 인코딩을 정의합니다.
서버와 클라이언트 간의 통신에서 이러한 인코딩은 다음과 같은 의미를 가집니다:
- 이 클라이언트는 HTTP 헤더 Accept-Encoding:에서 수락된 콘텐츠 인코딩 목록을 지정할 수 있습니다. 특별 인코딩 아이덴티티(콘텐츠를 변경하지 않는 인코딩을 설명하는)는 기본값으로 암묵적으로 사용됩니다.
- 서버는 이 클라이언트가 수락한 인코딩을 사용하여 요청된 문서의 콘텐츠를 제공해야 합니다.
서버가 그렇게 할 수 없는 경우, 요청을 406 Not Acceptable 상태 코드로 거부해야 합니다; 그럼에도 불구하고 요청에 따라 이 클라이언트에 대해 수용할 수 없는 콘텐츠를 제공할 수 있습니다 (그리고 그 처리로 인해 클라이언트에 해결할 수 없는 문제가 발생할 수 있습니다).
Apache 웹 서버는 이와 관련하여 방어적인 전략을 사용합니다: 클라이언트의 요청에 따라 페이지를 제공할 수 없는 경우, 제공 가능한 여러 다른 변형이 있을 때, 상황에 대한 간단한 설명과 관련된 모든 문서에 대한 링크를 포함하는 HTML 문서를 동적으로 생성합니다. (이 경우는 이 문서가 현재 구성에 따라 de와 en 언어를 수용하지 않는 브라우저에 의해 요청될 때도 마찬가지입니다; 이 문제를 외국어 독자에게 인식시키기 위해 의도적으로 기본값을 정의하지 않았습니다.)
서버가 클라이언트가 처리할 수 없는 인코딩을 포함하는 파일을 제공하는 경우, 이 클라이언트는 이를 올바르게 처리할 수 없을 수 있습니다.
이 문서의 원본 위치:
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.