Ограничения параллельных HTTP-соединений в браузере
Пройдите тест, узнайте какой профессии подходите
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы
Быстрый ответ
Типично браузеры поддерживают до 6 одновременных соединений на один домен для HTTP/1.1. Впрочем, используя HTTP/2, который предоставляет возможность мультиплексирования, вы сможете осуществлять множество запросов одновременно через единое соединение.
# Чтобы обеспечить использование преимуществ HTTP/2 в Nginx, включите его:
server {
listen 443 ssl http2;
server_name www.example.com;
}
Переход к HTTP/2 существенно повысит производительность благодаря эффективности обработки множества запросов в пределах одного соединения.
Ограничения соединений в браузерах: важно знать
Лимит в 6 соединений на один домен может быть изменён в зависимости от множества факторов:
Особенности браузеров: дьявол кроется в деталях
- Firefox 3+, Edge, Chrome, Opera 12, Safari 5: Поддерживают до 6 соединений.
- Internet Explorer 10: Позволяет 8 соединений.
HTTP/2 и мультиплексирование: нововведения
- HTTP/2: Способен обрабатывать сколько угодно запросов в рамках одного соединения, что позволяет обходить установленные лимиты.
Домены-заглушки: изворотливый подход
- Домены-заглушки: Используйте различные субдомены, чтобы выдавать их за разные домены и тем самым увеличить количество одновременных соединений.
Для пользователей Firefox: больше управления
- Настройки Firefox: С помощью about:config вы можете расширить установленный лимит.
Размещение ресурсов на разных доменах: тактический подход
- Раcпределение ресурсов по разным доменам способствует увеличению общего количества одновременных соединений.
Визуализация
Смотрите на браузер как на автостраду, имеющую ограниченное число полос для движения:
Автострада браузера 🛣️: | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 |
Каждая машина — это HTTP-соединение.
Максимум соединений:
- Chrome: | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 |
- Firefox: | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 |
- Safari: | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 |
- IE: | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 | 🚗 |
Как и на дороге, каждая полоса может обрабатывать только одно соединение за раз. Для остальных выстраивается очередь, пока не освободится полоса.
Разширяйте свои возможности: ищите альтернативные решения
Серверы: центр управления
- Настраивайте Nginx и Apache на работу с HTTP/2, что увеличивает не только эффективность сервера, но и его работоспособность.
Общее представление о лимитах браузеров
- Браузеры могут обрабатывать сотни, а то и тысячи, соединений одновременно для всех доменов. Однако не стоит забывать об основной 'реке', в которую все это 'впадает'.
Познакомиться с историей: предыдущие протоколы
- Изучите SPDY и TLS. Они уже несовременны, но понимание их работы будет полезно при взаимодействии с устаревшим ПО.
Ресурсы: берите знания с собой
- Веб-сайты типа Browserscope предлагают информацию о лимитах соединений в браузерах.
Повышение эффективности с HTTP/2: потому что время – это деньги
- HTTP/2 server push обеспечивает более эффективную загрузку, избавляет от необходимости делать дополнительные DNS-запросы и устанавливать новые соединения.
Полезные материалы
- Управление соединениями HTTP/1.x – HTTP | MDN — Подробное руководство об управлении HTTP-соединениями в браузерах.
- Fetch Standard — Детальное описание процесса получения ресурсов браузером.
- Часто задаваемые вопросы по HTTP/2 — Ответы на все вопросы касательно HTTP/2.
- Максимальное количество одновременных HTTP-соединений в браузере – Stack Overflow — Обсуждения и советы экспертов в области разработки браузеров.
- Can I use... Support tables for HTML5, CSS3, etc — Информация о поддержке HTTP/2 и других технологий в различных браузерах.
- High Performance Browser Networking (O'Reilly) — Обширный источник информации по вопросам производительности сети.
- Инструменты разработчика Chrome — Комплект инструментов для изучения сетевой производительности в браузере Chrome.