HTTP Requests ohne Subdomain reduzieren (SSL)

rongador

Commander
Registriert
Mai 2011
Beiträge
2.641
Hi,

um HTTP Requests zu reduzieren und somit Ladezeiten einer Webseite (nachweislich) zu reduzieren, ist der Einsatz von Subdomains sinnvoll - z.B. eine Subdomain für alle Bilder, eine für CSS/JS, usw. Funktioniert wunderbar.

Nur: Heutzutage wird nach SSL geschrien - und manche Webhosting/Webserver-Anbieter bieten ein dauerhaftes SSL-Zertifikat für EINE Domain an. Aber ohne Subdomains, diese würden zusätzlich kosten (auch "Wildcards" sind in den meisten Fällen unsinnig). Daher meine Frage: Gibt es einen Weg, das HTTP Request Problem auch ohne den Einsatz von Subdomains zu lösen, um somit mit nur einem einzigen SSL-Zertifikat auszukommen?

Und bitte jetzt keine provokanten Antworten wie: "Ja, indem Du weniger HTTP Requests machst" oder Hinweise auf Google - ich habe gegoogelt. Danke!

Gruß
 
Wenn du so viel Traffic hast, dann sind die Zertifikatkosten doch eh verschwindend gering, oder nicht? Mir fällt jetzt nichts kostenloses ein, dass da helfen könnte, zusätzlicher Proxy davor kostet auch mehr.

Vielleicht solltest du zu einem Hoster wechseln, der LetsEncrypt unterstützt, oder mehrere (kostenlose) Zertifikate bietet.
 
rongador schrieb:
auch "Wildcards" sind in den meisten Fällen unsinnig)
Nicht wirklich - mit einem Wildcard Zertifikat erschlägst du auch Subdomains - SSL Thema ist Geschichte.
-> Hoster suchen der LetsEncrypt Wildcards unterstützt | Selber hosten + certbot | Wildcard Zertifikate für Geld kaufen.

Im übrigen sind Subdomains nur förderlich für die Perfomance, wenn das keine richtigen Subdomains sind, sondern lediglich CNAME Aliase. Nur dadurch ersparst du dir die DNS Anfragen
 
Ich bleibe bei meinem Webhoster. Wildcards sind dennoch unsinnig, es sei denn, man nutzt sehr viele Subdomains, daher kommen diese nicht für mich in Frage.

Meine Frage war:
"Gibt es einen Weg, das HTTP Request Problem auch ohne den Einsatz von Subdomains zu lösen, um somit mit nur einem einzigen SSL-Zertifikat auszukommen?"
 
rongador schrieb:
Komm, zeige mir, wo ich dies so geschrieben habe.
Hab ich halt angenommen, da 2 (oder mehr) Server sonst gar keinen Sinn ergeben. Wie gesagt, geh zu nem Hoster mit kostenlosen Zertifikaten, oder miete VPS/dedizierte Server und installier die Zertifikate selbst. Alles andere kostet extra.

Und wieso machen Wildcards keinen Sinn?? Ist doch dem Zertifikat scheiß egal ob du 1 oder 100 Subdomains nutzt.
 
Wenn du den Wechsel des Webhosters / Wildcard Zertifikate ausschließt.... Ein Wildcard Zertifikat lohnt sich ab der ersten Subdomain die eines benötigt. Bei meinem Hoster kann ich unbegrenzt Subdomains mit entweder einem Wildcard oder spezifischen Zertifikaten anlegen - ohne Zusatzkosten dank Let's Encrypt.

Ansonsten dann halt die klassischen Schritte:
  • Reduzierung eingebundener externer Skripte -> Scripte in einem großen oder funktionsorientierten Bundles zusammenfassen
  • Reduzierung eingebundener CSS Files -> CSS Files in einem großen oder kontextbezogenen Bundles zusammenfassen
  • Reduzierung eingebundener Images -> Nutzung von Image Maps, Inline Base 64 encoded Images im CSS..
  • Nutzung von HTTP2.0
  • etc.
 
  • Gefällt mir
