Cum să paralelizați descărcările pe nume de gazdă

Unele instrumente de testare a vitezei lățimii de bandă pot recomanda site-urilor paralelizarea descărcărilor nume de gazdă să difuzeze conținut web browserelor web în mod eficient. Această recomandare apare de obicei pe site-urile care utilizează protocolul HTTP / 1.1 și se întâmplă atunci când browserele web limitează numărul de conexiuni simultane făcute la un domeniu.

Site-uri web care au multe HTTP solicitări de conținut static (cum ar fi imagini, CSS fișiere și JavaScript) întâmpină un avertisment Parallelize Downloads Across Hostnames. Pentru a evita această limită, configurați partajarea domeniului sau utilizați o rețea de livrare a conținutului (CDN).

Protocolul HTTP / 2 a devenit principalul standard, făcând ca nevoia de descărcări paralelizate să fie învechită. Majoritatea gazdelor web utilizează acum HTTP / 2 în mod implicit și pun la dispoziție un CDN gratuit. Deoarece HTTP / 2 este preferința Google acum, luați în considerare actualizarea site-ului și găzduirea dvs. la HTTPS.

instagram viewer

De ce să paralelizăm descărcările pe nume de gazdă?

Browserele web pot deschide un număr limitat de conexiuni simultane pe nume de gazdă pentru site-urile care utilizează protocolul HTTP / 1.1. Această limită poate fi de până la șase conexiuni.

Când trebuie descărcate mai multe resurse, resursele suplimentare trebuie să aștepte într-o coadă de restante până când există o conexiune disponibilă. Resursele din coadă sunt blocate, iar reducerea acestui timp de blocare duce la timpi de încărcare a paginii mai rapide.

De exemplu, dacă o pagină web are 12 imagini și numărul de conexiuni permise de browserul web este de șase, atunci șase imagini trebuie să aștepte în restante. Imaginile din restanțe rămân acolo până când primele șase imagini se termină de descărcat.

Dacă o imagine, cum ar fi o pictogramă sau o siglă, este utilizată de mai multe ori, utilizați un CSS Sprite pentru aceste imagini repetate pentru a reduce solicitările de resurse.

Ce este avertismentul de descărcare paralelă pentru toate numele gazdei?

Avertismentul pentru paralelizarea descărcărilor între nume de gazdă este o regulă utilizată în unele verificatoare de performanță ale site-ului web. Avertismentul indică faptul că browserul web nu a putut deschide numărul de conexiuni necesare pentru a descărca simultan toate resursele site-ului.

Pentru site-urile care utilizează protocolul HTTP / 1.1, modalitatea de a rezolva această nevoie de conexiuni mai deschise este să minimizați solicitările HTTP, configurați un CDN sau implementați partajarea domeniului.

Pentru site-urile care utilizează protocolul HTTP / 2, mai multe resurse se pot încărca în paralel printr-o singură conexiune; aceasta se numește multiplexare. Multiplexarea face ca divizarea domeniului să fie inutilă cu HTTP / 2. Aproximativ 77% dintre browserele web acceptă HTTP / 2 și nu ar trebui să întâmpine nicio problemă cu paralelizarea descărcărilor.

Dacă furnizorul dvs. de găzduire web acceptă HTTP / 2, este sigur să ignorați avertizarea descărcărilor paralelizate între numele gazdei. Cu HTTP / 2, mai multe resurse pot fi descărcate în paralel pe o singură conexiune.

Ce este fragmentarea domeniului?

Partajarea domeniului este o metodă de optimizare a performanței pentru conexiunile HTTP / 1.1 și este utilizată pe site-urile web cu un volum mare de solicitări HTTP. În partajarea domeniilor, activele de conținut web sunt distribuite între mai multe subdomenii. Atunci când activele sunt distribuite în acest fel, crește numărul de cereri simultane care pot fi procesate.

În partajarea domeniului, conținutul este încărcat pe subdomenii fără cookie. Utilizatorii nu interacționează cu conținut static, cum ar fi imagini, JavaScript și fișiere CSS, astfel încât acest conținut nu trebuie atașat la cookie-uri.

Când subdomeniile nu difuzează cookie-uri, dimensiunea cererilor făcute pentru o pagină și latența solicitării scade, iar paginile web se încarcă mai repede. Exemple de conținut care beneficiază de partajarea domeniului includ pagini cu conținut rar stocat în cache, cum ar fi o pagină de miniaturi sau o arhivă de imagini.

În Drupal, modulele adaugă fișiere CSS și JavaScript care pot încetini performanța. Mergi la Configurare site > Performanţă și optimizați CSS și JavaScript.

Pentru a profita de avantajele partajării domeniului pe conexiunile HTTP / 1.1, urmați aceste sfaturi:

  • Serviți resurse din aceleași subdomenii pentru a cache în mod eficient fișiere.
  • Distribuiți resursele în mod egal între subdomenii.
  • Achiziționați certificate SSL pentru subdomenii.

