Ich erstelle einige unterbrochene Verbindungen zu einem HTTP-Server (Komet, Reverse Ajax usw.). Es funktioniert in Ordnung, aber ich sehe, dass der Browser nur zwei unterbrochene Verbindungen zu einer bestimmten Domain gleichzeitig zulässt. Wenn ein Benutzer meine Website in Tab1 seines Browsers betrachtet und dann versucht, sie in Tab2 zu laden, hat er die beiden zulässigen Verbindungen zu meiner Website aufgebraucht.
Ich denke, ich kann eine Wildcard-Domain-Sache machen, bei der mein http-Server eine beliebige Adresse für meine Site auflöst:
*.example.com/webapp -> 192.0.2.1 (the actual ip of my server)
damit:
a.example.com/webapp
b.example.com/webapp
c.example.com/webapp
Alle zeigen immer noch auf ( www.example.com/webapp
), aber der Browser betrachtet sie als unterschiedliche Domänen, sodass ich nicht auf das Verbindungslimit von 2 stoße. Ist das wahr?
Auch wenn das ist wahr - Gibt es eine Begrenzung für die Anzahl der aktiven Verbindungen pro Browser, über alle Domains? Angenommen, ich verwende das oben beschriebene Schema. Erlaubt Firefox beispielsweise nur 24 parallele Verbindungen zu einem bestimmten Zeitpunkt? Etwas wie:
1) a.example.com/webapp
2) www.download.example/hugefile.zip
3) b.example.com/webapp
4) c.example.com/webapp
...
24) x.example.com/webapp
25) // Error - all 24 possible connections currently in use!
Ich habe gerade 24 Verbindungen / Firefox als Beispiel ausgewählt.
quelle
Antworten:
Maximale Anzahl gleichzeitiger persistenter Standardverbindungen pro Server / Proxy:
Das Limit ist pro Server / Proxy, sodass Ihr Platzhalterschema funktioniert.
Zu Ihrer Information: Dies bezieht sich speziell auf HTTP 1.1; Andere Protokolle haben separate Bedenken und Einschränkungen (z. B. SPDY, TLS, HTTP 2).
quelle
HTTP / 1.1
Quelle: http://p2p.wrox.com/book-professional-website-performance-optimizing-front-end-back-end-705/
HTTP / 2 (SPDY)
quelle
Der erste Wert ist ConnectionsPerHostname und der zweite Wert ist MaxConnections .
Quelle: http://www.browserscope.org/?category=network&v=top
Hinweis: ConnectionsPerHostname ist die maximale Anzahl gleichzeitiger http-Anforderungen, die Browser an dieselbe Domäne senden. Um die Anzahl der gleichzeitigen Verbindungen zu erhöhen, können Ressourcen (z. B. Bilder) in verschiedenen Domänen gehostet werden. Sie dürfen jedoch MaxConnections nicht überschreiten , die maximale Anzahl von Verbindungen, die ein Browser insgesamt öffnet - über alle Domänen hinweg.
2020 Update
Anzahl der parallelen Verbindungen pro Browser
setTimeout
, +requestAnimationFrame
,then
...quelle
Verschiedene Browser haben unterschiedliche Grenzwerte für maximale Verbindungen pro Hostname. Die genauen Zahlen finden Sie unter http://www.browserscope.org/?category=network. Hier finden Sie einen interessanten Artikel über Verbindungsbeschränkungen von Steve Souders, Experte für Webleistung http://www.stevesouders.com/blog/2008/. 03/20 / Roundup-on-Parallel-Verbindungen /
quelle
Firefox speichert diese Nummer in dieser Einstellung (Sie finden sie in
about:config
):network.http.max-connections-per-server
Für die maximalen Verbindungen speichert Firefox Folgendes:
network.http.max-connections
quelle
network.http.max-connections
ist standardmäßig 900, was sich nicht auf die maximale Anzahl paralleler Verbindungen bezieht, die durch Testen der Version 52 immer noch 17 beträgt.network.http.max-persistent-connections-per-server
tatsächlichBeim Testen auf einer Seite habe ich folgendes Verhalten festgestellt:
Bearbeiten: Scheint, dass Firefox 4 in der Lage sein sollte, 15 Verbindungen herzustellen, aber das ist nicht das Verhalten, das ich beobachtet habe.
quelle
Die 2 gleichzeitigen Anforderungen sind ein absichtlicher Bestandteil des Designs vieler Browser. Es gibt einen Standard, an den sich "gute http-Clients" absichtlich halten. Schauen Sie sich diesen RFC an an, um zu sehen, warum.
quelle
Beim Betrachten
about:config
von Firefox 33 unter GNU / Linux (Ubuntu) und beim Suchenconnections
fand ich:Dies ist wahrscheinlich die Antwort auf die Frage, ob die Anzahl der aktiven Verbindungen pro Browser in allen Domänen begrenzt ist
zwei Eigenschaften übersprungen ...
(Interessant, anscheinend sind sie nicht pro Server beschränkt, sondern haben einen niedrigeren Standardwert als globale http-Verbindungen.)
quelle
Beachten Sie, dass das Erhöhen der maximalen Verbindungen eines Browsers pro Server auf eine übermäßige Anzahl (wie einige Websites vorschlagen) andere Benutzer von kleinen Websites mit Hosting-Plänen ausschließen kann und tut, die die Gesamtzahl der gleichzeitigen Verbindungen auf dem Server begrenzen.
quelle
Nach meinem Verständnis kann das Verbindungslimit auf der Clientseite nicht geändert werden. Das Verbindungslimit muss auf dem Server geändert werden, um Auswirkungen zu haben. Standardmäßig erlauben viele Server nur 2 Verbindungen pro eindeutigem Client.
Der Client ist nicht der Browser, sondern der Clientcomputer, der die TCP / IP-Anforderungen ausgibt.
Um den Effekt sehr deutlich zu sehen, verwenden Sie etwas wie JMeter, um eine Reihe von Webdienstaufrufen an Ihren Serverhost auszulösen. Die ersten beiden werden akzeptiert, und eine weitere wird erst akzeptiert, wenn eine der beiden abgeschlossen ist. Das Erstaunliche daran ist, dass dies für einen SOA-Shop von entscheidender Bedeutung ist, aber kaum jemand ist sich dessen wirklich bewusst.
quelle
Es gibt keine endgültige Antwort darauf, da jeder Browser seine eigene Konfiguration dafür hat und diese Konfiguration möglicherweise geändert wird. Wenn Sie im Internet suchen, können Sie nach Möglichkeiten suchen, dieses Limit zu ändern (normalerweise werden sie als "Methoden zur Leistungssteigerung" bezeichnet). Es kann sinnvoll sein, Ihren Benutzern dies zu empfehlen, wenn dies für Ihre Website erforderlich ist.
quelle
quelle