Является ли сжатие HTTP-ответа бесполезным, когда Content-Length меньше 1K? - PullRequest
2 голосов
/ 16 марта 2011

Я написал веб-сервис, который отвечает JSON-контентом ниже 1K.Какая из этих стратегий сжатия является лучшей?

  • gzip это содержимое обратным прокси-сервером как любой другой текстовый ресурс?
  • Добавить правило, чтобы не сжимать ресурсы ниже порога?

Я думаю, что размер пакета в сети Интернет превышает 1 КБ ( Эта статья довольно интересна, но она приносит мне больше вопросов, чем ответов: 579 байт? 1518 байт?),Таким образом, имело бы смысл не тратить время и процессор на сжатие контента, который уже будет отправлен в 1 пакете.

Таким образом, я больше смотрю на чье-то тестирование этих двух стратегий?Кто-нибудь сделал какой-нибудь тест?И меня также интересует написанное вами правило.

Спасибо

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Я скачал копию этой страницы (то есть исходный код, содержащий HTML-код для этого вопроса) и сохранил только первые 993 символа.

То есть исходный размер составляет 993 символа.

Сжатие этого файла с использованием сжатия gzip приводит к получению файла размером 595 байт.

Это означает, что новый файл составляет почти 60% от исходного!

Вывод: Да, этолегко стоит ~ 1 КБ (текстовых) данных.

Приблизительно вдвое уменьшив исходный размер до 515 символов, можно получить сжатый файл из 397 символов, более новый файл составляет около 77% от исходного, не так хорошо, но все жепреимущество.

Примерно вдвое уменьшив размер файла до 223 символов, можно получить сжатый файл размером 277 байт, а сжатый файл стал больше, поэтому для очень маленьких размеров пакетов сжатие gzip бесполезно, хотяеще можно добиться сжатия.(Но не с наивным использованием gzip).

Чтобы дать вам представление о том, каков крошечный ~ 500 байт, рассмотрите ответ google.com (включая заголовки HTTP):

HTTP/1.0 302 Found
Location: http://www.google.com/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
X-Content-Type-Options: nosniff
Date: Wed, 16 Mar 2011 11:27:29 GMT
Server: sffe
Content-Length: 219
X-XSS-Protection: 1; mode=block

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

Это уже 465 байт, включая заголовок!(Но заголовок HTTP обычно не сжимается, только содержимое ... Здесь 219 символов).

Сжатие, которое приводит к размеру файла 266 (исключая заголовки), поэтому небольшое увеличение нестоит беспокоиться.

0 голосов
/ 16 марта 2011

Хотя это может не помочь, сжатие небольшого пакета, вероятно, также не повредит. Кроме того, системы с высокой степенью параллелизма, которые используют keep-alives, могут по-прежнему выигрывать, поскольку они могут буферизовать несколько ответов в одном пакете, и сжатие будет сжимать больше ответов в каждый пакет.

...