Сжатие и снижение загрузки сети

Хороший способ спижепия загрузки сети — это сжать ответ так, чтобы это было приемлемо для получателя. Сжатие используется во мпогих протоколах прикладного уровня и входит в НТТР/1.0. Некоторые популярные форматы графических данных являются предварительно сжатыми. Например, популярными форматами изображений являются GIF и JPEG, в которые включено сжатие данных. От повторного сжатия таких ресурсов пет особой пользы. Однако многие другие ответы, которые Обычно хранятся в иесжатом виде (например, обычпый текст) могут быть сжаты Web-сервером перед их передачей. Допустимо даже сжатие заголовков запросов и ответов, по выгода от такого сжатия не слишком яспа, если учесть наличие промежуточных серверов. В HTTP заголовки не сжимаются.

Кодирование содержания было возможно в НТТР/1.0 (с помощью заголовка содержимого Content-Encoding) и указывало на способ преобразования ресурса по сквозпому принципу. Поскольку НТТР/1.0 не делал различий между механизмом промежуточных передач и сквозпой передачей данных, певозМожно было реализовать сжатие на основе механизма промежуточных передач. Предположим, что двум промежуточным серверам известен хороший алгоритм сжатия, который требует небольшого времени на сжатие, и обеспечивает лучшее сжатие, чем другие алгоритмы. Эти серверы могут стремиться использовать этот алгоритм для кодирования сообщений при обмене между собой. Другие серверы на пути от отправителя к получателю не обязапы пичего зпать об этом алгоритме. Кроме того, если имеется выбор между разными алгоритмами сжатия, серверу может потребоваться указать на предпочтительный алгоритм. И то, и другое возможно в НТТР/1.1.

Механизм кодирования при передаче является механизмом промежуточных передач для указания преобразований, примененных к телу содержимого. Клиент может включить заголовок Accept-Encoding для указания приемлемых схем кодирования содержания, он может также использовать заголовок запроса ТЕ для указания предпочтительных схем кодирования при передаче. Например,

ТЕ: vdcomp; q=0.9, compress; q=0.1

означает, что отправитель готов прнпять кодирование при передаче vdcomp с высоким коэффициентом качества 0.9 и compress с пизким коэффициентом качества 0.1. Клиент при выборе коэффициента качества (0.9 для vdcomp и 0.1 для compress) может руководствоваться несколькими доводами, такими как паличие соответствующих программ и быстродействие этих алгоритмов. Сервер, получив гакой запрос, попытается выбрать наибольший коэффициент качества, указанный в запросе, и откажется от выбора любого алгоритма, для которого клиент задал зпачепие коэффициента качества, равное 0 (то есть рассматриваемый как неприемлемый для клиента). Вариант, приведенный в запросе, является предпочтительным, по пет гарантии, что сервер может его удовлетворить. В примере, приведенном выше, сервер может выбрать кэшировапиое зпачепие в формате compress, игнорируя тот факт, что инициатор запроса может предпочитать формат vdcomp. Сервер, который или не может, или не готов выполнить специфическое кодирование при передаче, не осуществляет преобразование ответа. Заголовок ТЕ применим только к прямому соединению, и, следовательно, любые два сервера, воспринимающие алгоритм сжатия vdcomp, могут извлечь из этого выгоду, включив этот заголовок.

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100