Connexions http parallèles Max dans un navigateur?
je crée des connexions suspendues à un serveur HTTP (comète, ajax inversé, etc.). Cela fonctionne bien, mais je vois que le navigateur ne permet que deux connexions suspendues à un domaine donné simultanément. Donc, si un utilisateur regarde mon site Web dans L'onglet 1 de leur navigateur, puis essaie également de le charger dans L'onglet 2, ils ont utilisé les deux connexions autorisées à mon site.
je pense que je peux faire quelque chose de wildcard domaine chose, où j'ai mon serveur http résoudre n'importe quelle adresse de mon site comme:
*.example.com/webapp -> 192.0.2.1 (the actual ip of my server)
:
a.example.com/webapp
b.example.com/webapp
c.example.com/webapp
pointent toujours vers ( www.example.com/webapp
) mais le navigateur les considère comme des domaines différents, donc je ne Cours pas dans la limite de 2 connexions. Est-ce vrai?
même si est vrai - y a-t-il une limite au nombre de connexions actives par navigateur, dans tous les domaines? Disons que J'utilise le schéma ci - dessus-Est-ce que Firefox, par exemple, n'autorise que 24 connexions parallèles à tout 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 choisir 24 connexions/Firefox comme exemple.
12 réponses
Nombre maximum de défaillance simultanée de connexions persistantes 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 per-server/proxy, donc votre schéma de Joker fonctionnera.
FYI: ceci est spécifiquement lié à HTTP 1.1; d'autres protocoles ont des préoccupations et des limites distinctes (i.e., SPDY, TLS, HTTP 2).
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)
BrowserVersion | ConnectionsPerHostname / MaxConnections
- Chrome34/32 6 10
- IE9 6 35
- IE10 8 17
- IE11 13 17
- Firefox27/26 6 17
- Safari7.0.1 6 17
- Android4 6 17
- ChromeMobile18 6 16
- IE Mobile9 6 60
la première valeur est ConnectionsPerHostname et la seconde valeur est MaxConnections "1519470920 .
Source: http://www.browserscope.org/?category=network&v=top
Note: ConnectionsPerHostname est le nombre maximum de requêtes http simultanées que les navigateurs feront dans le même domaine. Pour augmenter le nombre de connexions simultanées, on peut héberger des ressources (par exemple des images) dans différents domaines. Cependant, vous ne pouvez pas dépasser MaxConnections , le nombre maximum de connexions qu'un navigateur ouvrira au total - dans tous les domaines.
différents navigateurs ont différentes limites pour les connexions maximales par nom d'hôte; vous pouvez trouver les nombres exacts à http://www.browserscope.org/?category=network et voici un article intéressant sur les limites de connexion de L'expert en performances Web Steve Souders http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections /
Firefox stocke ce nombre dans ce cadre (vous le trouvez dans about:config
): network.http.max-connections-per-server
pour les connexions max, Firefox stocke que dans ce cadre: network.http.max-connections
faire des tests sur une page j'ai vu ce comportement:
Safari 4: 6
Chrome 6: 7
FF 4: 6
Edit: il semble que firefox 4 devrait être capable de faire 15 connexions mais ce n'est pas le comportement que j'ai observé.
en regardant about:config
sur Firefox 33 sur GNU / Linux (Ubuntu), et en cherchant connections
j'ai trouvé:
du réseau.http.connexions max: 256
qui est susceptible de répondre à la partie y a-t-il une limite au nombre de connexions actives par navigateur, à travers tous les domaines
du réseau.http.max-persistent-connections-par-proxy: 32
du réseau.http.max-persistent-connections-par-serveur: 6
a sauté deux propriétés...
du réseau.websocket.connexions max: 200
(intéressant, il semble qu'ils ne sont pas limités par serveur mais ont une valeur par défaut inférieure aux connexions http globales)
- Oui, domaine générique va travailler pour vous.
- ne connaît aucune limite sur les connexions. Limites si tout sera spécifiques au navigateur.
noter que l'augmentation des connexions max d'un navigateur par serveur à un nombre excessif (comme certains sites le suggèrent) peut et ne bloque d'autres utilisateurs de petits sites avec des plans d'hébergement qui limitent le nombre total de connexions simultanées sur le serveur.
ma compréhension est que la limite de connexion n'est pas modifiable du côté du client. La limite de connexion doit être changé sur le serveur pour avoir un effet. Par défaut, de nombreux serveurs n'autorisent que 2 connexions par client unique.
le client n'est pas le navigateur, c'est la machine client émettant les requêtes TCP/IP.
Pour voir l'effet très clairement, utilisez quelque chose comme JMeter pour déclencher un tas d'appels de service web à votre serveur l'hôte d'accepter les deux premiers et n'acceptera pas un autre jusqu'à ce que l'un des deux est terminé. La chose étonnante à ce sujet est que pour un magasin SOA, c'est critique, mais presque personne n'est vraiment au courant.
Il n'y a pas de réponse définitive à cette, que chaque navigateur a sa propre configuration pour cela, et cette configuration peut être modifiée. Si vous cherchez sur internet, vous pouvez trouver des moyens de changer cette limite (généralement ils sont marqués comme "performance enhancement methods.") Il pourrait être utile de conseiller à vos utilisateurs de le faire si cela est requis par votre site web.