26.02.2013

Хуткасць: Прымус сціску Gzip

* Source text URL: http://www.stevesouders.com/blog/2010/07/12/velocity-forcing-gzip-compression/



12 ліпеня 2010 г. 06:57 вечара | 25 Каментары

fasterfox

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

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

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

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

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

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

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

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

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

ok ok