Hoe downloads over hostnamen te parallelliseren

click fraud protection

Sommige tools voor het testen van bandbreedtesnelheid kunnen sites aanbevelen om downloads parallel te laten lopen hostnamen om webinhoud effectief aan webbrowsers te leveren. Deze aanbeveling vindt meestal plaats op sites die het HTTP/1.1-protocol gebruiken en vindt plaats wanneer webbrowsers het aantal gelijktijdige verbindingen met een domein beperken.

Websites met veel HTTP verzoeken om statische inhoud (zoals afbeeldingen, CSS bestanden en JavaScript) een waarschuwing Parallelize Downloads Across Hostnames tegenkomen. Om deze beperking te omzeilen, stelt u domein-sharding in of gebruikt u een Content Delivery Network (CDN).

Het HTTP/2-protocol is de belangrijkste standaard geworden, waardoor de noodzaak van parallelle downloads overbodig is geworden. De meeste webhosts gebruiken nu standaard HTTP/2 en stellen een soort gratis CDN beschikbaar. Aangezien HTTP/2 nu de voorkeur van Google is, kunt u overwegen uw site en hosting bij te werken naar HTTPS.

Waarom downloads parallel aan verschillende hostnamen?

instagram viewer

Webbrowsers kunnen slechts een beperkt aantal gelijktijdige verbindingen per hostnaam openen voor websites die het HTTP/1.1-protocol gebruiken. Deze limiet kan oplopen tot zes verbindingen.

Wanneer er meer resources moeten worden gedownload, moeten de extra resources in een backlog-wachtrij wachten totdat er een beschikbare verbinding is. De bronnen in de wachtrij worden geblokkeerd en het verminderen van deze blokkeertijd resulteert in snellere laadtijden van pagina's.

Als een webpagina bijvoorbeeld 12 afbeeldingen heeft en het aantal verbindingen dat door de webbrowser wordt toegestaan ​​is zes, dan moeten er zes afbeeldingen in de backlog wachten. De afbeeldingen in de backlog blijven daar totdat de eerste zes afbeeldingen zijn gedownload.

Als een afbeelding zoals een pictogram of logo meerdere keren wordt gebruikt, gebruik dan een CSS Sprite voor deze herhaalde afbeeldingen om resourceaanvragen te verminderen.

Wat is de waarschuwing parallelle downloads over hostnamen?

De waarschuwing voor parallelle downloads over hostnamen is een regel die wordt gebruikt in sommige prestatiecontroles van websites. De waarschuwing geeft aan dat die webbrowser niet het aantal verbindingen kon openen dat nodig is om alle websitebronnen tegelijkertijd te downloaden.

Voor websites die het HTTP/1.1-protocol gebruiken, is de manier om deze behoefte aan meer open verbindingen te omzeilen: HTTP-verzoeken minimaliseren, een CDN instellen of domein-sharding implementeren.

Voor websites die het HTTP/2-protocol gebruiken, kunnen meerdere bronnen parallel worden geladen via een enkele verbinding; dit wordt multiplexen genoemd. Multiplexing maakt domein-sharding overbodig met HTTP/2. Ongeveer 77 procent van de webbrowsers ondersteunt HTTP/2 en zou geen problemen moeten ondervinden met het parallelliseren van downloads.

Als uw webhostingprovider HTTP/2 ondersteunt, is het veilig om de waarschuwing voor parallelle downloads over hostnamen te negeren. Met HTTP/2 kunnen meerdere bronnen tegelijkertijd op één verbinding worden gedownload.

Wat is domein-sharding?

Domain sharding is een methode voor prestatieoptimalisatie voor HTTP/1.1-verbindingen en wordt gebruikt op websites met een groot aantal HTTP-verzoeken. Bij domein-sharding worden webcontentitems verdeeld over verschillende subdomeinen. Wanneer activa op deze manier worden verdeeld, neemt het aantal gelijktijdige verzoeken dat kan worden verwerkt toe.

Bij domein-sharding wordt inhoud geüpload op subdomeinen zonder cookies. Gebruikers hebben geen interactie met statische inhoud zoals afbeeldingen, JavaScript en CSS-bestanden, dus deze inhoud hoeft niet aan cookies te worden toegevoegd.

Als subdomeinen geen cookies plaatsen, nemen de grootte van de verzoeken om een ​​pagina en de latentie van verzoeken af ​​en worden webpagina's sneller geladen. Voorbeelden van inhoud die baat heeft bij domein-sharding zijn pagina's met inhoud die zelden in de cache wordt opgeslagen, zoals een pagina met miniaturen of een beeldarchief.

In Drupal voegen modules CSS- en JavaScript-bestanden toe die de prestaties kunnen vertragen. Ga naar Siteconfiguratie > Prestatie en optimaliseer CSS en JavaScript.