La conexiunile HTTP / 2, partajarea domeniului reduce performanța, deoarece există căutări DNS suplimentare. Aceste căutări DNS măresc timpul de rezoluție și nu memorează în cache fișierele. Partajarea domeniului adaugă, de asemenea, timp la fiecare nouă conexiune. Acestea sunt alte dezavantaje ale partajării domeniului pe conexiunile HTTP / 2:

  • Distribuirea resurselor care se încarcă din CSS sunt greu de distribuit între gazdele împărțite.
  • Sarcină mai mare pe server din numărul crescut de conexiuni simultane.
  • Mutarea conținutului static într-un subdomeniu poate rupe codul.
  • Este posibil ca browserul web să nu permită accesul la un alt nume de gazdă.
  • Este posibil ca routerele să nu poată clasifica un număr mare de solicitări fragmentate sau să le vadă ca pe un atac de refuz de serviciu.

Cum să paralelizați descărcările pe nume de gazdă

Când primiți avertismentul descărcare paralelizare între nume de gazdă, va trebui să măriți paralelizarea descărcărilor distribuind cererile între mai multe nume de gazdă. Pentru a distribui cereri, creați subdomenii pentru diferitele tipuri de materiale web utilizate pe site, apoi specificați domeniul rădăcină ca singurul domeniu care folosește cookie-uri. Subdomeniile nu folosesc cookie-uri.

Aceste subdomenii adaugă noi surse de conexiuni pe care browserul le poate face și fac posibilă descărcarea mai multor resurse simultan. Când resursele sunt împărțite între subdomenii, browserul web petrece mai puțin timp blocând conținutul web și paginile web se încarcă mai repede.

Pentru site-urile care utilizează HTTP / 2 și HTTP / 1.1, cel mai simplu mod de a paralela descărcările între nume de gazdă este de a utiliza mai multe subdomenii printr-un CDN. Pentru site-urile care utilizează HTTP / 1.1 și WordPress, configurați subdomenii și editați fișierul WordPress functions.php.

Configurați subdomeniile

Pentru a distribui resurse între subdomenii, creați cel puțin unul și până la patru subdomenii; este recomandat unul sau două subdomenii. Cel mai comun mod de a crea subdomenii este să utilizați cPanel, oferit de majoritatea serviciilor de găzduire web.

Exemple de subdomenii sunt:

  • media1.mydomain.com
  • media2.mydomain.com
  • media3.mydomain.com
  • media4.mydomain.com

De asemenea, subdomeniile și numele de gazdă trebuie să aibă aceeași structură și cale. De exemplu, dacă calea imaginii de pe gazdă este www.mydomain.com/wp-content/uploads/, calea imaginii de pe subdomenii trebuie să se potrivească, de exemplu, media1.mydomain.com/wp-content/uploads/.

Configurați un CDN pentru a paralela descărcările

După configurarea CDN și crearea subdomeniilor, îndreptați fiecare subdomeniu către folderul care conține conținutul static. În acest fel, conținutul este încărcat peste subdomeniu în loc de domeniul principal.

Pentru a indica un subdomeniu, utilizați un Editor de zonă DNS în cPanel pentru a crea o nouă înregistrare CNAME pentru fiecare subdomeniu. În câmpul Nume al înregistrării, introduceți subdomeniul, de exemplu, media.mydomain.com. În câmpul CNAME, introduceți domeniul principal, de exemplu, www.mydomain.com.

După ce înregistrările CNAME sunt create și propagate de gazda dvs. web, adăugați înregistrările CNAME la setările zonei CDN.

Editați fișierul de configurare a site-ului web în WordPress pentru a paralela descărcările

După ce configurați subdomeniile, adăugați acest cod la fișierul functions.php al temei WordPress folosită pentru site-ul dvs. web. Înlocuiți media1.mydomain.com și media2.mydomain.com cu subdomeniile dvs. reale.

funcție parallelize_hostnames ($ url, $ id) {
$ hostname = par_get_hostname ($ url); // apelează funcția suplimentară
$ url = str_replace (parse_url (get_bloginfo ('url'), PHP_URL_HOST), $ hostname, $ url);
returnează $ url;
}
funcția par_get_hostname ($ nume) {
$ subdomenii = matrice ('media1.mydomain.com', 'media2.mydomain.com'); // adăugați subdomeniile dvs. aici, câte doriți.
$ gazdă = abs (crc32 (nume de bază ($ nume))% număr ($ subdomenii));
$ hostname = $ subdomenii [$ host];
returnează $ hostname;
}
add_filter ('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Dacă utilizați Jetpack cu WordPress, activați serviciul Site Accelerator pentru a vă pune imaginile pe un CDN gestionat de WordPress.

instagram story viewer