Kuidas veebiarendus toimib: brauserist serverini
Kui keegi kirjutab brauserisse sinu aadressi, käivitub jada, mis kestab tavaliselt alla sekundi. Selle jada mõistmine selgitab, miks leht on aeglane, miks vahemälu loeb ja mille eest sa majutuse eest maksad.
See juhend läbib kogu tee, ilma et eeldaks tehnilist tausta.
Mis juhtub päringu ajal#
Sama jada iga kord, olgu leht lihtne või keeruline.
- Brauser küsib DNS-ilt, milline server sinu domeenile vastab.
- Brauser loob turvalise ühenduse selle serveriga — see on HTTPS.
- Brauser saadab päringu konkreetse aadressi kohta.
- Server otsustab, mis see aadress on: fail, leht sisuhaldusest või viga.
- Vajadusel küsib server andmebaasist sisu ja koostab lehe.
- Server saadab HTML-i tagasi koos vahemälu juhistega.
- Brauser laeb CSS-i, JavaScripti, fondid ja pildid ning renderdab lehe.
- Kõik hilisem — kliki peale laadimine, vormid — kordab sama tsüklit väiksemas mastaabis.
Iga samm lisab aega. Kiireim leht on see, kus samme on vähem ja iga samm on lühem.
Kus aeg kaob#
Praktilised aeglusekohad, tavalisest mõjukamast alates.
| Koht | Tüüpiline põhjus | Lahendus |
|---|---|---|
| Serveri vastus | Iga päring koostab lehe nullist | Vahemälu serveris |
| Pildid | Optimeerimata ja liiga suured | Kaasaegne formaat, õige suurus |
| JavaScript | Liiga palju ja blokeeriv | Vähenda ja laadi hiljem |
| Fondid | Mitu perekonda ja kaalu | Piira ja laadi eelnevalt |
| Kolmandate osapoolte skriptid | Analüütika, vidinad, vestlus | Auditeeri ja kustuta |
| Andmebaas | Puuduvad indeksid, aeglased päringud | Indeksid ja päringute ülevaatus |
| Kaugus serverist | Server teisel mandril | Sisuvõrk või lähem server |
Vahemälu kihid#
Vahemälu on suurima mõjuga üksik jõudlusvahend ja ka sagedaseim segaduse allikas.
| Kiht | Mida hoiab | Millal tühjendada |
|---|---|---|
| Brauseri vahemälu | Failid külastaja arvutis | Failinime versioneerimisega |
| Sisuvõrk | Failid serverites üle maailma | Avaldamisel |
| Serveri lehevahemälu | Valmis HTML | Sisu muutmisel |
| Rakenduse vahemälu | Arvutuste tulemused | Andmete muutumisel |
| Andmebaasi vahemälu | Päringute tulemused | Automaatselt |
| Opcode vahemälu | Kompileeritud kood | Koodi uuendamisel |
«Miks ma oma muudatust ei näe» on peaaegu alati vahemälu küsimus. Kontrolli kihte ülalt alla.
Staatiline, dünaamiline ja vahepealne#
Kolm viisi lehe koostamiseks, igaüks oma kompromissiga.
- Staatiline: failid on eelnevalt valmis. Kiireim, turvalisim, odavaim majutada. Sisu muutmine nõuab uuesti genereerimist.
- Dünaamiline: server koostab lehe iga päringu peale. Paindlik, vajab vahemälu, et kiire olla.
- Eelgenereeritud koos värskendusega: staatiline, mis uueneb sisu muutumisel. Katab enamiku vajadusi.
- Brauseris renderdatud: brauser koostab lehe JavaScriptiga. Sobib rakendustele, halb avalikule sisule.
- Enamik ettevõtte lehti töötab kõige paremini dünaamilisena koos hea vahemäluga või eelgenereerituna.
- Valik mõjutab hooldust rohkem kui kiirust — staatiline on kordades vähem hooldatav pind.
Korduma kippuvad küsimused
Miks on minu leht aeglane?
Enamasti kolmel põhjusel: optimeerimata pildid, liiga palju JavaScripti ja puuduv vahemälu serveris. Mõõda enne parandamist — brauseri tööriistad näitavad, mis päriselt aega võtab. Ilma mõõtmiseta optimeerimine tähendab tavaliselt tundide kulutamist millelegi, mis annab paarkümmend millisekundit.
Mille eest ma majutuse eest maksan?
Serveri jõudluse, salvestusruumi, andmesidemahu, varunduse ja toe eest. Odav jagatud majutus jagab serverit sadade lehtedega, mis tähendab aeglasemat vastust koormuse ajal. Hallatud majutus maksab rohkem ja sisaldab uuendusi, varundust ja tuge — enamikule ettevõtetele on see parem tehing.
Mis on CDN ja kas ma vajan seda?
Sisuvõrk hoiab sinu faile serverites üle maailma, nii et külastaja saab need lähimast. Kui su külastajad on samas riigis kus server, on kasu väike. Kui neid on mitmes riigis või kui lehel on palju pilte, on kasu märgatav ja seadistus tavaliselt lihtne.
Miks ma ei näe oma muudatust?
Peaaegu alati vahemälu. Kontrolli järjekorras: serveri lehevahemälu, sisuvõrk, seejärel brauseri vahemälu. Kõva värskendus brauseris välistab kõige viimase. Kui muudatus on koodis, võib olla vaja ka opcode vahemälu tühjendada — hallatud majutuses tehakse seda tavaliselt automaatselt.
kuidas veebileht töötabhttp päringveebilehe kiirusvahemäludnsveebiserver