it-swarm.com.de

Max parallele http-Verbindungen in einem Browser?

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 also meine Website in Tab1 seines Browsers ansieht 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 ich von meinem http-Server eine beliebige Adresse auf meine Site auflösen lasse, wie:

*.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 2-Verbindungslimit stoße. Ist das wahr?

Auch wenn dies ist wahr ist - gibt es eine Begrenzung für die Anzahl der aktiven Verbindungen pro Browser in allen Domänen? Angenommen, ich verwende das obige Schema. Erlaubt Firefox beispielsweise nur 24 parallele Verbindungen zu einem bestimmten Zeitpunkt? So 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.

428
Mark

Maximale Anzahl gleichzeitig bestehender Standardverbindungen pro Server/Proxy:

Firefox 2:  2
Firefox 3+: 6
Opera 9.26: 4
Opera 12:   6
Safari 3:   4
Safari 5:   6
IE 7:       2
IE 8:       6
IE 10:      8
Chrome:     6

Das Limit ist pro Server/Proxy, sodass Ihr Wildcard-Schema funktioniert.

Zu Ihrer Information: Dies bezieht sich speziell auf HTTP 1.1. Andere Protokolle haben separate Bedenken und Einschränkungen (d. h. SPDY, TLS, HTTP 2).

392
Alsciende

HTTP/1.1

IE 6 and 7:      2
IE 8:            6
IE 9:            6
IE 10:           8
IE 11:           8
Firefox 2:       2
Firefox 3:       6
Firefox 4 to 46: 6
Opera 9.63:      4
Opera 10:        8
Opera 11 and 12: 6
Chrome 1 and 2:  6
Chrome 3:        4
Chrome 4 to 23:  6
Safari 3 and 4:  4

quelle: http://p2p.wrox.com/book-professional-website-performance-optimizing-front-end-back-end-705/

HTTP/2 (SPDY)

Multiplexed support(one single TCP connection for all requests)
188

BrowserVersion | ConnectionsPerHostname | MaxConnections

  1. Chrome34/32 6 10
  2. IE9 6 35
  3. IE10 8 17
  4. IE11 13 17
  5. Firefox27/26 6 17
  6. Safari 7.0.1 6 17
  7. Android4 6 17
  8. ChromeMobile18 6 16
  9. IE Mobile9 6 60

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 von gleichzeitigen http-Anforderungen, die Browser an dieselbe Domäne senden. Um die Anzahl der gleichzeitigen Verbindungen zu erhöhen, kann man Ressourcen (z. B. Bilder) in verschiedenen Domänen hosten. Sie können jedoch MaxConnections , die maximale Anzahl von Verbindungen, die ein Browser insgesamt öffnen kann, nicht überschreiten alle Domänen.

95
Razan Paul

Verschiedene Browser haben unterschiedliche Beschränkungen für die maximale Anzahl von Verbindungen pro Hostname. Die genauen Zahlen finden Sie unter http://www.browserscope.org/?category=network und hier ist ein interessanter Artikel über Verbindungsbeschränkungen vom Web-Performance-Experten Steve Souders http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/

44
Soroush

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 in dieser Einstellung: network.http.max-connections

14
palswim

Beim Testen auf einer Seite habe ich folgendes Verhalten festgestellt:

Safari 4: 6  
Chrome 6: 7  
FF 4: 6

Bearbeiten: Scheint, dass Firefox 4 in der Lage sein sollte, 15 Verbindungen herzustellen, aber das ist nicht das Verhalten, das ich beobachtet habe.

8
Jethro Larson

Die 2 gleichzeitigen Anforderungen sind beabsichtigter Bestandteil des Designs vieler Browser. Es gibt einen Standard, den "gute http-Clients" absichtlich einhalten. Check out this RFC um zu sehen warum.

5
Josh

Ich betrachte about:config in Firefox 33 unter GNU/Linux (Ubuntu) und suche connections Ich fand:

network.http.max-connections: 256

Das wird wahrscheinlich den Teil beantworten Gibt es eine Begrenzung für die Anzahl der aktiven Verbindungen pro Browser in allen Domänen

network.http.max-persistente-verbindungen-pro-proxy: 32

network.http.max-persistente-verbindungen-pro-server: 6

übersprang zwei Eigenschaften ...

network.websocket.max-verbindungen: 200

(Interessanterweise sind sie nicht pro Server beschränkt, sondern haben einen niedrigeren Standardwert als globale http-Verbindungen.)

4
orique

Es gibt keine definitive Antwort darauf, da jeder Browser eine eigene Konfiguration dafür hat und diese Konfiguration geändert werden kann. Wenn Sie im Internet suchen, können Sie nach Möglichkeiten suchen, diese Beschränkung zu ändern (normalerweise werden sie als "Leistungsverbesserungsmethoden" bezeichnet). Es kann sinnvoll sein, Ihre Benutzer zu informieren, wenn dies für Ihre Website erforderlich ist.

1
Blixt
  1. Ja, die Wildcard-Domain funktioniert für Sie.
  2. Keine Einschränkungen für Verbindungen bekannt. Einschränkungen, falls vorhanden, sind browserspezifisch.
1
Ryan Oberoi

Ich verstehe, dass das Verbindungslimit auf der Clientseite nicht geändert werden kann. Das Verbindungslimit muss auf dem Server geändert werden, damit es wirksam wird. Standardmäßig erlauben viele Server nur 2 Verbindungen pro eindeutigem Client.

Der Client ist nicht der Browser, sondern der Client-Computer, der die TCP/IP-Anforderungen ausgibt.

Um den Effekt sehr deutlich zu sehen, verwenden Sie JMeter, um eine Reihe von Webdienst-Aufrufen an Ihren Server-Host auszulösen. Die ersten beiden werden akzeptiert und erst, wenn einer der beiden abgeschlossen ist. Das Erstaunliche daran ist, dass dies für einen SOA -Laden von entscheidender Bedeutung ist, aber kaum jemandem wirklich bewusst ist.

1

Beachten Sie, dass das Erhöhen der maximalen Anzahl von Verbindungen eines Browsers pro Server auf eine übermäßige Anzahl (wie einige Websites vorschlagen) andere Benutzer durch Hosting-Pläne, die die Gesamtzahl der gleichzeitigen Verbindungen auf dem Server begrenzen, von kleinen Websites ausschließen kann.

1
John A.