Это работает только для HTML / XML
файлы
Нет: он довольно часто используется, например, для файлов CSS и JS - поскольку они являются одной из самых больших вещей, из которых сделаны веб-сайты (кроме изображений), из-за каркасов JS и полнофункциональных приложений JS он представляет собой огромный выигрыш!
На самом деле любой текстовый формат может быть сжат очень хорошо (напротив, изображения не могут, например, так как они, как правило, уже сжаты) ; иногда данные JSON, возвращаемые из Ajax-запросов, тоже сжимаются - это, в общем, текстовые данные; -)
Допустим, мой PHP / Perl файл генерирует
некоторые простые данные, разделенные запятыми, и
отправляет это в браузер, это будет
кодируется по умолчанию?
Это вопрос конфигурации: если вы сконфигурировали свой сервер для сжатия такого рода контента, он, вероятно, будет сжат :-)
(если браузер сообщает, что принимает данные в формате gzip)
Вот пример конфигурации для Apache 2 (с использованием mod_deflate), который я использую в своем блоге:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/xml
</IfModule>
Здесь я хочу, чтобы html / xml / css / JS te был сжат.
И здесь то же самое, плюс / минус несколько опций конфигурации, которые я использовал один раз под Apache 1 (mod_gzip):
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_can_negotiate Yes
mod_gzip_minimum_file_size 256
mod_gzip_maximum_file_size 500000
mod_gzip_dechunk Yes
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.txt$
mod_gzip_item_include file \.js$
mod_gzip_item_include mime text/html
mod_gzip_item_exclude mime ^image/
</IfModule>
Здесь можно заметить, что я не хочу, чтобы слишком маленькие (усиление не было бы очень важным) или слишком большие (потребляли бы слишком много ЦП для сжатия) файлы для сжатия; и я хочу, чтобы файлы css / html / txt / js были сжаты, но не изображения.
Если вы хотите, чтобы данные, разделенные запятыми, сжимались одинаково, вам нужно добавить либо тип контента, либо его расширение в конфигурацию вашего веб-сервера, чтобы активировать для них сжатие gzip.
Есть ли способ проверить это?
Для любого содержимого, возвращаемого непосредственно в браузер, расширения Firefox Firebug или LiveHTTPHeaders являются обязательными.
Для контента, который не проходит через стандартный способ связи браузера, это может быть сложнее; в конце концов, вам, возможно, придется использовать что-то вроде Wireshark , чтобы "понюхать" то, что на самом деле идет по трубам ... Удачи с этим!
А как насчет платформ вроде Silverlight или Flash,
когда они загружают такие данные, они будут сжаты / распакованы
через браузер / время выполнения автоматически?
Чтобы ответить на ваш вопрос о Silverlight и Flash, если они отправляют заголовок Accept, указывающий, что они поддерживают сжатый контент, Apache будет использовать mod_deflate или mod_gzip. Если они не поддерживают сжатие, они не отправят заголовок. Это будет «просто работать». - Нейт