Volg deze tips om te profiteren van de voordelen van domein-sharding op HTTP/1.1-verbindingen:

  • Lever bronnen van dezelfde subdomeinen om bestanden efficiënt te cachen.
  • Verdeel middelen gelijkmatig over subdomeinen.
  • Koop SSL-certificaten voor de subdomeinen.

Op HTTP/2-verbindingen vermindert domeinsharding de prestaties omdat er extra DNS-lookups zijn. Deze DNS-lookups verhogen de resolutietijd en slaan geen bestanden op in de cache. Domain sharding voegt ook tijd toe aan elke nieuwe verbinding. Dit zijn andere nadelen van domein-sharding op HTTP/2-verbindingen:

  • Het distribueren van resources die vanuit CSS worden geladen, is moeilijk te distribueren tussen Sharded-hosts.
  • Hogere belasting van de server door het toegenomen aantal gelijktijdige verbindingen.
  • Het verplaatsen van statische inhoud naar een subdomein kan code breken.
  • De webbrowser geeft mogelijk geen toegang tot een andere hostnaam.
  • Routers kunnen een groot aantal shard-verzoeken mogelijk niet classificeren of zien de verzoeken als een denial-of-service-aanval.

Hoe downloads over hostnamen te parallelliseren

Wanneer u de waarschuwing downloads over hostnamen parallelliseert, moet u de downloadparallisatie verhogen door verzoeken over meerdere hostnamen te verdelen. Als u verzoeken wilt distribueren, maakt u subdomeinen aan voor de verschillende typen webassets die op de site worden gebruikt en geeft u vervolgens het hoofddomein op als het enige domein dat cookies gebruikt. Subdomeinen gebruiken geen cookies.

Deze subdomeinen voegen nieuwe bronnen van verbindingen toe die de browser kan maken, en maken het mogelijk om meer bronnen tegelijk te downloaden. Wanneer bronnen worden verdeeld over subdomeinen, besteedt de webbrowser minder tijd aan het blokkeren van webinhoud en worden webpagina's sneller geladen.

Voor websites die HTTP/2 en HTTP/1.1 gebruiken, is de eenvoudigste manier om downloads over hostnamen te parallelliseren, het gebruik van meerdere subdomeinen via een CDN. Stel voor websites die HTTP/1.1 en WordPress gebruiken subdomeinen in en bewerk het bestand WordPress functions.php.

Subdomeinen instellen

Om resources over subdomeinen te verdelen, maakt u minimaal één en maximaal vier subdomeinen aan; een of twee subdomeinen wordt aanbevolen. De meest gebruikelijke manier om subdomeinen aan te maken, is door cPanel te gebruiken, dat door de meeste webhostingservices wordt aangeboden.

Voorbeelden van subdomeinen zijn:

  • media1.mijndomein.com
  • media2.mijndomein.com
  • media3.mijndomein.com
  • media4.mijndomein.com

Ook moeten subdomeinen en hostnamen dezelfde structuur en hetzelfde pad hebben. Als het afbeeldingspad op de host bijvoorbeeld www.mijndomein.com/wp-content/uploads/ is, moet het afbeeldingspad op de subdomeinen overeenkomen met bijvoorbeeld media1.mijndomein.com/wp-content/uploads/.

Een CDN instellen om downloads te parallelliseren

Nadat het CDN is ingesteld en de subdomeinen zijn gemaakt, wijst u elk subdomein naar de map die de statische inhoud bevat. Op deze manier wordt de inhoud over het subdomein geladen in plaats van over het hoofddomein.

Om een ​​subdomein aan te wijzen, gebruik je een DNS Zone Editor in cPanel om voor elk subdomein een nieuw CNAME-record aan te maken. Voer in het veld Naam van de record het subdomein in, bijvoorbeeld media.mijndomein.com. Voer in het veld CNAME het hoofddomein in, bijvoorbeeld www.mijndomein.com.

Nadat de CNAME-records zijn gemaakt en gepropageerd door uw webhost, voegt u de CNAME-records toe aan de CDN-zone-instellingen.

Bewerk het websiteconfiguratiebestand in WordPress om downloads te parallelliseren

Nadat u de subdomeinen heeft ingesteld, voegt u deze code toe aan het bestand Functions.php van het WordPress-thema dat voor uw website wordt gebruikt. Vervang media1.mijndomein.com en media2.mijndomein.com door uw werkelijke subdomeinen.

functie parallelize_hostnames($url, $id) {
$hostname = par_get_hostname($url); //aanroep aanvullende functie
$url = str_replace (parse_url (get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);
retourneer $url;
}
functie par_get_hostname($naam) {
$subdomains = array('media1.mijndomein.com','media2.mijndomein.com'); // voeg hier je subdomeinen toe, zoveel als je wilt.
$host = abs (crc32(basename($name)) % count($subdomains));
$hostnaam = $subdomeinen[$host];
retourneer $ hostnaam;
}
add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);

Als je Jetpack met WordPress gebruikt, schakel dan de Site Accelerator-service in om je afbeeldingen op een door WordPress beheerd CDN te plaatsen.

instagram story viewer