Ce se intampla de fapt cand scrii un domeniu in browser?
Ai scris vreodata un domeniu in browser si te-ai intrebat ce se intampla in spate pana cand apare site-ul?
Scrii: https://exemplu.ro
si cateva momente mai tarziu vezi pagina.
In realitate, browserul trece prin mai multe etape.
1. DNS-ul gaseste serverul
Browserul trebuie mai intai sa afle unde este exemplu.ro.
DNS transforma domeniul intr-o adresa IP:
exemplu.ro
↓
DNS
↓
192.0.2.10
Fara DNS, browserul nu ar sti la ce server trebuie sa se conecteze.
2. Se stabileste conexiunea
Browserul se conecteaza la serverul respectiv.
Pentru un site HTTPS, conexiunea este securizata prin TLS, iar browserul verifica certificatul SSL al domeniului.
Abia acum poate incepe comunicarea efectiva cu serverul.
3. Browserul trimite request-ul
Practic ii spune serverului:
GET /
Host: exemplu.ro
Serverul primeste request-ul si trebuie sa decida ce trebuie trimis inapoi.
4. Web serverul preia request-ul
Aici poate interveni LiteSpeed, Apache sau Nginx.
Daca ai cerut o imagine statica, serverul poate trimite direct fisierul.
Daca ai cerut o pagina WordPress, lucrurile devin mai interesante.
5. PHP si WordPress intra in actiune
Un request poate ajunge la PHP, iar PHP executa WordPress.
WordPress incarca tema, pluginurile si continutul necesar.
Pentru anumite informatii trebuie sa interogheze si baza de date:
Browser
↓
Web Server
↓
PHP
↓
WordPress
↓
MySQL/MariaDB
↓
WordPress
↓
Web Server
↓
Browser
6. Cache-ul poate elimina o mare parte din munca
Daca pagina exista deja in cache, serverul poate sa nu mai execute PHP si sa nu mai interogheze baza de date pentru fiecare vizitator.
Browser
↓
Web Server
↓
Cache
↓
Pagina
De aici vine o mare parte din diferenta de performanta dintre un site bine optimizat si unul care executa WordPress de la zero la fiecare request.
7. Browserul mai are treaba
Chiar daca serverul a raspuns rapid, pagina nu este neaparat gata.
Browserul trebuie sa descarce si sa proceseze:
CSS
JavaScript
imagini
fonturi
videoclipuri
resurse externe
De aceea un site poate avea un TTFB foarte bun, dar sa se incarce totusi greu.
Pe scurt
Fluxul arata cam asa:
Domeniu
↓
DNS
↓
IP
↓
HTTPS / TLS
↓
Web Server
↓
Cache / PHP
↓
WordPress
↓
Database
↓
HTML
↓
CSS / JS / Imagini
↓
Browser
Si toate aceste lucruri se pot intampla in cateva sute de milisecunde atunci cand infrastructura si site-ul sunt configurate corect.
Iar partea interesanta este ca, atunci cand un site este lent, nu inseamna automat ca hostingul este problema.
Poate fi DNS-ul, PHP-ul, baza de date, un plugin, imaginile, JavaScript-ul, cache-ul, serverul web sau chiar un API extern.
Daca vreti, putem lua fiecare etapa separat si sa vedem ce se intampla in spate si unde apare de fapt bottleneck-ul.