Как настроить сжатие gzip на веб-сервере? - PullRequest
3 голосов
/ 17 октября 2008

У меня есть встроенный веб-сервер, на котором всего 2 мегабайта. Обычно вы используете файлы gzip для клиентов, но это сэкономит нам место на сервере. Я прочитал, что вы можете просто сжать файл JS и сохранить его на сервере. Я проверил это на IIS, и мне совсем не повезло. Что именно мне нужно делать на каждом этапе процесса, чтобы сделать эту работу?

Вот как я это представляю:

  1. gzip foo.js
  2. изменить ссылку в html так, чтобы она указывала на foo.js.gz вместо просто .js
  3. Добавить какой-нибудь заголовок к ответу?

Спасибо за любую помощь.

-fREW

РЕДАКТИРОВАТЬ : Мой веб-сервер не может ничего делать на лету. Это не Apache или IIS; это двоичный файл на процессоре ZiLog. Я знаю, что вы можете сжимать потоки; Я только что слышал, что вы также можете сжать файлы один раз и оставить их сжатыми.

Ответы [ 3 ]

5 голосов
/ 17 октября 2008

Как уже упоминали другие, mod_deflate делает это за вас, но я думаю, вам нужно сделать это вручную, поскольку это встроенная среда.

Прежде всего вы должны оставить имя файла foo.js после того, как вы его распакуете.

Вы не должны ничего менять в своих html-файлах. Поскольку файл по-прежнему foo.js

В заголовке ответа (gzipped) foo.js вы отправляете заголовок

Content-Encoding: gzip

Это должно сработать. Клиент запрашивает foo.js и получает Content-Encoding: gzip, за которым следует файл gzip, который он автоматически распаковывает перед анализом.

Конечно, это предполагает, что вы уверены, что клиент понимает кодировку gzip. Если вы не уверены, вы должны отправлять gzipped данные только тогда, когда заголовок запроса содержит

Accept-Encoding: gzip
1 голос
/ 17 октября 2008

Если вы используете Apache, вы используете mod_deflate , и он сжимается на лету.

Я думаю, вы сбиты с толку, думая, что если вы что-то сжали, это должен быть файл. Вместо этого, подумайте о том, что файл - это просто поток данных, и этот поток данных может быть сжат здесь, передан и распакован там без необходимости думать об этом клиенту.

1 голос
/ 17 октября 2008

Использование сжатия gzip на веб-сервере обычно означает сжатие выходных данных с него для сохранения пропускной способности - не совсем то, что вы имеете в виду.

Посмотрите на это описание или же Этот пример

...