Я создаю несколько приостановленных подключений к HTTP-серверу (комета, обратный AJAX и т. Д.). Это работает нормально, но я вижу, что браузер позволяет только два приостановленных подключения к данному домену одновременно. Поэтому, если пользователь просматривает мой веб-сайт в Tab1 своего браузера, а затем пытается загрузить его в Tab2, он использует два разрешенных подключения к моему сайту.
Я думаю, что могу сделать что-то с подстановочным знаком домена, где мой http-сервер разрешает любой адрес моего сайта, например:
*.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
все по-прежнему указывают на ( www.example.com/webapp
), но браузер считает их разными доменами, поэтому я не ограничиваюсь 2-мя подключениями. Это правда?
Даже если это правда - есть ли ограничение на количество активных соединений в браузер, во всех областях? Скажем, я использую схему выше - например, Firefox допускает только 24 параллельных соединения в любой момент времени? Что-то вроде:
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!
Я просто выбрал 24 соединения / Firefox в качестве примера.
источник
Ответы:
Максимальное количество одновременных постоянных соединений по умолчанию на сервер / прокси:
Ограничение на сервер / прокси, так что ваша схема подстановки будет работать.
К вашему сведению: это конкретно связано с HTTP 1.1; другие протоколы имеют отдельные проблемы и ограничения (например, SPDY, TLS, HTTP 2).
источник
HTTP / 1.1
источник: http://p2p.wrox.com/book-professional-website-performance-optimizing-front-end-back-end-705/
HTTP / 2 (SPDY)
источник
Первое значение - ConnectionsPerHostname, а второе - MaxConnections .
Источник: http://www.browserscope.org/?category=network&v=top
Примечание. ConnectionsPerHostname - это максимальное количество одновременных http-запросов, которые браузеры будут отправлять в один и тот же домен. Чтобы увеличить количество одновременных подключений, можно разместить ресурсы (например, изображения) в разных доменах. Однако вы не можете превысить MaxConnections , максимальное количество подключений, которое браузер откроет всего - по всем доменам.
2020 Обновление
Количество параллельных подключений на браузер
setTimeout
, +requestAnimationFrame
,then
...источник
Различные браузеры имеют различные ограничения на максимальное количество соединений на имя хоста; точные цифры вы можете найти по адресу http://www.browserscope.org/?category=network, а вот интересная статья об ограничениях соединения от эксперта по веб-производительности Стива Соудерса http://www.stevesouders.com/blog/2008/ 03/20 / облава-на-параллельно-соединений /
источник
Firefox сохраняет этот номер в этой настройке (вы найдете его в
about:config
):network.http.max-connections-per-server
Для максимальных соединений Firefox сохраняет это в этом параметре:
network.http.max-connections
источник
network.http.max-connections
по умолчанию равно 900, что не относится к максимальному количеству параллельных подключений, которое по результатам тестирования версии 52 все еще равно 17.network.http.max-persistent-connections-per-server
самом делеДелая тестирование на странице, я увидел это поведение:
Изменить: Кажется, что Firefox 4 должен быть в состоянии сделать 15 подключений, но это не то поведение, которое я наблюдал.
источник
2 одновременных запроса являются намеренной частью дизайна многих браузеров. Существует стандарт, которого "хорошие http-клиенты" придерживаются специально. Проверьте этот RFC, чтобы увидеть почему.
источник
Глядя
about:config
на Firefox 33 на GNU / Linux (Ubuntu) и поиск,connections
я нашел:Это, вероятно, ответит на вопрос , есть ли ограничение на количество активных соединений на браузер во всем домене
пропустили два свойства ...
(интересно, кажется, что они не ограничены для каждого сервера, но имеют значение по умолчанию ниже, чем глобальные http-соединения)
источник
Обратите внимание, что увеличение максимального количества подключений браузера к серверу до чрезмерного количества (как предлагают некоторые сайты) может блокировать других пользователей на небольших сайтах с планами хостинга, которые ограничивают общее количество одновременных подключений к серверу.
источник
Насколько я понимаю, предел подключения не может быть изменен на стороне клиента. Предел соединения должен быть изменен на сервере, чтобы иметь какой-либо эффект. По умолчанию на многих серверах разрешено только 2 подключения для каждого уникального клиента.
Клиент - это не браузер, а клиентский компьютер, выдающий запросы TCP / IP.
Чтобы увидеть эффект очень четко, используйте что-то вроде JMeter для запуска нескольких вызовов веб-сервисов на хосте вашего сервера - он примет первые два и не примет другой, пока один из двух не будет завершен. Удивительная вещь в том, что для SOA-магазина это очень важно, но вряд ли кто-то знает об этом.
источник
На этот вопрос нет однозначного ответа, так как каждый браузер имеет свою собственную конфигурацию, и эта конфигурация может быть изменена. Если вы выполняете поиск в Интернете, вы можете найти способы изменить это ограничение (обычно они обозначаются как «методы повышения производительности»). Возможно, стоит посоветовать вашим пользователям сделать это, если этого требует ваш веб-сайт.
источник
источник