Reaktionen: psYcho-edgE
@JP-M Okay, das alles mache ich mithilfe eines guten Cache-Plugins, das gut funktioniert (Minify). Man kann aber die HTTP-Requests nicht auch über andere Wege als Subdomains reduzieren, oder? Bei Nutzung ein und derselben Domain außer durch Zusammenfassung der Dateien? Ich hatte gehofft, es wäre irgendein Trick möglich.
 
Die Anzahl der HTTP-Requests ist gleich bei Abruf von einer Domain oder Domain plus Subdomains, solange du nicht die Anzahl durch die o.g. Tips reduzierst.
Andere Möglichkeit ist ein CDN zu benutzen, welches andere Vorteile bietet aber die Requests nicht reduziert.
 
  • Gefällt mir
Reaktionen: psYcho-edgE
Vielleicht wäre ein cdn für dich interessant. Oder auf der Maschine selbst einen varnish cache
 
@NameHere Das stimmt nur teilweise. Reduziert wird das Ganze ja bereits durch Minify und somit das Cache-Plugin, welches CSS und JS usw. in eine Datei zusammenfasst. Aber: Es ist nicht egal, ob man verschiedene Subdomains dazu nutzt, also z.B. für CSS eine css.abcdef.de Subdomain, für Bilder eine bilder.abcdef.de Subdomain, für alle Javascripts eine js.abcdef.de Subdomain - weil die gleichzeitigen Anfragen einer einzigen Domain gleichzeitig begrenzt sind. Nutzt man Subdomains auf diese Weise, kann mehr "parallel" abgearbeitet werden.
 
Die reine Anzahl benötigter Requests wird ja nicht alleine durch Verwendung einer Subdomain verringert - die Verwendung mehrere Subdomains kann allerdings dazu führen, dass Requests parallel statt sequentiell ausgeführt werden. Das führt natürlich zu dazu die benötigten Ressourcen insgesamt schneller da sind.

Zumindest für eingebundene Script könne man das auch ohne Sub-Domains mit dem async Flag ermöglichen - dann hat man aber keine Kontrolle mehr über die Reihenfolge, in der die Scripte am Ende geladen und ausgeführt werden.

Wenn die Requests an sich reduziert werden sollen bleibt nur das Zusammenfassen von Dateien oder die Verwendung von HTTP/2.0.

Ansonsten wie über mir geschrieben ggf. die Verwendung von CDNs o.Ä. wenn es nicht möglich ist Zertifikate für die eigenen Subdomains zu bekommen.
 
die Verwendung mehrere Subdomains kann allerdings dazu führen, dass Requests parallel statt sequentiell ausgeführt werden.

Das habe ich ja gerade geschrieben.
Ergänzung ()

Okay, vielen Dank für die Hinweise!
 
Pipelining bzw. HTTP2 nutzen, wenn es wirklich an den Requests hapert.

Ansonsten bauen alle aktuellen Browser doch sowieso mehrere Verbindungen auf. Wenn eine Seite durch solche Tricksereien wie vom TE deutlich schneller wird liegt das Problem wo anders!
 
rongador schrieb:
@NameHere Das stimmt nur teilweise. Reduziert wird das Ganze ja bereits durch Minify und somit das Cache-Plugin, welches CSS und JS usw. in eine Datei zusammenfasst. Aber: Es ist nicht egal, ob man verschiedene Subdomains dazu nutzt, also z.B. für CSS eine css.abcdef.de Subdomain, für Bilder eine bilder.abcdef.de Subdomain, für alle Javascripts eine js.abcdef.de Subdomain - weil die gleichzeitigen Anfragen einer einzigen Domain gleichzeitig begrenzt sind. Nutzt man Subdomains auf diese Weise, kann mehr "parallel" abgearbeitet werden.
Und die DNS Auflösung pro Domain , SSL Handshake?
 
