Локальні файли проти CDN


14

Якщо час завантаження веб-сайту викликає занепокоєння, що, як правило, краще використовувати при посиланні на файл JavaScript або CSS? Буде краще використовувати CDN або просто додасть більше запитів HTTP?

Відповіді:


12

CDN слід використовувати для всіх статичних файлів (.css / .js / images).

Однак іноді файли javascript або css можуть мати для них динамічний аспект, наприклад, що він буде містити унікальну рядок користувача або щось подібне. У цій ситуації серверу CDN доведеться зв’язатися з початковим сервером на кожен запит, що перешкоджає меті.

Якщо ваш CSS та Javascript статичний для всіх користувачів, то використання CDN - це правильний шлях. Це не спричинить зайвих HTTP-запитів, оскільки він завантажує лише файли css та js з CDN замість власного веб-сервера (якщо ви не використовуєте вбудований код). Таким чином, замість того, щоб браузер користувачів завантажував ці запити з вашого сервера, вони будуть завантажені через CDN, немає додаткових запитів, ви просто змінюєте, куди надсилати ці запити (знову ж таки, доки ви зараз не використовуєте вбудований код).

Інші переваги від використання CDN полягають у тому, що сервер CDN, швидше за все, буде розташований ближче до ваших кінцевих користувачів, ніж ваше походження, яке виграє в часі завантаження. Сервери CDN також, ймовірно, налаштовані на подання статичного вмісту набагато швидше, ніж ваш вихідний сервер, спеціально обслуговуючи веб-сервер для статичного вмісту.


2
Якщо CDN не наближається і не використовує edns-client-subnet, це зовсім не покращить продуктивність. Це не "інша вигода", тому що наближатися до клієнта, можливо, забезпечити деякий захист DOS / оптимізацію вмісту (хоча ви цього не згадуєте) - єдині переваги.
symcbean

Основною перевагою використання CDN є той факт, що, швидше за все, користувач вже відвідував веб-сайт, який використовував той самий CDN, і браузер вже кеширував його, тому, коли користувач заходить на ваш веб-сайт, браузер не надсилає жодного запиту.
Offir Pe'er

3

Як правило, використання CDN порівняно з традиційним веб-хостингом для доставки статичних файлів, таких як CSS, JS та зображення, зазвичай є кращим. Це тому, що після того, як ваші файли будуть кешовані на крайових серверах CDN, відвідувачам вашого сайту буде доставлено статичний вміст з найближчої точки присутності (PoP) замість вихідного сервера.

У більшості випадків це скорочує відстань між клієнтом і сервером і, таким чином, допомагає покращити час завантаження без додавання додаткових запитів HTTP. Це також допомагає в інших сферах, таких як збільшення надмірності, зняття навантаження з походження тощо.


2

Використовуйте CDN, якщо вам потрібен CDN. Якщо ваш користувач глобальний і розповсюджений на великій території, або у вас є багато такого вмісту, який ви не хочете зберігати на своєму власному сервері, тобто коли CDN корисний. В усьому світі він може пришвидшити доступ до вашого вмісту, якщо сервер ближче до користувача. Якщо у вас є багато ГБ або Терабайт статичних даних і велике навантаження для доступу до цього вмісту, CDN може допомогти у цьому.

Однак невеликим, локальним або мало завантаженим сайтам рідко потрібні такі речі, і CDN може лише додати ще одне ускладнення до налаштування, роботи та робочого процесу, таких як проблеми з кешуванням.

Занадто часто я бачу, як люди використовують CDN, тому що вони читають, що вони повинні використовувати одну та іншу причину.


Дякую за те, що вказали, що це не завжди потрібно і справді додає зайвих ускладнень. У моєму випадку я використовую cms на основі laravel із комбайнером активних програм, а також кешує файли міні-файлів, налаштовуючи S3 cdn, gulp та vc на декілька js-файлів, - це марна трата часу. Я вважаю за краще зосередитись на кешуванні БД та правильному коді для швидкості
Раджа Курі,

1

Використання CDN може бути як тягарем, так і користю для веб-сайту, все залежно від способу його впровадження.

Позитивні бали

  1. Статичний вміст зберігається ближче до кінцевого користувача (швидше завантаження)
  2. Для додаткових піддоменів ( cdn1.example.com, cdn2.example.comі т. Д.) Це допомагає з притаманним обмеженням у браузерах, де вони обмежують завантаження файлів двома одночасними файлами з того самого повноцінного доменного імені в будь-який час. Іншими словами, використовуючи цей приклад, ви отримаєте доступ до HTML www.example.comі весь цей час завантажуєте 2 файли з cdn1.example.com, 2 файли з cdn2.example.comта 2 файли cdn3.example.comз усіх трьох доменів CDN, що мають доступ до однієї служби CDN та джерела.

Чи можете ви дати посилання, звідки надходять "2 одночасних файли на домен"? Це, безумовно, на один браузер. Крім того, з появою HTTP / 2, загострення домену стало суперечливою проблемою.
Патрік Мевзек

0

Хостинг на CDN має багато недоліків:

  1. Конфіденційність. Кожен раз, коли ви переходите на сайт, де розміщуються сценарії / таблиці стилів / шрифти на CDN, CDN знає про вас, відвідуючи цей сайт.
  2. Час офлайн. В останні тижні cloudflare і т. Д. Мали кілька годин, коли час їх завантаження був дуже повільним або навіть офлайн протягом декількох хвилин. У кращому випадку ваш сайт виглядає некрасивим, коли це трапляється, в гіршому - абсолютно непридатним за час, коли у ваших конкурентів теж є проблеми, і ви можете отримати клієнтів з них, якби ваш сайт був в Інтернеті, а їх немає.
  3. Безпека. CDN може бути скомпрометований (це було раніше). У кращому випадку ваш сервер поширює зловмисне програмне забезпечення, а в гіршому - ваші дані тепер є загальнодоступними або знищеними.

У порівнянні з цим переваги незначні:

  1. Менше даних для завантаження: ми говоримо про близько 100 кбіт сценаріїв на сайті. 1 зображення низької якості справді більше. Якщо у вас немає веб-сайту, який знаходиться на його межі з приблизно 5 000 000 відвідувань в хвилину, це не змінить. І якщо, можливо, вам слід створити краще серверне середовище з балансиром завантаження та більшою кількістю веб-серверів, оскільки використання CDN не вирішить ваших проблем.
  2. Швидше завантажуються, оскільки CDN-сервери наближаються до клієнта: у часи, коли затримка від ЄС до США становить близько 100 мс для майже всіх з'єднань, CSS завантажується в 50 мс або 100 мс.

Це як нульова причина використання CDN у виробничому середовищі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.