категории | RSS

Привет всем. Хочу рассказать немного о браузерах, а именно о их способности сжатия страниц и как это происходит.
Хочу обратить внимание что буду рассказывать только о тех браузерах которыее использовал сам (на смарте).
Итак начнем с того, что все браузеры условно можно разделить на 3 группы:

1) Браузеры которые не используют сжатие.
- сюда можно отнести стандартный браузер телефона, нетфронт, и оперу для смарта(не jar).
2) Браузеры которые сжимают страницы своим алгоритмом сжатия.
- такие как опера мини, юцвеб
3) Браузеры которые помимо своего алгоритма сжатия применяют еще и архиватор
- знаю тока один опера мини мод.

А теперь как все работает.

Для начала приведем самую простую страницу в качестве примера:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>заголовок страницы</title></head><body bgcolor="white" link="black" text="black"><p>Привет мир</p></body></html>


Изначально вес такой страницы 550 байт

Итак первый тип браузеров загружает нам всю эту станицу в принципе тут ни чего интересного не происходит

Второй тип браузеров чтобы загрузить эту же страницу обращается на свои сервер там она загружается, обрабатывается и возвращается уже сжатой. Эта возвращенная страница уже будет весить меньше 100 байт

Теперь наверно у вас возник вопрос КАК это делается?

Это делается приблизительно одинаково в обоих арбузах - из страницы удаляются теги и собирается все в свой формат, а именно:

- в опере мини возвратится структура одной строкой:

XX DD TT dd заголовок страницы TT dd Привет мир 00


- в юцвеб немного длиннее и каждый элемент стоит в своей строке:


XX
TT
NN
TT
заголовок страницы
TT
NN
TT
Привет мир


где:
XX - стоит всегда первым(присутствует и в мини и в юцвебе правда у каждого они разные) и служит для описания формата (контроля расширения)
DD - есть только в мини нужен для хранения длинны до конца файла
TT - это тип объекта (текст, ссылка, заголовок и т.д) тоже есть у обоих браузеров.
dd - это длинна объекта (например колличество знаков букв и цифр в идущем после него тексте) есть только в мини в юцвеб он не нужен т.к там достаточно просто прочитать строку до конца.
NN - это номер последовательности объекта и тоже является объектом есть только в юцвеб служит для проверки и в принципе не является важным (но делает формат больше) возможно его китайцы со временем уберут и тогда их браузер будет сжимать также как и мини
00 - это метка конца файла есть только в мини.

И наконец последний тип, а именно опера мини мод, по сути сначала она делает то же самое что и опера мини но в конце еще полученную структуру архивирует Gzip-ом плюсы этого думаю рассказывать не надо.

P.S Для наглядности я сознательно не включил в описание форматирование текста(цвет, шрифт).
P.P.S Эту статью я написал по своим личным наблюдениям и небольшим опытом в изучении этих форматов. Возможно в тексте присутствуют не правильные формулировки, но общий смысл думаю понятен.

VIP666VIP
2008-10-26T17:57:17Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 11

Яндекс.Метрика