Зачем вставлять статические файлы (CSS, изображения, JavaScript, ECC) в поддомен?

29

Почему так много больших и маленьких сайтов вставляют статические файлы (CSS, изображения, JavaScript, ECC) в подобласть подобного media.example.comили s2.static.example.com?

Каковы преимущества? Почему не просто каталог, как example.com/media/?

xRobot
источник

Ответы:

24

Я вижу как минимум три возможных (веских) причины:

  • Используйте другую машину для обслуживания статического контента
    • Включая некоторые CDN
  • Используйте другой веб-сервер для обслуживания статического контента.
    • Что-то более легкое и быстрое
    • Нет необходимости в полном сервере PHP / .NET / JAVA для обслуживания статического контента!
  • Использование другого доменного имени означает, что вы не сможете использовать файлы cookie, используемые в основном домене.

Вот что сделано на StackOverflow, если я правильно помню

Паскаль МАРТИН
источник
15

Основная причина, я думаю, для печенья.

Файлы cookie будут отправляться вместе с каждым запросом , например, если у вас есть 2 КБ данных cookie и загружено 20 изображений на страницу.

Это дополнительные 40 КБ данных, умножьте их на количество просмотров страниц за месяц, и вы можете быть удивлены тем, сколько пропускной способности вы потеряли в чем-то бесполезном, а пропускная способность не бесплатна ...

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

Например, StackOverflow использует sstatic.net, Yahoo использует yimg.com, YouTube использует ytimg.com, Amazon использует images-amazon.comи т. Д.

Посмотрите на это:

Zistoloen
источник
8

Чтобы добавить некоторые ответы выше: некоторые веб-браузеры могут загружать только два файла одновременно с любого домена.

Обслуживание статического контента из другого имени хоста (или имена - например a.domain, b.domain, c.domain) позволяет эти старые браузеры для загрузки дополнительных файлов параллельно.

Zistoloen
источник
2

... использовать домены без файлов cookie для компонентов.

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

Этот совет был взят из « Лучшей практики Yahoo по ускорению работы вашего сайта» .

M4N
источник
0

Просто потому, что ваш http-запрос будет меньше и сервер будет работать быстро, а запрошенный файл будет передан в очень короткое время, что в конечном итоге приведет к самой быстрой загрузке страницы

Саурабх Шарма
источник
Это не добавляет ничего, что другие ответы не говорят. Вы даже не говорите, почему запрос меньше (из-за отсутствия файлов cookie), поэтому этот ответ хуже, чем многие другие.
Стивен Остермиллер