Gleichzeitige Verbindungen in HTTP aufrechterhalten?
-
22-07-2019 - |
Frage
Ich muss mehrere aktive Long-Pooling-AJAX-Verbindungen zum Webserver aufrechterhalten.
Ich weiß, dass die meisten Browser nicht mehr als zwei gleichzeitige Verbindungen zum selben Server zulassen.Das ist es, was die HTTP 1.1-Protokoll Zustände:
Clients, die anhaltende Verbindungen verwenden, sollten die Anzahl der gleichzeitigen Verbindungen einschränken, die sie auf einem bestimmten Server verwalten.Ein Einzelbenutzer-Client sollte nicht mehr als 2 Verbindungen zu einem Server oder Proxy verwalten.Ein Proxy sollte bis zu 2*n Verbindungen zu einem anderen Server oder Proxy verwenden, wobei N die Anzahl der gleichzeitigen aktiven Benutzer ist.Diese Richtlinien sollen die HTTP -Reaktionszeiten verbessern und eine Überlastung vermeiden.
Angenommen, ich habe zwei Subdomänen: Server1.MyWebSite.Com und Server2.MyWebSite.Com die gleiche IP-Adresse teilen, Kann ich 2x2 gleichzeitige Verbindungen herstellen?
Lösung
Es scheint, dass verschiedene Host-Namen auf der gleichen IP kann nützlich . Sie können auf Probleme stoßen, wenn die AJAX-Verbindungen aufgrund Same Origin Policy .
Edit: Wie pro Ihre document.domain Frage (von Googles Browser Security Handbook ):
Checks für XMLHttpRequest Ziele nicht nehmen document.domain berücksichtigt ...
Andere Tipps
Es wird zu 100% Browser abhängig sein. Einige könnten die zwei Verbindungslimits auf Domain-Namen, einige vielleicht auf dem IP-Adresse basieren.
Andere werden Sie so viele tun lassen, wie Sie möchten.
NEIN Der Browser basiert sein Verbindungslimit auf der IP-Adresse. Alle Browser basieren das Limit auf dem angegebenen FQDN.
Daher wäre es völlig in Ordnung, einen DNS-Alias für Ihren Server zu haben, obwohl die frühere Antwort richtig ist, dass XHR erfordert, dass Sie den Domänennamen der Seite für XHR verwenden und den Alias zum Herunterladen der statischen Inhalte (Bilder, usw.) auf der Seite.
Moderne Browser erhöhen übrigens das Verbindungslimit typischerweise auf 6 oder 8 Verbindungen pro Host.