Получить количество одновременных запросов от браузера - PullRequest
36 голосов
/ 17 сентября 2011

Я пытаюсь выяснить, стоит ли распределять запросы изображений по нескольким поддоменам.[Эта статья] (ссылка битая), например, гласит:

Большинство браузеров могут делать только два запроса одновременно, поэтому браузер запрашивает два файла, загружает их и затемперейти к следующим двум.Чем больше HTTP-запросов или отдельных компонентов требуется странице для правильного отображения, тем дольше пользователю придется ждать.

Когда они говорят большинство , какие именно браузеры?Связано ли это число с числом одновременных XMLHttpRequests на каждый этот вопрос ?

Ответы [ 2 ]

74 голосов
/ 17 сентября 2011

Есть много вещей, чтобы рассмотреть здесь.В большинстве случаев я бы выбрал только один домен / поддомен без файлов cookie для размещения ваших изображений, например static.mywebsite.com.И в идеале статические файлы должны размещаться в CDN, но это уже другая история.

Прежде всего, IE7 допускает только два одновременных соединения на хост.Но большинство браузеров сегодня допускают больше, чем это.IE8 допускает 6 одновременных подключений, Chrome разрешает 6, а Firefox допускает 8.

Так что, если ваша веб-страница имеет только 6 изображений, например, было бы бессмысленно распространять ваши изображения по нескольким поддоменам.

Допустим, у вас есть 24 изображения на странице.Что ж, в жизни мало вещей, которые бывают свободными, а параллелизация - это смерть.Если вы размещаете свои изображения в 4 разных поддоменах, то это означает, что каждое изображение теоретически может быть загружено параллельно.Тем не менее, это также означает, что есть 3 дополнительных поиска DNS.И поиск DNS может быть 100 мс, 150 мс, а иногда и дольше.Эта добавленная задержка может легко компенсировать любое преимущество параллельных загрузок.Вы можете увидеть реальные примеры этого, протестировав сайты с http://www.webpagetest.org/

. Конечно, лучшим решением является использование спрайтов CSS, когда это возможно, чтобы сократить количество запросов.Я говорю об этом и присущих каждому запросу в этой статье и этом .

ОБНОВЛЕНИИ

Естьинтересная статья Стива Соудерса на тему разделения доменов ...

Большинство из десяти ведущих веб-сайтов США занимаются разделением доменов.YouTube использует i1.ytimg.com, i2.ytimg.com, i3.ytimg.com и i4.ytimg.com.Live Search использует ts1.images.live.com, ts2.images.live.com, ts3.images.live.com и ts4.images.live.com.Оба этих сайта находятся в четырех доменах.Какое оптимальное количество? Yahoo!опубликовал исследование, которое рекомендует разделять как минимум два, но не более четырех доменов.Выше четырех производительность фактически ухудшается.

http://www.stevesouders.com/blog/2009/05/12/sharding-dominant-domains/

Обратите внимание, что это было написано в 2009 году. А в 2011 году он оставил комментарий ...

Поскольку новые браузеры открывают больше соединений на домен, вероятно, лучше пересмотреть число в сторону уменьшения.Я думаю, что 2 - хороший компромисс, но это всего лишь догадка.Было бы замечательно, если бы какое-либо производственное свойство запускало тест для определения оптимального числа.

Вы также должны иметь в виду, что для больших сайтов, таких как Yahoo и Amazon, даже важна причинашардинг доменов заключается в том, что их сайты настолько динамичны.Изображения прикрепляются к продуктам или историям, которые отображаются динамически.Поэтому для них нецелесообразно использовать спрайты CSS так агрессивно, как было бы оптимальным.

Тем не менее, такой сайт, как StackOverflow, не очень подходит для такого рода изображений, и они настолько сократили количество запросов, что им не нужно делать шардинг.Большим шагом к этому является использование ими sprites.png image ...

http://cdn.sstatic.net/Sites/stackoverflow/img/sprites.png?v=5

ОБНОВЛЕНИЕ № 2

СтивSouders опубликовал очередное обновление по шардингу домена .Он повторяет многое из того, что я уже упоминал.Но что выделялось, так это SPDY и то, как это должно повлиять на ваше решение.

Возможно, самым сильным аргументом против шардинга домена является то, что он не нужен в мире SPDY (а также HTTP 2.0).На самом деле, шардинг домена, вероятно, снижает производительность в SPDY.SPDY поддерживает одновременные запросы (отправляют все заголовки запросов заранее), а также приоритезацию запросов.Разделение между несколькими доменами уменьшает эти преимущества.SPDY поддерживается в Chrome, Firefox, Opera и IE 11. Если в вашем браузере преобладают эти браузеры, вы можете пропустить разделение домена.

ОБНОВЛЕНИЕ № 3 (февраль 2018 г.)

As DКак уже упоминалось в комментариях ниже, спрайты CSS на самом деле не очень-то вас покупают, поскольку в современных браузерах поддерживается HTTP / 2.Но вам нужно получить сертификат SSL, настроить свой сайт для работы с HTTPS и убедиться, что ваш веб-сервер настроен для HTTP / 2.Либо так, либо используйте CDN, в котором уже есть все это для вас.Сделав все это, вы, вероятно, можете пропустить как спрайты CSS, так и шардинг домена.

1 голос
/ 16 июня 2015

Google Chrome имеет: 6, Safari имеет: 5, Mozilla Firefox имеет: 8 максимум одновременных запросов на получение к одному домену.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...