Страница: 1 |
Страница: 1 |
Вопрос: Встроенный Gzip?
Добавлено: 25.01.06 06:04
Автор вопроса: HACKER
Слышал я что IE (а может и не только) имеют встроенный функции для
разархивации сжатых данных Gzip'ом. Причём, вроде, делают это на лету,
т.е. страницу отображают разархивированную, нормальну, сразу итп :)
Если брехня - не пинайте :) Просто если браузер действительно способен
принимать архивированные Gzip данные и на лету обрабатывать их, почему
все сайты не перешли на эту технологию? Т.е. не передают мне
архивированные данные? Ой! А может я не просвящённый, и оно уже кто
знает сколько действительно так и работает? :) А может кто и раскажет
как сформировать такой "сжатый пакет" (незнаю как по другому назвать)
для браузера, чтобы тот сам распокавал и отобразил в красивом виде...
И ещё... Что там насчёт тунельных прокси серверов с gzip архивацией?
Неужели достаточно выделенного сервера с неограниченным трафиком для
того чтобы предоставлять "сервис сжатия трафика" ? Вообщем у кого
какие мысли/знание в этой области - кАлитесь! :)))))
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #1
Добавлено: 25.01.06 11:04
Тебе пример на php надо или как?
Номер ответа: 2
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #2
Добавлено: 25.01.06 11:11
Крути педали в сторону deflate.
Первая ссылка для затравки:
http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 25.01.06 21:39
Спасибо UU, читаю, разбераюсь...
Александр, да примерчик бы не помешаел, только не перепутай с простым
Gzip архивированием строки или файла, это я и сам умею... Нужно именно
составить пакет для бразуреа. Впрочем, как я понял пхп здесь наверно
не причём, тут рулит апач заточенный под gzip архивирование данных, а
как подробнее должна помочь ссылка которую дал UU. Я правельно
ситуацию понял?
Номер ответа: 4
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #4
Добавлено: 26.01.06 08:52
HACKER, держи:
<?
/*
** Title.........: PHP4 HTTP Compression Speeds up the Web
** Version.......: 1.20
** Author........: catoc <catoc@163.net>
** Filename......: gzdoc.php
** Last changed..: 18/10/2000
** Requirments...: PHP4 >= 4.0.1
** PHP was configured with --with-zlib[=DIR]
** Notes.........: Dynamic Content Acceleration compresses
** the data transmission data on the fly
** code by sun jin hu (catoc) <catoc@163.net>
** Most newer browsers since 1998/1999 have
** been equipped to support the HTTP 1.1
** standard known as "content-encoding."
** Essentially the browser indicates to the
** server that it can accept "content encoding"
** and if the server is capable it will then
** compress the data and transmit it. The
** browser decompresses it and then renders
** the page.
**
** Modified by John Lim (jlim@natsoft.com.my)
** based on ideas by Sandy McArthur, Jr
** Usage........:
** No space before the beginning of the first '<?' tag.
** ------------Start of file----------
** |<?
** | include('gzdoc.php');
** |?>
** |<HTML>
** |... the page ...
** |</HTML>
** |<?
** | gzdocout();
** |?>
** -------------End of file-----------
*/
ob_start();
ob_implicit_flush(0);
function CheckCanGzip(){
global $HTTP_ACCEPT_ENCODING;
if (headers_sent() || connection_timeout() || connection_aborted()){
return 0;
}
if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip";
if (strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false) return "gzip";
return 0;
}
/* $level = compression level 0-9, 0=none, 9=max */
function GzDocOut($level=1,$debug=0){
$ENCODING = CheckCanGzip();
if ($ENCODING){
print "\n<!-- Use compress $ENCODING -->\n";
$Contents = ob_get_contents();
ob_end_clean();
if ($debug){
$s = "<p>Not compress length: ".strlen($Contents);
$s .= "<br>Compressed length: ".strlen(gzcompress($Contents,$level));
$Contents .= $s;
}
header("Content-Encoding: $ENCODING"
print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$Size = strlen($Contents);
$Crc = crc32($Contents);
$Contents = gzcompress($Contents,$level);
$Contents = substr($Contents, 0, strlen($Contents) - 4);
print $Contents;
print pack('V',$Crc);
print pack('V',$Size);
exit;
}else{
ob_end_flush();
exit;
}
}
?>
Номер ответа: 5
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #5
Добавлено: 26.01.06 08:55
А вообще любой исходник в тему не помешает. Я прав?
Номер ответа: 6
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #6
Добавлено: 26.01.06 10:02
не причём, тут рулит апач заточенный под gzip архивирование данных
Не совсем.. На многих сайтах аднимы не включают gzip, а бывает и включают. Апач тут не причем - он только отправляет данные, обработанные скриптом. А ты посмотри тот исходник выше.
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 27.01.06 17:45
Александр, бАльшое спасибо!
Номер ответа: 8
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #8
Добавлено: 13.02.06 19:39
2HACKER:
Скорее всего не все так просто, а так бы действительно все бы
уже перешли
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 13.02.06 20:06
Конечно, не все так просто, хостеры экономят машины и набивают на них сайтов столько, что загрузка проца все время под 80-100%, сервера gzip просто не потянут.
того чтобы предоставлять "сервис сжатия трафика" ?
http://all4web.ru/ - творение Павла
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 13.02.06 20:16
Видел кстати, но своё создать интереснее