Увеличение числа параллельных соединений браузера к одному домену из HTML
Большинство разработчиков сайтов уже знают, что число соединений к серверу у браузеров лимитированно. Старые версии браузеров используют только два соединения на сервер, более свежие побольше (например, «Опера» 11.10 — аж 16).
В общем случае алгоритм использования этих соединений достаточно сложен и отличается от браузера к браузеру (имеется ввиду будут ли параллельно загружаются стилевые таблицы, скрипты и прочее), но общее правило неизменно — больше своего лимита браузер соединений к серверу не плодит.
Между тем, это не всегда хорошо, ведь если все соединения заняты, то браузер ждёт данных по ним, не инициируя новые, даже если канал до сервера позволяет загрузить
Если сайт и канал вполне выдержат и большее количество соединений от одного пользователя (с учётом посещаемости), то есть хитрость, которую часто используют — загружать статику (картинки, файлы стилей и прочее) с других доменов. Их не обязательно располагать на других серверах, достаточно дать одному серверу несколько имён и использовать их для загрузки.
Выглядеть это может так: static1.example.org, static2.example.org и так далее. «Яндекс», к примеру, грузит свои данные с домена yandex.st. Как видите, подходит другой домен любого уровня.
Хорошо, когда есть возможность завести любое количество доменов
Ничего страшного, чаще всего у пользователя такого хостинга аж четыре домена, просто мало кто об этом подозревает. Первые два достаточно очевидны — хостер часто, кроме
Ещё два не так очевидны— это домены «example.org.» и «www.example.org.». Обратите внимание на точку в конце домена.
Мои эксперименты (проверял на сервисе BrowserShots, операционные системы Linux, Windows XP, Mac OS X) говорят о том, что браузеры умеют с ними работать, то есть картинки с URL, где имя домена кончалось на точку, грузились нормально.
Для того, чтобы проверить считают ли браузеры домены с точкой в конце и без различными, я создал небольшой скрипт, который отдаёт картинку без кеширования с секундной задержкой.
В эксперименте я выставил максимальное количество соединений к серверу в единицу («Опера» и «FireFox» позволяют это сделать, где это делается в браузерах на WebKit я не знаю, подскажите, если знаете) и создал две

На скриншоте хорошо заметен результат и видно где какой эксперимент (по колонке «Домен»). По скриншоту видно, что я использовал хорошо всем знакомый FireBug, но на Dragonfly из «Оперы» картина такая же.
Комментарии 26
Давно интересует, как можно прервать все соединения под виндой принудительно? Если это можно сделать по конкретновзятому порту/от конкретновзятого приложения — было бы вообще замечательно.
— TcpView http://technet.microsoft.com/en-us/sysinte … s/bb897437
— выбрать соединения
— right click + «Close Connection»
http://weblogs.asp.net/mschwarz/archive/20 … tions.aspx
http://support.microsoft.com/kb/282402
Спасибо! Доберусь до Windows, попробую.
Существование домена с точкой — не баг, более того, на самом деле он ровно так и записывается. То, что домены считаются разными — баг, возможно на тех браузерах, которые я ещё не проверил (IE,WebKit-based), это не работает. В любом случае, хуже от этого не станет.
Спасибо.
Вы не правы, более того, вы совершенно не в том направлении думаете. Сессии и PHP тут совершенно не причём.
Комментарий для Евгения Степанищева:
Судя по картинке с firebug, таки при чём. Рискну предположить, что серое на шкале — ожидание, синее — приём. И из этого следует, что запрос браузер в обеих случаях послал одновременно.
Комментарий для jankkhvej.blogspot.com:
Нет, непричём.
Серое — это «блокировка» (занят канал соединения к серверу).
Как Гугл недавно порадовал изобретением собственного
Может,
Так чувствую. Что такое «старые браузеры»?
Одно дополнительное имя (с точкой в конце) не даст ничего кроме раздувания и нечитаемости
И еще нужно не забыть прибавить время на
Комментарий дляmaxim-zotov:
Почитайте статьи на эту тему, можно начать вот с этой: http://webo.in/articles/habrahabr/32-paral … imization/
веб-сайт», вот тут её можно взять бесплатно: http://speedupyourwebsite.ru/books/speed-u … r-website/
Очень рекомендую к прочтению книгу Коли Мациевского «Разгони свой
Комментарий дляmaxim-zotov:
Шаблонизаторы вас выручат.
Комментарий для jankkhvej.blogspot.com:
Можно было не утруждаться, теория явно ошибочна — сессии просто не могут влиять таким образом.
Недавно был свидетелем такой истории — сайт сделан, все чудно, но загрузка в IE сильно пробуксовывает там, где есть определенные элементы. Пока они не будут загружены все до конца, броузер показывает чистый лист и не может выполнить разметку. Хотя, возможно, присутствует проблема с броузером и/или сайтом
Мне не удалось заставить IE9 на Windows 7 ходить через одно соединение к серверу, но ощущение такое (смотрел в Developer Tools, вызывается по F12), что домены с точкой и без он, всё же, считает различными.
Согласно ему, «Хром», который стоит у меня на системе, так же различает домены с точкой и без. Завтра попробую проверить IE.