Je crée des connexions suspendues à un serveur HTTP (comète, ajax inverse, etc.). Cela fonctionne bien, mais je vois que le navigateur n'autorise que deux connexions suspendues à un domaine donné simultanément. Donc, si un utilisateur consulte mon site Web dans l'onglet 1 de son navigateur, puis essaie également de le charger dans l'onglet 2, il a utilisé les deux connexions autorisées à mon site.
Je pense que je peux faire quelque chose de domaine générique, 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)
donc:
a.example.com/webapp
b.example.com/webapp
c.example.com/webapp
tous pointent toujours vers ( www.example.com/webapp
) mais le navigateur les considère comme des domaines différents, donc je ne rencontre pas la limite de 2 connexions. Est-ce vrai?
Même si cela est vrai - y a-t-il une limite au nombre de connexions actives par navigateur, dans tous les domaines? Supposons 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 choisir 24 connexions / Firefox comme exemple.
la source
Réponses:
Nombre maximum de connexions persistantes simultanées par défaut par serveur / proxy:
La limite est par serveur / proxy, donc votre schéma générique fonctionnera.
FYI: ceci est spécifiquement lié à HTTP 1.1; d'autres protocoles ont des préoccupations et des limites distinctes (c.-à-d. SPDY, TLS, HTTP 2).
la source
HTTP / 1.1
source: http://p2p.wrox.com/book-professional-website-performance-optimizing-front-end-back-end-705/
HTTP / 2 (SPDY)
la source
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 requêtes http simultanées que les navigateurs effectueront sur 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 maximal de connexions qu'un navigateur ouvrira au total - dans tous les domaines.
Mise à jour 2020
Nombre de connexions parallèles par navigateur
setTimeout
, +requestAnimationFrame
,then
...la source
Différents navigateurs ont différentes limites pour les connexions maximales 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 / connexions arrondies sur parallèle /
la source
Firefox stocke ce numéro dans ce paramètre (vous le trouverez dans
about:config
):network.http.max-connections-per-server
Pour les connexions max, Firefox enregistre que dans ce paramètre:
network.http.max-connections
la source
network.http.max-connections
est 900 par défaut, ce qui ne correspond pas au nombre maximal de connexions parallèles qui, par le biais des tests de la version 52, est toujours de 17.network.http.max-persistent-connections-per-server
faitEn faisant des tests sur une page, j'ai vu ce comportement:
Edit: Semble que Firefox 4 devrait être capable de faire 15 connexions mais ce n'est pas le comportement que j'ai observé.
la source
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 exprès. Consultez ce RFC pour voir pourquoi.
la source
En regardant
about:config
sur Firefox 33 sur GNU / Linux (Ubuntu), et en cherchant,connections
j'ai trouvé:Cela est susceptible de répondre à la partie existe-t-il une limite au nombre de connexions actives par navigateur, dans tous les domaines
ignoré deux propriétés ...
(intéressant, il semble qu'ils ne soient pas limités par serveur mais ont une valeur par défaut inférieure aux connexions http globales)
la source
Notez que l'augmentation du nombre maximal de connexions d'un navigateur par serveur à un nombre excessif (comme certains sites le suggèrent) peut et bloque d'autres utilisateurs sur de petits sites avec des plans d'hébergement qui limitent le nombre total de connexions simultanées sur le serveur.
la source
Ma compréhension est que la limite de connexion n'est pas modifiable 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'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 lancer un tas d'appels de service Web vers votre hôte de serveur - il acceptera les deux premiers et n'en acceptera pas un autre jusqu'à ce que l'un des deux soit terminé. Ce qui est étonnant, c'est que pour un magasin SOA, c'est critique, mais presque personne n'en est vraiment conscient.
la source
Il n'y a pas de réponse définitive à cela, car chaque navigateur a sa propre configuration pour cela, et cette configuration peut être modifiée. Si vous effectuez une recherche sur Internet, vous pouvez trouver des moyens de modifier cette limite (généralement, ils sont qualifiés de «méthodes d'amélioration des performances».) Il pourrait être utile de conseiller vos utilisateurs de le faire si cela est requis par votre site Web.
la source
la source