еще раз про gzip компрессию

col

Guest
еще раз про gzip компрессию

При выдачи броузеру скомпресованной :) страницы обязательно выдовать header('Content-Encoding: gzip') или нет.
и как ваще проверить результат работы ли компрессии.

дальше лирика...

Это я к чему давно чоху разобраться с gzip компрессией.
Вот стал разбираться при помощи форума phpBB так там накнулся на реализацию этой штуковины, НО прикол в том, что там есть два способа :

в первом просто устанавливают
ob_start('ob_gzhandler');

а во втором способе (руками)
1. выдают заголовок header('Content-Encoding: gzip')
2. перхватывают вывод страницы (буфер)
3. производят компрессию
4. И выдают тело компрессии

мот хронологию и попутал но не в этом соль

если во втором случаи всё прозрачно и когда смотриш список пересылаемых заголовков браузеру то видно
Content-Encoding: gzip в списке и если не пересылать заголовок то выводится зюкалы казюкалы. вродебы это можно принять за подтверждение работы компрессии.

а вот что косательно первого случая то проверить его работоспособность как то не представляется возможным МНЕ.
в списке заголовков Content-Encoding: gzip нет но форум работает именно по первому способу и никаких ошибок не выдаёт. А верить на слово както не хоцца. Вот собственно и спрашиваю.....

PS
если кому интересно то вот кусок кода
PHP:
if ( $board_config['gzip_compress'] )
{
	$phpver = phpversion();

	$useragent = (isset($_SERVER["HTTP_USER_AGENT"]) ) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT;

	if ( $phpver >= '5.0.4pl1' && ( strstr($useragent,'compatible') || strstr($useragent,'Gecko') ) )
	{
		if ( extension_loaded('zlib') )
		{
			ob_start('ob_gzhandler');
		}
	}
	else if ( $phpver > '4.0' )
	{
		if ( strstr($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'], 'gzip') )
		{
			if ( extension_loaded('zlib') )
			{
				$do_gzip_compress = TRUE;
				ob_start();
				ob_implicit_flush(0);

				header('Content-Encoding: gzip');
			}
		}
	}
}
 
Сверху