Как настроить сжатие gzip на веб-сервере?
-
03-07-2019 - |
Вопрос
У меня есть встроенный веб-сервер, на котором всего 2 Мегабайта места.Обычно вы сжимаете файлы для удобства клиентов, но это сэкономит нам место на сервере.Я читал, что вы можете просто сжать js-файл и сохранить его на сервере.Я тестировал это на IIS, и мне вообще не повезло.Что именно мне нужно делать на каждом этапе процесса, чтобы все заработало?
Я представляю, что это будет так:
- gzip foo.js
- измените ссылку в html, чтобы она указывала на foo.js.gz, а не только на .js
- Добавить какой-то заголовок к ответу?
Спасибо за любую помощь.
-FREW
РЕДАКТИРОВАТЬ:Мой веб-сервер ничего не может делать на лету.Это не Apache или IIS;это двоичный файл на процессоре ZiLog.Я знаю, что вы можете сжимать потоки;Я только что услышал, что вы также можете один раз сжать файлы и оставить их сжатыми.
Решение
Как уже упоминали другие, mod_deflate делает это за вас, но я думаю, вам нужно сделать это вручную, поскольку это встроенная среда.
Прежде всего, вам следует оставить имя файла foo.js после его сжатия.
Вам не следует ничего менять в своих html-файлах.Поскольку файл по-прежнему foo.js
В заголовке ответа (gzip) foo.js вы отправляете заголовок
Content-Encoding: gzip
Это должно сработать.Клиент запрашивает foo.js и получает Content-Encoding:gzip, за которым следует сжатый файл, который автоматически разархивируется перед анализом.
Конечно, это предполагает, что вы уверены, что клиент понимает кодировку gzip. Если вы не уверены, вам следует отправлять сжатые в gzip данные только тогда, когда заголовок запроса содержит
Accept-Encoding: gzip
Другие советы
Использование сжатия gzip на веб-сервере обычно означает сжатие выходных данных для экономии пропускной способности — это не совсем то, что вы имеете в виду.
Если вы используете Apache, вы используете mod_deflate, и он сжимается на лету.
Я думаю, вы запутались, думая, что если вы что-то сжимаете, то это должен быть файл.Вместо этого подумайте о том, что файл — это просто поток данных, и этот поток данных может быть сжат здесь, передан и распакован там, причем клиенту даже не придется об этом думать.