Назад | Перейти на главную страницу

Как содержимое GZip передается в Интернете?

Я слышал, что статическое содержимое, такое как CSS и JavaScript, лучше доставлять в формате GZip. Сеть разработчиков контента (CDN) всегда так поступает.

Однако я не понимаю, как работает этот формат. Сначала, когда я попытался создать сжатый файл через командную строку. Расширение файла .gz. Это отличается от .css и .js. Как браузеры распознают, какой файл заархивирован или нет.

Во-вторых, как браузеры «распаковывают» файлы? Я перетащил свой index.html.gz в мои браузеры. Но никто не работал.

Gzip-архив, о котором вы говорите, невидим для конечного пользователя, да и для вас как разработчика. Об этом позаботится ваш веб-сервер и веб-браузер клиента.

Для IIS необходимо включить расширение GZip ISAPI (инструкции можно найти на этом сайте), а для Apache - mod_deflate.

Когда веб-браузер завершил свой запрос, но перед его отправкой в ​​широкий мир, он сжимает содержимое и помещает специальный заголовок, чтобы браузер знал, что содержимое сжато.

Когда веб-браузер получает ответ, он распаковывает данные и читает файл. Это полностью прозрачно для конечного пользователя.

Обычно вы хотите использовать GZip только для текстовых файлов. Нет смысла использовать его на изображениях, так как изображения уже сильно сжаты.

Я заметил уменьшение размера страницы с 90 КБ (время загрузки около 1 секунды) до размера страницы примерно 5 КБ (время загрузки, 0,4 секунды) при включении GZip для всего статического содержимого (CSS, Javascript и т. Д.).

Что бы вы обнаружили, если бы посмотрели пакеты с помощью Wireshark и собрали их заново, вы бы запросили /index.html, но веб-сервер получит /index.html, GZip его в /index.html.gz и отправь его. Веб-браузер знает об этом и разархивирует его, чтобы он вернулся в /index.html, поэтому, когда вы переходите к просмотру исходного кода, вы видите /index.htmlне /index.html.gz

Обычно Gzip-сжатие статического содержимого с веб-сервера выполняется через Apache mod_deflate.

http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Обычно это делается только с текстовыми файлами в форматах text / plain, text / html и text / xml, это можно сделать с другими типами текстового контента (css, js и т. Д.), Но это может вызвать проблемы с ранними версиями Интернета. исследователь. (править: сейчас v6 и ниже)

Изображения должны быть сжаты в том формате, в котором они хранятся, поэтому к ним не должно применяться дополнительное сжатие (например, mod_deflate).