Технологии · 1 min read · Sep 13, 2025

mod_gzip - обслуживание сжатого контента веб-сервером Apache - Страница 2

Автор: Михаэль Шрёпл

Связь в HTTP

Для передачи веб-контента между сервером и клиентом используется Протокол передачи гипертекста (HTTP).

Связь осуществляется следующим образом:

  1. Клиент отправляет запрос на сервер. Этот запрос в основном состоит из HTTP-заголовков, которые описывают, какие данные клиент хочет получить.
    В некоторой степени клиент может непосредственно влиять на содержание данных (например, указывая URL запрашиваемой страницы); другие части его запроса предоставляют серверу дополнительную информацию о том, какой тип данных клиент предпочел бы получить, если сервер должен предложить несколько вариантов данных.
  2. Сервер оценивает всю доступную информацию, чтобы решить, какие данные с какими атрибутами были запрошены, и затем пытается предоставить эти данные в форме, наиболее подходящей для запроса клиента.
    Этот пакет данных снова содержит HTTP-заголовки, но в основном данные - которые, тем не менее, могут быть частично интерпретируемыми без учета HTTP-заголовков.

Второй аспект определения желаемого контента называется Согласование контента в его общем виде. Доставка сжатого контента страницы в описанной здесь форме основана на этом общем принципе.

Кодировки в HTTP

HTTP 1.1 определяет в главе 3.5 так называемые кодировки контента, которые должны поддерживаться каждым браузером, соответствующим этому стандарту.

Для связи между сервером и клиентом эти кодировки имеют следующее значение:

  1. Этот клиент может указать список принятых кодировок контента в HTTP-заголовке Accept-Encoding:. Специальная идентичность кодировки (описывающая кодировку, которая не изменяет содержимое) будет использоваться неявно как значение по умолчанию.
  2. Сервер должен доставить содержимое запрашиваемого документа, используя кодировку, принятую этим клиентом.
    Если сервер не может этого сделать, он должен отклонить запрос с кодом состояния 406 Not Acceptable; тем не менее, он может предоставить содержимое, не приемлемое для этого клиента в соответствии с его запросом (и обработка которого может вызвать неразрешимые проблемы для клиента).
    Веб-сервер Apache использует в этом отношении защитную стратегию: если он не может обслужить страницу в соответствии с запросами клиента, но имеет несколько других вариантов на выбор, он динамически генерирует HTML-документ, содержащий краткое описание ситуации и ссылки на все соответствующие документы. (Это также происходит, если этот самый документ запрашивается браузером, который не принимает ни один из языков de и en, поддерживаемых мной в соответствии с его текущей конфигурацией; я сознательно не определил значение по умолчанию, чтобы сделать эту проблему очевидной для читателей, говорящих на иностранных языках.)

Если сервер обслуживает файл, содержащий кодировку, клиенту, не способному с ней справиться, то этот клиент может не смочь обработать его корректно.

Оригинальное местоположение этого документа:

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.