Wenn du wirklich die Situation hast, dass du sehr viele sehr kleine Bilder hast, und daher strikt verbindungslimitiert bist, dann nutze http/2 oder wechsle deinen Hoster. Alles andere, auch ein CDN, kostet extra Geld.

Falls noch nicht geschehen JS und CSS in jeweils eine Datei aggregieren, da kann man bei den meisten WP-Seiten gerne mal 10-20 Anfragen einsparen. Wird durch http/2 aber auch etwas entschärft.

Falls du nicht strikt verbindungslimitiert bist, dann kann http/2 (oder mehrere Domains) aber sogar eher schaden als helfen, da sich dann mehr parallele Ladevorgänge die Bandbreite streitig machen.
 
@coolmodi Das mache ich bereits alles so - und in meinem Fall hat es auch sehr viel gebracht und die Seite ist ja schnell. Ich frage auch nur deshalb, weil ich über den Anbieter SSL für eine Domain kostenlos dazu erhalten habe und jetzt natürlich überlege, wie ich das vielleicht arrangieren kann, dass ich dadurch auf SSL umstellen kann ohne zusätzliche Kosten. Daher mein Thread.

Die Zusammenfassung von CSS und auch JSS über Minify hatte damals (Jahre her) schon sehr viel gebracht. Die Reduzierung der Requests ebenfalls und auch die Reduzierung der DB-Anfragen. Alles schön optimiert und alles. Aber wie gesagt: Mehr Subdomains, mehr Kosten bei SSL. Ich habe ja nicht nach einem Wechsel meines Anbieters gefragt.
 
rongador schrieb:
@coolmodi Ich habe ja nicht nach einem Wechsel meines Anbieters gefragt.
Wenn der Anbieter scheiße ist und einem in Zeiten von LetsEncrypt Geld für SSL Certs aus der Tasche zieht ist das aber der beste Ratschlag...

Bei Lets Encrypt gibt es Wildcard Zertifikate und wenn einem der Anbieter externe Certs genauso wie 1-2 CronJobs einrichten lässt hat man kein Problem mehr.
 
  • Gefällt mir
Reaktionen: psYcho-edgE, Ebrithil, TheCadillacMan und 2 andere
HTTP/2.0 mag keine Bündelung von js-Dateien und css-Dateien, da es besser parallelisiert als bündelt.

Browser mögen es nicht 1 MB große Stylesheets zu parsen, um die ersten "Zeilen" einer Startseite anzuzeigen zu können, weswegen man bei HTTP/2.0 eher zu kleinen Stylesheets und js-Dateien greift und den Rest für weiter hinten / weiter unten auf der Seite "lazy" nachlädt.

Prinzipiell gilt bei Performance-Problemen:
* Javascript hat im Kopfbereich einer HTML-Seite nichts zu suchen.
* Stylesheets sollten möglichst klein sein.
* Bilder sollten möglichst über einen lazy loader geladen werden
* Den Renderpfad des Browsers nicht unnötig mit Unfug blockieren:
- Stylesheets optimieren - ordentliche Selektoren wählen,
- Reihenfolge der Angaben im Stylesheet optimieren, damit der BRowser nicht x-fach rerendern muss,
- keine umfangreichen Bilder in Stylesheets einbetten (BASE64 codiert)
- Javascript, welches das DOM verändert nicht in den Kopfbereich laden, da dadurch das Rendern der Page erneut unterbrochen wird
- asynchrones javascript verwenden & javascript dateien asynchron laden - es gibt ein async Attribut auch in html5... nicht nur in Typescript / ECMA6

"Subdomain-CDNing" ist schon wieder so 2009, HTTP/2 ist der neue "heiße Scheiß" und eigentlich selbst das schon nicht mehr (nach HTTP/2 aka SPDY kommt halt HTTP/3 aka QUIC)
 
Zuletzt bearbeitet:
Zurück
Oben