|
ПРОДОЛЖАЕМ ВОЗИТЬ ВОЗДУХ? "Используя встречный план, а также порожняк..." Михаил Жванецкий
Сначала так, о жизни...
Идея необходимости архивирования или, иначе, сжатия была усвоена человечеством еще до появления компьютеров. Идея эта естественна сама по себе - надувные лодки и детские пляжные мячи никто не возит и не хранит надутыми - иначе в их цену существенно прибавятся расходы на перевозку и хранение воздуха. Или сравним классический ночной горшок, крайне неудобный в смысле вкладывания одного в другой, и продуманное дизайнерское решение лейки-кувшина для полива цветов, которая помимо эстетических форм, еще и позволяет компактно сложить одну в другую несколько таких леек.
Компьютерное сжатие данных изначально имело одну цель - экономию места на носителях (хранение). С развитием Интернета добавилась и вторая - экономия трафика (количества данных, переданных по сети), т.е., фактически, их перевозки. В связи со спецификой Интернета и развитием технологии производства носителей информации, первая цель перестала быть столь уж критичной. Например, на момент написания этих строк на компьютере автора используется всего 5 гигабайт дисковой памяти из 120 возможных, а винчестеров меньшего объема уже и не делают. Или другой пример: объем данного сайта около 6 мегабайт, а где вы видели хостинг меньше 15? В VIP-пакетах на хостинг уже предлагают гигабайты, ибо не жалко...
С трафиком дело обстоит несколько иначе. В случае с веб-сайтами платят все: владелец сайта - за тот объем данных, который передается посетителям и идет от них, посетители - за то, что они с сайта получили и что туда передали. Хотя возможны и упрощенные варианты, например посетители оплачивают только то, что получили с сайта. Или владелец сайта вообще не платит за трафик (разумеется, не всякого сайта!). Появилась и еще одна особенность, в реальной жизни не существовавшая - чем больше данных, тем дольше они передаются.
Поэтому "сжимать однозначно". Скажем немного о сжатии. Простейший пример - вместо АААААААААААААА напишем 14(А), вместо АБАБАБАБ - 4(АБ). Реальные алгоритмы сжатия, разумеется, гораздо сложнее. Алгоритмов и программ сжатия написано много, но, что интересно, результат у них примерно одинаков, а зависит он, в основном, от самих данных.
Посмотрим теперь на сам процесс посещения пользователем сайта, то есть, конечно, только одной его страницы.
- Посетитель набирает в броузере желаемый адрес, или щелкает по ссылке, или вытаскивает адрес из "избранного".
- Броузер формирует запрос (100-200 байт) и передает его на сайт, (точнее на сервер, где хранится сайт), сайт эти байты получает.
- На хостинговом сервере производятся необходимые действия по формированию html-кода запрошенной страницы (практически объем страницы может варьироваться от 1000 байт до 1 мегабайта), перед ней добавляется ответ сервера (200-300 байт, иногда и более) и все это передается в броузер посетителя.
- Броузер не просто начинает художественно показывать полученный html-код, но параллельно находит в нем дополнительные объекты (изображения, стили, программы и т.п.), без которых страница будет незавершенной.
- Для каждого дополнительного объекта выдается запрос к серверу (опять 100-200 байт), сервер формирует запрошенное и передает вместе с прицепленным ответом в броузер, совершенно тем же образом, как и html-код.
- В составе страницы могут быть выполняемые броузером программы, которые потребуют еще запросов к серверу, но через какое-то время все должно "устаканиться" - страница прочитана, изображения распиханы по местам, программы выполнены.
Во всем этом процессе имеет смысл сжимать только html-код, поскольку файлы изображений форматов gif, jpg, png уже сжаты, а файлы типа doc или xls рекомендуется хранить и передавать в сжатом виде, например в виде архива zip.
Ясно, что сжать html-код должен сервер (п.3) перед отправкой в броузер, а разархивировать его должен броузер при получении (п.4).
Однако выясняется, что "не все так ладно в датском королевстве":
- Броузеры типа IE, NN давно умеют разархивировать полученный сжатый код, другие броузеры или роботы поисковиков (выполняющие первые три пункта и складирующие полученное) могут этого и не уметь
- На хостинговом сервере и сайте должны быть приняты специальные меры по обеспечению сжатия
- Сайт (сервер) и броузер должны сообщить друг другу, умеют ли они сжимать и принимать сжатое соответственно
Последнее как раз и предусмотрено в этих самых дополнительных запросе и ответе. То есть броузер в своем запросе говорит, что, помимо прочего, не откажется принять сжатое, если г-н сервер соблаговолят... Ну, а сервер, соответственно, отвечает, что сжал или признается, что о таком он, к своему стыду, даже и не слыхивал.
В результате, дело остается за малым - обеспечить сжатие на сайте. А вот этому вопросу почему-то никогда не уделялось должного внимания в среде веб-разработчиков. Все занимались красотой и прибамбасами, чтобы все блестело, сверкало и бегало. Теперь вот начали думать, как бы от этого половчее уже таки избавиться...
Ну, а теперь к делу...
Если в первых квадратных скобках вы видите слова gzip или deflate, ваш броузер мог принять и, скорее всего, принял эту страницу нашего сайта в сжатом виде: [gzip][Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)]
Если в первых квадратных скобках вы видите слово zlib, наш сайт мог сжать, и мы надеемся, что сжал эту страницу: [zlib][HTTP/1.0][CGI/1.1][Apache]
Ну и окончательный диагноз, было ли сжатие (yes!), то есть договорились, или, как всегда (no...), то есть не срослось: [yes!][Expires=Wed, 22 Dec 2010 15:29:26 GMT][Last-Modified=Wed, 22 Dec 2010 15:29:27 GMT][Cache-Control=post-check=0, pre-check=0][Pragma=no-cache]
Какие могут быть причины отрицательного результата:
- наш сайт не мог сжать страницу - вообще-то должен был, могли измениться настройки хостинга; сообщите нам, пожалуйста;
- ваш броузер не умеет принимать сжатое; может быть у него есть настройки сжатия;
- между вами и нами затесался прокси-сервер, который теряет сведения о сжатии или должен был бы сжимать/разархивировать, но не умеет ни того, ни другого; если вы можете работать без прокси, попробуйте отключить прокси для нашего сайта в настройках броузера, обратитесь к сисадмину или провайдеру доступа по поводу прокси.
Кое что относительно прокси можно определить тут: [][][89.108.72.248] приведен IP-адрес вашего компьютера, сведения о прокси и его IP-адрес или ваш IP-адрес, если прокси нет.
Попробуйте "полечить" IE прямо сейчас: в Сервис/СвойстваОбозревателя/Дополнительно (Tools/InternetOptions/Advanced) в блоке Настройка HTTP 1.1 (HTTP 1.1 settings) включите флажки Использовать HTTP 1.1 и Использовать HTTP 1.1 через прокси-соединения (Use HTTP 1.1 и Use HTTP 1.1 through proxy connections), а затем перечитайте эту страницу. |
|
Примеры
Посмотрев на код этой или любой другой страницы нашего сайта (Вид/В виде HTML), вы увидите в самом конце примерно такие цифры: 0.23:20,464[7,621]37.24%
- время генерации страницы
- объем страницы
- объем после сжатия
- процент сжатия
или, если сжатия не было (только чистка левых отступов), такие: 0.23:20,508(20,025)97.64%
Вот еще несколько примеров: 0.36:35,384[8,228]23.25% 0.61:116,502[16,331]14.02% 0.54:166,108[21,508]12.95% 0.67:172,236[19,754]11.47%
И в заключение отметим, что сжатие/разархивирование даже 200-килобайтной страницы на современных компьютерах практически незаметно - это десятые доли секунды, а объем данных уменьшается от 3 до 20 раз. Посетите в 10 раз больше правильных сайтов за те же деньги!
Нюансы информационных технологий ||| Много профессий - хороших и разных
|
|