Bla: Problem mit Embedded Webserver in einem Messgerät

Beitrag lesen

Was ich jetzt immer noch nicht ganz verstehe: Wer bestimmt denn die Anzahl der Verbindungen, welche zum Gerät aufgebaut werden? (Für den Fall, dass sie nicht durch Browser-Einstellungen begrenzt werden.) Vermutlich doch der Browser. Aber nach welchen Kriterien richtet er sich?

Vermutlich hat da jeder Browserhersteller seine eigene Strategie, und von der Struktur des HTML-Dokuments hängt das ja auch alles ab. Die ganz banale Variante wäre, schon während des Ladens des HTML-Dokuments für jede externe Quelle, die der Reihe nach im Dokument angesprochen wird, einfach eine weitere Verbindung zu öffnen, bis die Obergrenze erreicht ist.
Möglicherweise wäre es aber auch vorteilhaft, CSS-Daten den Vorrang zu geben und Grafiken hinten anzustellen, sprich Daten mit dem höchsten "Gestaltungswert pro Byte" zu bevorzugen. Grafiken könnte man auch nach vermutlicher Größe sortieren (aus den width- und height-Attributen des <img>-Elements), so dass kleine Navigationsbilder zuerst erscheinen und die bombastische Hintergrundgrafik zuletzt. Und nicht zu vergessen wäre, dass zu viele gleichzeitige Übertragungen den Sinn und Zweck konterkarrieren würden, da sie die Leitungen verstopfen.

Und: Kann ich das beeinflussen?

Meines Wissens nach nur im Quellcode des Browsers.

Wie würde denn in deinem Beispiel der Ladevorgang für HTTP 1.1 mit max. 10 Verbindungen aussehen?

Im einfachsten Fall (der nicht der beste sein muss, siehe oben) vielleicht so:

1 HTML Javascript--------
2      CSS---
3      GrafikA-
4      GrafikB------
5      GrafikC---

HTTP 1.1 hätte hier zwar auf den ersten Blick keinen Vorteil, allerdings wirst du, wenn du mal die Netzwerkverbindungen beobachtest, feststellen, dass der Browser mindestens eine Verbindung auch noch offen hält, wenn die Seite längst komplett geladen ist. Meist klickt man ja doch innerhalb der nächsten halben Minute die nächste Seite an, hier kommen die bleibenden Verbindungen von HTTP 1.1 dann wieder zum Tragen.

RFC 2616 hat zu dem Thema übrigens einen kurzen Abschnitt namens Persistent Connections.
Dort wird, nebenbei bemerkt, empfohlen, maximal zwei Verbindungen gleichzeitig in Betrieb zu haben, womit das Verhalten im obigen Beispiel nicht ganz nach Kochbuch wäre.