Назад | Перейти на главную страницу

Почему в CDN используются разные доменные имена, а не субдомены?

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

Например, посещение www.amazon.com будет включать получение контента с media-amazon.com.

www.facebook.com получает контент с fbcdn.com и т. д.

У меня вопрос: почему эти службы не используют субдомены вместо совершенно разных доменных имен для своих CDN?

Например. почему бы не использовать cdn.facebook.com вместо fbcdn.com? Я редко вижу, как это делается. Почти всегда это другое доменное имя, часто это базовый домен с добавлением к нему чего-то или аббревиатуры.

Единственное, о чем я могу думать, это то, что наличие другого доменного имени позволяет использовать разных поставщиков DNS для распределения нагрузки на DNS, но это не всегда так.

Есть ли конкретная техническая причина такой практики? Если так, то, что это?

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

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

Если ваш веб-сайт использует файлы cookie, и ваши файлы cookie могут потребоваться для нескольких поддоменов, вы в конечном итоге отправите файлы cookie вместе с каждым запросом CDN. Это вызывает две проблемы:

  1. Если у вас много файлов cookie и / или очень больших файлов cookie, вы будете значительно увеличивать каждый запрос к CDN, используя ценную полосу пропускания без причины (поскольку CDN обслуживает один и тот же контент для всех). В масштабе Google, Facebook, Amazon и т. Д. Учитывается каждый байт запроса, поскольку миллионы (или даже миллиарды) запросов складываются быстро.
  2. Если ваши файлы cookie содержат данные пользователя, возможно, вы не захотите, чтобы сеть CDN могла видеть эти данные. Это особенно верно, если ваш CDN фактически полностью или частично размещен сторонними поставщиками услуг. Отказ от отправки файлов cookie в CDN устраняет один из возможных способов атаки на данные ваших пользователей.

Еще одна распространенная причина - контент, создаваемый пользователями. Хорошими примерами этого являются вложения Gmail и код, размещенный в репозиториях GitHub. Если пользовательский контент размещен на субдомене, он может сохранить информацию о пользователе из файлов cookie, LocalStorage и т. Д. И отправить ее третьему лицу. Хостинг в другом домене смягчает эту форму атаки.

Ответом на это могут быть только предположения. Вероятная возможность -

Различные команды / системы сборки, обслуживающие CDN и приложения. Разделение доменов вместо использования поддоменов упрощает управление и автоматизацию и снижает вероятность поломки. Стоимость, если доменное имя в общей картине тривиально.