Обслуживание непосредственно с gzip-контентом - плохая вещь?

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

<link rel='stylesheet' href='http://cdn-domain.com/css/style.css.gzip?ver=0.9' type='text/css' media='all' />

Я не вижу, чтобы какой-либо сайт делал что-либо подобное. Итак, вопрос в том, что с этим не так? Должен ли я ожидать недостатков?

Именно так, как я понимаю, большинство веб-сайтов настроены на обслуживание обычных статических файлов (.css,.js и т.д.) и gzipped-содержимого (.css.gz,.js.gz и т.д.), только если запрос приходит с a Accept-Encoding: gzip. Почему они должны делать это, когда все браузеры поддерживают gzip точно так же?

PS: Я вообще не вижу проблем с производительностью, потому что весь статический контент gzipped до загрузки его в CDN, который затем просто служит для файлов gzipped. Поэтому на моем сервере нет стресса/напряжения.


На всякий случай это полезно, здесь информация заголовка HTTP-ответа для файла CSS с gzipped:

Снимок экрана 1

И это для gzipped файла favicon.ico:

Скриншот 2

Ответы

Ответ 1

Поддержка Content-Encoding: gzip не является требованием какой-либо текущей спецификации HTTP, поэтому существует триггер в форме заголовка запроса.

На практике? Если ваша аудитория использует веб-браузер, и вас беспокоит только законных пользователей, тогда есть очень и очень мало шансов, что на кого-то действительно повлияет только наличие предварительно обработанных gzip-версий. Это остаток ушедшего века. Браузеры в эти дни должны обрабатывать сжатый контент с принудительной загрузкой, даже если они не запрашивают его, пока вы также предоставляете им правильные заголовки для содержимого, которое им предоставляется. Важно понимать, что HTTP-запрос/ответ - это беседа и что большинство заголовков в запросе именно это; a запрос. По большей части сервер на другом конце не обязан соблюдать какие-либо определенные заголовки, и до тех пор, пока они возвращают действительный ответ, который имеет смысл, клиент на другом конце должен делать все возможное, чтобы понять, что было возвращено, Это включает включение gzip, если сервер отвечает, что он его использовал.

Если ваша цель - потребление компьютера, то будьте немного осторожны. Люди по-прежнему считают, что разумная идея писать собственные собственные партеры HTTP/SMTP/etc иногда даже при том, что тема была доведена до смерти в нескольких библиотеках для почти любого языка там. Все библиотеки должны поддерживать gzip просто отлично, но ручные парсеры обычно не будут.