Einige Tools zum Testen der Bandbreitengeschwindigkeit empfehlen möglicherweise, dass Websites Downloads übergreifend parallelisieren Hostnamen um Webinhalte effektiv für Webbrowser bereitzustellen. Diese Empfehlung tritt normalerweise auf Websites auf, die das HTTP/1.1-Protokoll verwenden, und tritt auf, wenn Webbrowser die Anzahl gleichzeitiger Verbindungen zu einer Domäne begrenzen.
Websites mit vielen HTTP Anfragen für statische Inhalte (wie Bilder, CSS -Dateien und JavaScript) auf eine Warnung zum Parallelisieren von Downloads über Hostnamen stoßen. Um diese Einschränkung zu umgehen, richten Sie Domain-Sharding ein oder verwenden Sie ein Content Delivery Network (CDN).
Das HTTP/2-Protokoll hat sich zum Hauptstandard entwickelt und macht parallelisierte Downloads überflüssig. Die meisten Webhosts verwenden jetzt standardmäßig HTTP/2 und stellen eine Art kostenloses CDN zur Verfügung. Da Google jetzt HTTP/2 bevorzugt, sollten Sie Ihre Website aktualisieren und auf HTTPS hosten.
Warum Downloads über Hostnamen hinweg parallelisieren?
Webbrowser können nur eine begrenzte Anzahl gleichzeitiger Verbindungen pro Hostname für Websites öffnen, die das HTTP/1.1-Protokoll verwenden. Diese Grenze kann bis zu sechs Verbindungen betragen.
Wenn weitere Ressourcen heruntergeladen werden müssen, müssen die zusätzlichen Ressourcen in einer Rückstandswarteschlange warten, bis eine Verbindung verfügbar ist. Die Ressourcen in der Warteschlange werden blockiert, und die Reduzierung dieser Blockierungszeit führt zu schnelleren Seitenladezeiten.
Wenn eine Webseite beispielsweise 12 Bilder enthält und die Anzahl der vom Webbrowser zugelassenen Verbindungen sechs beträgt, müssen sechs Bilder im Rückstand warten. Die Bilder im Backlog bleiben dort, bis der Download der ersten sechs Bilder abgeschlossen ist.
Wenn ein Bild wie ein Symbol oder ein Logo mehrmals verwendet wird, verwenden Sie ein CSS-Sprite für diese wiederholten Bilder, um Ressourcenanforderungen zu reduzieren.
Was ist die Warnung zum Parallelisieren von Downloads über Hostnamen hinweg?
Die Warnung "Downloads über Hostnamen hinweg parallelisieren" ist eine Regel, die in einigen Website-Performance-Checkern verwendet wird. Die Warnung weist darauf hin, dass dieser Webbrowser nicht die erforderliche Anzahl von Verbindungen öffnen konnte, um alle Website-Ressourcen gleichzeitig herunterzuladen.
Für Websites, die das HTTP/1.1-Protokoll verwenden, können Sie dieses Bedürfnis nach offeneren Verbindungen umgehen, indem Sie HTTP-Anfragen minimieren, richten Sie ein CDN ein oder implementieren Sie Domain-Sharding.
Bei Websites, die das HTTP/2-Protokoll verwenden, können mehrere Ressourcen parallel über eine einzige Verbindung geladen werden. dies wird Multiplexing genannt. Multiplexing macht Domain-Sharding mit HTTP/2 überflüssig. Etwa 77 Prozent der Webbrowser unterstützen HTTP/2 und sollten bei der Parallelisierung von Downloads keine Probleme haben.
Wenn Ihr Webhosting-Provider HTTP/2 unterstützt, können Sie die Warnung zum Parallelisieren von Downloads über Hostnamen hinweg ignorieren. Mit HTTP/2 können mehrere Ressourcen parallel über eine Verbindung heruntergeladen werden.
Was ist Domain-Sharing?
Domain Sharding ist eine Methode zur Leistungsoptimierung für HTTP/1.1-Verbindungen und wird auf Websites mit einem großen Volumen an HTTP-Anfragen verwendet. Beim Domain-Sharding werden Web-Content-Assets auf mehrere Subdomains verteilt. Wenn Assets auf diese Weise verteilt werden, erhöht sich die Anzahl gleichzeitiger Anfragen, die bearbeitet werden können.
Beim Domain-Sharding werden Inhalte auf Cookie-freien Subdomains hochgeladen. Benutzer interagieren nicht mit statischen Inhalten wie Bildern, JavaScript- und CSS-Dateien, sodass dieser Inhalt nicht an Cookies angehängt werden muss.
Wenn Subdomains keine Cookies bereitstellen, verringern sich die Größe der Anfragen für eine Seite und die Anfragelatenz und die Webseiten werden schneller geladen. Beispiele für Inhalte, die von Domain-Sharding profitieren, sind Seiten mit Inhalten, die selten zwischengespeichert werden, wie etwa eine Seite mit Miniaturansichten oder ein Bildarchiv.
In Drupal fügen Module CSS- und JavaScript-Dateien hinzu, die die Leistung beeinträchtigen können. Gehe zu Site-Konfiguration > Performance und optimieren CSS und JavaScript.
Befolgen Sie diese Tipps, um die Vorteile des Domain Sharding bei HTTP/1.1-Verbindungen zu nutzen:
- Bereitstellen von Ressourcen aus denselben Subdomänen, um Dateien effizient zwischenzuspeichern.
- Verteilen Sie Ressourcen gleichmäßig auf Subdomains.
- Kaufen Sie SSL-Zertifikate für die Subdomains.
Bei HTTP/2-Verbindungen reduziert Domänen-Sharding die Leistung, da zusätzliche DNS-Lookups vorhanden sind. Diese DNS-Lookups erhöhen die Auflösungszeit und speichern keine Dateien im Cache. Domain-Sharding verlängert auch jede neue Verbindung. Dies sind weitere Nachteile von Domain-Sharding bei HTTP/2-Verbindungen:
- Das Verteilen von Ressourcen, die von CSS geladen werden, ist schwierig zwischen Shard-Hosts zu verteilen.
- Höhere Belastung des Servers durch die erhöhte Anzahl gleichzeitiger Verbindungen.
- Das Verschieben statischer Inhalte in eine Subdomain kann Code beschädigen.
- Der Webbrowser lässt möglicherweise keinen Zugriff auf einen anderen Hostnamen zu.
- Router sind möglicherweise nicht in der Lage, eine große Anzahl von Shard-Anfragen zu klassifizieren, oder betrachten die Anfragen als Denial-of-Service-Angriff.
So parallelisieren Sie Downloads über Hostnamen hinweg
Wenn Sie die Warnung „Downloads parallelisieren über Hostnamen hinweg“ erhalten, müssen Sie die Download-Parallelisierung erhöhen, indem Sie Anfragen auf mehrere Hostnamen verteilen. Um Anfragen zu verteilen, erstellen Sie Subdomains für die verschiedenen Arten von Web-Assets, die auf der Site verwendet werden, und geben Sie dann die Root-Domain als einzige Domain an, die Cookies verwendet. Subdomains verwenden keine Cookies.
Diese Subdomains fügen neue Verbindungsquellen hinzu, die der Browser herstellen kann, und ermöglichen das gleichzeitige Herunterladen mehrerer Ressourcen. Wenn Ressourcen auf Subdomains aufgeteilt werden, verbringt der Webbrowser weniger Zeit damit, Webinhalte zu blockieren und Webseiten werden schneller geladen.
Für Websites, die HTTP/2 und HTTP/1.1 verwenden, besteht die einfachste Möglichkeit, Downloads über Hostnamen hinweg zu parallelisieren, darin, mehrere Subdomains über ein CDN zu verwenden. Richten Sie für Websites, die HTTP/1.1 und WordPress verwenden, Subdomains ein und bearbeiten Sie die Datei WordPress functions.php.
Subdomains einrichten
Um Ressourcen auf Subdomains zu verteilen, erstellen Sie mindestens eine und bis zu vier Subdomains. eine oder zwei Subdomains werden empfohlen. Die gängigste Methode zum Erstellen von Subdomains ist die Verwendung von cPanel, das von den meisten Webhosting-Diensten angeboten wird.
Beispiele für Subdomains sind:
- media1.meinedomain.com
- media2.meinedomain.com
- media3.meinedomain.com
- media4.mydomain.com
Außerdem müssen Subdomains und Hostnamen dieselbe Struktur und denselben Pfad haben. Wenn der Image-Pfad auf dem Host beispielsweise www.mydomain.com/wp-content/uploads/ lautet, muss der Image-Pfad auf den Subdomains beispielsweise mit media1.mydomain.com/wp-content/uploads/ übereinstimmen.
Richten Sie ein CDN ein, um Downloads zu parallelisieren
Nachdem das CDN eingerichtet und die Unterdomänen erstellt wurden, verweisen Sie jede Unterdomäne auf den Ordner, der den statischen Inhalt enthält. Auf diese Weise wird der Inhalt über die Subdomain statt über die Hauptdomain geladen.
Um auf eine Subdomain zu verweisen, verwenden Sie einen DNS-Zonen-Editor in cPanel, um einen neuen CNAME-Eintrag für jede Subdomain zu erstellen. Geben Sie im Feld Name des Datensatzes die Subdomain ein, z. B. media.mydomain.com. Geben Sie im Feld CNAME die Hauptdomäne ein, beispielsweise www.mydomain.com.
Nachdem die CNAME-Einträge von Ihrem Webhost erstellt und weitergegeben wurden, fügen Sie die CNAME-Einträge zu den CDN-Zoneneinstellungen hinzu.
Bearbeiten Sie die Website-Konfigurationsdatei in WordPress, um Downloads zu parallelisieren
Nachdem Sie die Subdomains eingerichtet haben, fügen Sie diesen Code der Datei functions.php des für Ihre Website verwendeten WordPress-Themes hinzu. Ersetzen Sie media1.mydomain.com und media2.mydomain.com durch Ihre tatsächlichen Subdomains.
Funktion parallelize_hostnames($url, $id) {
$hostname = par_get_hostname($url); // Zusatzfunktion aufrufen
$url = str_replace (parse_url (get_bloginfo('url'), PHP_URL_HOST), $hostname, $url);
$url zurückgeben;
}
Funktion par_get_hostname($name) {
$subdomains = array('media1.mydomain.com','media2.mydomain.com'); //Fügen Sie hier Ihre Subdomains hinzu, so viele Sie möchten.
$host = abs (crc32(basename($name)) % count($subdomains));
$hostname = $subdomains[$host];
geben $hostname zurück;
}
add_filter('wp_get_attachment_url', 'parallelize_hostnames', 10, 2);
Wenn Sie Jetpack mit WordPress verwenden, aktivieren Sie den Site Accelerator-Dienst, um Ihre Bilder auf einem von WordPress verwalteten CDN abzulegen.