08.05.2012

Velocity: Forcing Gzip Compression

Original on http://www.stevesouders.com/blog/2010/07/12/velocity-forcing-gzip-compression/


width=120

Тоні Gentilcore быў мой officemate калі я толькі пачынаў у Google. Я ганаруся сваім спадчынай, як хлопец YSlow. У рэшце рэшт, YSlow было больш за 1 млн. загрузак. Праз некалькі дзён я даведаўся, што Тоні быў стваральнікам Fasterfox - на чале 11м загрузкі. Залішне казаць, што мы знайшлі агульную мову і быў вялікім годам метад мазгавога штурму для аптымізацыі вэб-прадукцыйнасці.

На працягу гэтага часу Тоні працаваў з камандай пошуку Google і выявіў сёе-тое цікавае: ~ 15% карыстачоў з GZIP-сумяшчальных браўзэраў не пасылалі адпаведныя Accept-Encoding ў загалоўку запыту. У выніку, яны былі адпраўленыя несціснутых адказаў, якія былі 3 разы больш прыводзіць да запаволення загрузкі старонак.Правядучы даследаванне, выявіла, што Тоні пасрэднікаў (давераных асоб і антывіруснае праграмнае забеспячэнне) былі зачысткі або munging Accept-Encoding загаловак. Мой блог, які не атрымлівае GZIP? кароткая інфармацыя аб рабоце са спасылкамі на дадатковую інфармацыю.Чытайце кіраўніка Тоні ў яшчэ хутчэй вэб-сайты для ўсіх дэталяў.

Тоні зараз працуе над Chrome , але адкрыццё ён зрабіў выклікаў працы Эндзі Martone і іншых у камандзе пошуку Google, каб убачыць, калі яны маглі б палепшыць час загрузкі старонкі для карыстачоў, якія не атрымліваюць сціснуты адказ. У іх былі ідэі:

Для запытаў, з адсутнымі або скажонае Accept-Encoding загалоўках, правяраць User-Agent для ідэнтыфікацыі браўзэраў, якія павінны разумець, GZIP. 
Праверце свае здольнасці распакоўваць GZIP. 
У выпадку поспеху, адправіць іх сціснуты кантэнт!

Гэта сапраўды стратэгія, улічваючы, што спецыфікацыі HTTP кажа, што ў адсутнасць Accept-Encoding загаловак, сервер можа паслаць іншую кадыроўку кантэнту на аснове дадатковай інфармацыі (напрыклад, кадоўкі, якія падтрымліваюцца канкрэтным кліентам).

Падчас свайго выступу на хуткасць, прымус Gzip сціск , Эндзі апісвае, як Google Search укаранілі гэты метад:

  • У ніжняй частцы старонкі, уводзіць JavaScript, каб:
    • Праверце, печыва.
    • Калі адсутнічае, усталяваць куки кажуць сціску не нармальна.
    • Запішыце элемент IFRAME да старонцы.
  • Затым браўзэр робіць запыт на змесціва фрэйма.
  • Сервер адказвае HTML дакумент, які заўсёды сціснутыя.
  • Калі браўзэр разумее сціснуты адказ, ён выконвае убудаванае JavaScript і ўстанаўлівае куки на сціск ок.
  • На наступныя запыты, калі сервер лічыць, што сціск ок куки ён можа адправіць сціслыя адказы.

Эканомія значная. Сярэдняя пошук Google на старонцы вынікаў складае 34 Кб, які сціскае да 10 Кб. Магчымасць адпраўкі сціснутага адказу скарачае час загрузкі старонкі на ~ 15% для гэтых пацярпелых карыстачоў.

Эндзі слайды ўтрымліваюць больш падрабязную інфармацыю аб тым, як толькі запусціць тэст адзін раз, рэкамендуецца печыва жыцця, а таксама падрабязнасці аб ўручэнні фрэйма. Пасля гэтага адкрыцця я размаўляў з хлопцамі з іншых вэб-сайтаў, якія пацвярджаюць гэтыя таямнічыя запыты, якія адсутнічаюць Accept-Encoding загаловак. Праверце гэта на Вашым сайце – 15% значная частка карыстачоў! Калі вы хочаце палепшыць свой ​​час загрузкі старонкі, прымаць парады Эндзі і адправіць іх сціснуты адказ, які менш і хутчэй.

Comments are closed.