В чем преимущество размещения статических ресурсов в отдельном домене?

Я замечаю, что многие сайты размещают свои ресурсы в отдельном домене с основного сайта, например. StackExchange с использованием sstatic.net, Barnes & Благородный, используя imagesbn.com и т. Д.

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

В чем преимущество использования отдельного домена в противном случае? Почему sstatic.net вместо static.stackexchange.com?

Обновить . В нескольких ответах отсутствует основной вопрос. Я понимаю, что есть преимущество для разделения между несколькими хостами - параллельными загрузками, более тонким веб-сервером и т. Д. Но более неуловимым является то, почему несколько доменов . Почему sstatic.net, а не static.stackexchange.com как хост для общих ресурсов? Пока что только один ответ обратился к этому.

17 голосов | спросил Michael Ekstrand 26 Jam1000000amThu, 26 Jan 2012 09:26:49 +040012 2012, 09:26:49

5 ответов


16

На многих сайтах установлено множество файлов cookie, эти файлы cookie имеют целью поддерживать какое-то состояние.

Помещая статические (безстоящие) ресурсы в совершенно другой домен, вы можете уменьшить размер HTTP-запросов. В некоторых случаях существует так много файлов cookie, что один HTTP-запрос принимает два TCP-пакета для передачи. Таким образом, наличие отдельного домена является одним из способов уменьшить количество пакетов для запроса различных частей страницы.

Другие методы с той же целью объединяют много изображений в один спрайт и объединяют все Javascript в один файл.

ответил Niels Basjes 27 Jam1000000amFri, 27 Jan 2012 00:43:41 +040012 2012, 00:43:41
19

Помимо использования CDN, использование отдельных доменов для статических данных также означает:

  1. Вы можете использовать легкий веб-сервер, которому не нужно загружать все модули /расширения, которые должен загружать веб-сервер динамического контента для каждого отдельного запроса. Не нужно сканировать каждый каталог в пути URI для чтения файлов .htaccess также увеличивает количество одновременных запросов, которые может обрабатывать сервер.

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

  3. Если вы правильно настроили (например, ваш сайт размещен на www.example.com вместо example.com), вы также можете воспользоваться cookieless subdomain, уменьшая трафик и время округления.

Единственным недостатком является то, что если вы используете сеансы SSL, вам нужен подписанный сертификат и отдельный статический IP-адрес для дополнительных доменов. Но преимущества перевешивают это незначительное неудобство в большинстве случаев.

Edit:

Извините, я неправильно понял ваш вопрос. Если вы спрашиваете, почему некоторые люди используют отдельные SLD, на которые будет отвечать скобка на # 3. Это также объясняется на sstatic.net :

  

Если ваш домен www.example.org, вы можете разместить свои статические компоненты   на static.example.org. Однако, если вы уже установили файлы cookie на   пример домена верхнего уровня, а не www.example.org, затем все   запросы на static.example.org будут содержать эти файлы cookie. В этом   case, вы можете купить совершенно новый домен, разместить свои статические компоненты   там, и сохранить этот файл cookie-бесплатно. Yahoo! использует yimg.com, YouTube   использует ytimg.com, Amazon использует images-amazon.com и т. д.

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

Наконец, как указывает Нильс Баджес, часть причины исключения куки-файлов заключается в том, чтобы свести к минимуму количество пакетов, используемых для выполнения запроса. Я думаю, что в руководящих принципах YSlow указано, что в большинстве сетей максимальный размер пакета составляет 1500 байт, поэтому сохранение его в 1500 байт уменьшит накладные расходы TCP. Это также демонстрирует еще одно преимущество использования sstatic.net вместо static.webmasters.stackexchange.com.

ответил Lèse majesté 26 Jam1000000amThu, 26 Jan 2012 11:40:57 +040012 2012, 11:40:57
2

Lèse majestà © рассмотрел основные моменты, но для дальнейшего расширения я бы добавил, что наличие единого домена для всех сайтов Stack Exchange означает, что кто-то просматривает их, будет загружать только статический контент, такой как JavaScripts. Например, для входа в суперпользователь пользователь будет использовать кешированный контент, поскольку он находится на одном и том же месте.

Есть еще более полезная информация о Yahoo и Google об этом.

ответил John C 26 Jam1000000amThu, 26 Jan 2012 11:54:16 +040012 2012, 11:54:16
2

Старые браузеры ограничены двумя параллельными загрузками для имени хоста.

Разделение элементов веб-страницы на несколько доменов называется домен Sharding . Это позволяет загружать больше ресурсов параллельно, уменьшая общее время загрузки страницы.

Оптимальное количество доменов для пересылки - это 2- 4. После 4 доменов время отклика ухудшается .

ответил mvark 26 Jpm1000000pmThu, 26 Jan 2012 13:30:45 +040012 2012, 13:30:45
1

Основная причина - файлы cookie. То, что Нильс предложил в его ответе, является лишь незначительным следствием, а не реальной причиной. Без файлов cookie размер запроса меньше, поэтому он сохраняет некоторую пропускную способность.

Однако реальная разница исходит из кеша браузера. Поскольку контент является статичным (т. Е. Не изменяется), браузеры могут кэшировать его на локальном жестком диске и не загружать файл из Интернета каждый раз. Вместо всего файла веб-сервер просто отправляет ответ 304, что означает, что контент не изменился.

Когда сайт использует файлы cookie, браузеры считают, что содержимое файла может отличаться для разных пользователей, поэтому они не кэшируют эти файлы. Обслуживание файла из домена cookie-less гарантирует, что кеширование браузера работает правильно.

Это основная причина, поскольку она улучшает время загрузки и значительно снижает пропускную способность.

ответил Milan Babuškov 9 AMpTue, 09 Apr 2013 00:42:08 +040042Tuesday 2013, 00:42:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132