Optimalizace webu | 4. Time To First Byte (TTFB)

V tomto díle se zaměříme na stručnější rozebrání tohoto pojmu. Rovněž zde probereme Keep-alive a Compress transfer včetně pojmu gzip.

TTFB označuje čas, mezi dotazem na stránku a okamžikem, kdy od serveru obdrží první bajt informací. Do této doby se započítává vyhledávání DNS, navázání připojení pomocí TCP a SSL, přesměrování na samotné webu atd. Důležité je, že se nejedná o dobu, za jakou se samotný web zcela načte. Můžete mít opravdu rychlý web, ale TTFB bude vysoké anebo naopak můžete mít pomalý web ale nízké TTFB.

Co tedy přesně tuto metriku například ovlivňuje:

  • Odezva serveru / optimalizace webu
  • Nastavené přesměrování
  • DNS
  • Síťové připojení
  • SSL

Odezva serveru / optimalizace webu

Tato záležitost se nejčastěji řeší v případě sdílených webhostingů. Sdílený webhosting není vyhrazený server, takže má omezené parametry a na to je potřeba myslet v případě tvorby webu.

Většina webů provádí různé PHP procesy, kterých má na sdíleném webhostingu omezeně. Pokud tedy máme web, který využívá více procesů nebo provádí více dotazů, bude tento web mít samozřejmě větší odezvu. V takovém případě můžete zkusit web optimalizovat, případně zjistit, zda nelze pro webhosting zajistit více PHP procesů.

Může být problém na straně poskytovatele webhostingu?

Samozřejmě ano, v případě měření může mít poskytovatel technickou poruchu nebo problém se sítí (například i DDOS útok). V takovém případě poskytovatel o problému ví a pracuje na jeho řešení. V případě WEDOS je možné stav služeb ověřit přes WEDOS Online nebo WEDOS Status.

DNS / Síťové připojení / SSL

Existuje jen velmi málo případů, kdy TTFB ovlivní zrovna DNS avšak nemožné to není. Jedná se však spíše o případě vlastních, menších DNS serverů.

Problém se síťovým připojením je však komplexnější problém. Proto je možné v případě WebPageTestu nastavit odkud se má dotaz na Váš web provést. Tímto můžete vyloučit prodlevu na lokální síti.

Samotný certifikát Vám web nijak nezpomalí, jde spíše o způsob přesměrování, který má vliv na TTFB i na celkovou rychlost načtení webu.

Jak tedy tyto časy vylepšit?

Nejdříve se zaměřte na co nejefektivnější přesměrování z http na https a případně i verzi s www nebo bez www. Doporučujeme využívat následující kód, který zvládá efektivně obojí.

RewriteEngine On

# přesměrování všech variant bez www na zabezpečenou variantu s www
RewriteCond %{HTTP_HOST} ^domena\.cz [NC]
RewriteRule (.*) https://www.domena.cz/$1 [R=301,QSA,L]

# přesměrování nezabezpečené varianty na zabezpečenou variantu s www
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.domena.cz/$1 [R=301,L]

# přesměrování všech dalších nezabezpečených požadavků na zabezpečené
Header set Content-Security-Policy "upgrade-insecure-requests;"

Dále si zajistěte co nejrychlejší odezvu samotného webu optimalizací obrázků a nastavením cache (této problematice se věnují následující díly seriálu).

Keep-alive

Tato hlavička umožňuje aby bylo připojení mezi prohlížečem a serverem otevřené a data se mohla stáhnout najednou. V opačném případě, by se prohlížeč připojil na server stáhl část položek a odpojil se. Poté by se musel znovu připojit a znovu stahovat.

Toto nastavení provádí obvykle již poskytoval webhostingu.

Compress transfer

Data je vhodné přenášet komprimované. Stejný postup máte při nahrávání a stahování většího počtu fotografií. Fotografie nahrajete do adresáře, který následně zkomprimujete pomocí .zip nebo .rar. Soubor je tak mnohem menší a jeho nahrání na internet nebo na disk, trvá mnohem kratší dobu. Úplně stejný postup probíhá při posílání dat ze serveru prohlížeči s výjimkou že data komprimuje sám server.