web-dev-qa-db-fra.com

Nombre maximal de connexions http parallèles dans un navigateur?

Je crée des connexions suspendues à un serveur HTTP (comet, reverse ajax, etc.). Cela fonctionne bien, mais je vois que le navigateur n'autorise que deux connexions suspendues à un domaine donné simultanément. Ainsi, si un utilisateur consulte mon site Web dans Tab1 de son navigateur et essaie également de le charger dans Tab2, il a utilisé les deux connexions autorisées sur mon site.

Je pense que je peux faire quelque chose de générique de domaine, où j'ai mon serveur http résoudre n'importe quelle adresse sur mon site comme:

*.example.com/webapp  -> 192.0.2.1 (the actual ip of my server)

alors:

a.example.com/webapp
b.example.com/webapp
c.example.com/webapp

tous pointent toujours sur (www.example.com/webapp) mais le navigateur les considère comme des domaines différents, aussi je ne rencontre pas la limite de 2 connexions. Est-ce vrai?

Même si cela est true - existe-t-il une limite au nombre de connexions actives par navigateur, dans tous les domaines? Disons que j'utilise le schéma ci-dessus - Firefox, par exemple, n'autorise-t-il que 24 connexions parallèles à un moment donné? Quelque chose comme:

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!

Je viens de prendre 24 connexions/Firefox comme exemple.

428
Mark

Nombre maximum de connexions persistantes simultanées par serveur/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

La limite est par serveur/proxy, donc votre système de caractères génériques fonctionnera.

FYI: ceci est spécifiquement lié à HTTP 1.1; d’autres protocoles ont des préoccupations et des limitations distinctes (SPDY, TLS, HTTP 2, par exemple).

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

source: 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
Fatih Hayrioğlu

NavigateurVersion | 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. Safari7.0.1 6 17
  7. Android4 6 17
  8. ChromeMobile18 6 16
  9. IE Mobile9 6 60

La première valeur est ConnectionsPerHostname et la deuxième valeur est MaxConnections .

Source: http://www.browserscope.org/?category=network&v=top

Remarque: ConnectionsPerHostname est le nombre maximal de demandes HTTP simultanées que les navigateurs adresseront au même domaine. Pour augmenter le nombre de connexions simultanées, il est possible d’héberger des ressources (images, par exemple) dans différents domaines. Cependant, vous ne pouvez pas dépasser MaxConnections , nombre maximal de connexions qu'un navigateur ouvrira au total tous les domaines.

95
Razan Paul

Différents navigateurs ont différentes limites quant au nombre maximal de connexions par nom d'hôte. vous pouvez trouver les chiffres exacts sur http://www.browserscope.org/?category=network et voici un article intéressant sur les limitations de connexion de l'expert en performances Web Steve Souders http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/

44
Soroush

Firefox enregistre ce numéro dans ce paramètre (vous le trouverez dans about:config): network.http.max-connections-per-server

Pour le nombre maximal de connexions, Firefox enregistre dans ce paramètre: network.http.max-connections

14
palswim

Faire des tests sur une page, j'ai vu ce comportement:

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

Edit: Semble que firefox 4 devrait pouvoir faire 15 connexions mais ce n’est pas le comportement que j’ai observé.

8
Jethro Larson

Les 2 demandes simultanées font intentionnellement partie de la conception de nombreux navigateurs. Il existe une norme à laquelle les "bons clients http" adhèrent volontairement. Découvrez ce RFC pour voir pourquoi.

5
Josh

En regardant about:config sur Firefox 33 sous GNU/Linux (Ubuntu), et en recherchant connections j'ai trouvé:

network.http.max-connections: 256

Cela est susceptible de répondre à la partie y at-il une limite au nombre de connexions actives par navigateur, dans tous les domaines

network.http.max-persistent-connections-per-proxy: 32

network.http.max-persistent-connections-per-server: 6

ignoré deux propriétés ...

network.websocket.max-connections: 200

(intéressant, semble ne pas être limité par serveur mais avoir une valeur par défaut inférieure à celle des connexions http globales)

4
orique

Il n'y a pas de réponse définitive à cette question, chaque navigateur ayant sa propre configuration, cette configuration pouvant être modifiée. Si vous effectuez une recherche sur Internet, vous pouvez trouver le moyen de modifier cette limite (en général, elles sont qualifiées de "méthodes d'amélioration des performances".) Il peut être utile de conseiller à vos utilisateurs de le faire si cela est requis par votre site Web.

1
Blixt
  1. Oui, le domaine générique fonctionnera pour vous.
  2. Pas au courant de toute limite sur les connexions. Limites, le cas échéant, spécifiques au navigateur.
1
Ryan Oberoi

D'après ce que je comprends, la limite de connexion ne peut pas être modifiée du côté client. La limite de connexion doit être modifiée sur le serveur pour avoir un effet. Par défaut, de nombreux serveurs n'autoriseront que 2 connexions par client unique.

Le client n’est pas le navigateur, c’est la machine cliente qui émet les requêtes TCP/IP.

Pour voir l'effet très clairement, utilisez quelque chose comme JMeter pour déclencher une série d'appels de service Web sur votre serveur hôte. Il acceptera les deux premiers et n'acceptera aucun autre avant la fin de l'un des deux. Ce qui est étonnant, c’est que pour un magasin SOA, c’est essentiel, mais personne ne le sait vraiment.

1
Rodney P. Barbati

Notez que l'augmentation du nombre maximal de connexions par serveur d'un serveur à un nombre excessif (comme le suggèrent certains sites) peut empêcher les autres utilisateurs d'accéder à de petits sites avec des plans d'hébergement limitant le nombre total de connexions simultanées sur le serveur.

1
John A.