Archivos locales frente a CDN

13

Si el tiempo de carga de un sitio web es una preocupación, ¿cuál es generalmente mejor usar cuando se hace referencia a un archivo JavaScript o CSS? ¿Sería mejor usar un CDN o eso simplemente agregaría más solicitudes HTTP?

Omar A.
fuente

Respuestas:

11

El CDN debe usarse para todos los archivos estáticos (.css / .js / images).

A veces, sin embargo, los archivos javascript o css pueden tener un aspecto dinámico, como que incluiría una cadena de usuario única o algo por el estilo. En esta situación, el servidor CDN tendría que ponerse en contacto con el servidor de origen en cada solicitud que frustraría el propósito.

Si su CSS y Javascript son estáticos para todos los usuarios, entonces usar un CDN es el camino correcto. Esto no causaría ninguna solicitud HTTP adicional porque solo cargaría los archivos css y js del CDN en lugar de su propio servidor web (a menos que esté usando un código en línea). Por lo tanto, en lugar de que un navegador de usuarios cargue estas solicitudes desde su servidor, se cargarán a través de CDN, no hay solicitudes adicionales que solo esté cambiando a dónde enviar estas solicitudes (nuevamente, siempre y cuando actualmente no esté usando el código en línea).

Otros beneficios de usar un CDN serían que el servidor de CDN probablemente se ubicaría más cerca de sus usuarios finales que su origen, lo que beneficiará los tiempos de carga. Es probable que los servidores CDN también estén configurados para servir contenido estático mucho más rápido que su servidor de origen al abastecer específicamente al servidor web para contenido estático.

Término análogo
fuente
2
Si el CDN no está más cerca y no usa edns-client-subnet, no mejorará el rendimiento en absoluto. Este no es un "otro beneficio", ya que estar más cerca del cliente y posiblemente proporcionar alguna protección de DOS / optimización de contenido (aunque no los mencione) son los únicos beneficios.
symcbean
El principal beneficio de usar un CDN es el hecho de que lo más probable es que el usuario ya haya visitado un sitio web que usara el mismo CDN y el navegador ya lo haya almacenado en caché, por lo que cuando el usuario llegue a su sitio web, el navegador no enviará ninguna solicitud.
Offir Pe'er
3

Se suele preferir utilizar un CDN frente a un alojamiento web tradicional para entregar sus archivos estáticos, como CSS, JS e imágenes. Esto se debe a que una vez que sus archivos se almacenan en caché en los servidores perimetrales de CDN, los visitantes de su sitio recibirán contenido estático desde el punto de presencia (PoP) más cercano en lugar del servidor de origen.

En la mayoría de los casos, esto acorta la distancia entre el cliente y el servidor y, por lo tanto, ayuda a mejorar los tiempos de carga sin agregar solicitudes HTTP adicionales. Esto también ayuda en otras áreas, como aumentar la redundancia, quitar una carga del origen, etc.

CodyA
fuente
2

Use un CDN si necesita un CDN. Si su usuario es global y está extendido en un área grande, o si tiene mucho contenido que no desea almacenar en su propio servidor, es cuando un CDN es útil. A nivel mundial, puede acelerar el acceso a su contenido si el servidor está más cerca del usuario. Si tiene muchos GB o terabytes de datos estáticos y una gran carga para acceder a ese contenido, un CDN puede ayudarlo.

Sin embargo, los sitios locales pequeños o los sitios con poca carga rara vez necesitan tales cosas y un CDN solo puede agregar una complicación más a su configuración, operación y flujo de trabajo, como problemas de almacenamiento en caché.

Con demasiada frecuencia veo que las personas usan un CDN porque leen que deberían usar una y ninguna otra razón.

Robar
fuente
Gracias por señalar que no siempre es necesario y, de hecho, agrega complicaciones innecesarias. En mi caso, estoy usando un cms basado en laravel con un combinador de activos de back-end y archivos minifed de cachés que configuran un cdn, trago y vc S3 en pocos archivos js fue una pérdida de tiempo. Prefiero centrarme en el almacenamiento en caché de DB y el código adecuado para la velocidad
Raja Khoury,
1

El uso de un CDN puede ser una carga y un beneficio para un sitio web, todo depende de cómo se haya implementado.

Puntos positivos

  1. Contenido estático almacenado más cerca del usuario final (tiempos de carga más rápidos)
  2. Subdominios adicionales ( cdn1.example.com, cdn2.example.com, etc.), esto ayuda con el límite inherente a los navegadores que limiten las descargas de archivos a dos archivos simultáneas desde el mismo nombre de dominio completo en cualquier momento uno. En otras palabras, utilizando este ejemplo, accedería a HTML desde www.example.comy mientras descargaba 2 archivos cdn1.example.com, 2 archivos cdn2.example.comy 2 archivos cdn3.example.comcon los tres dominios CDN que acceden al servicio y fuente de CDN.
Chris Rutherfurd
fuente
¿Puede dar una referencia de donde provienen los "2 archivos simultáneos por dominio"? Ciertamente es por navegador. También con el advenimiento de HTTP / 2, el fragmentación de dominios se convirtió en un problema discutible.
Patrick Mevzek
0

Hospedar en un CDN tiene muchas desventajas:

  1. Intimidad. Cada vez que visita un sitio que aloja scripts / hojas de estilo / fuentes en un CDN, el CDN sabe que usted visita el sitio.
  2. Tiempo fuera de línea. En las últimas semanas, Cloudflare, etc., tuvo algunas horas, donde su tiempo de carga fue muy lento o incluso sin conexión durante algunos minutos. En el mejor de los casos, su sitio se ve feo, cuando eso sucede, en el peor de los casos, es completamente inutilizable en un momento en el que sus competidores también tienen problemas, y podría obtener clientes de ellos si su sitio estuviera en línea y el suyo no.
  3. Seguridad. El CDN puede verse comprometido (sucedió antes). En el mejor de los casos, su servidor propaga malware, en el peor de los casos, sus datos ahora son públicos o se han ido.

En comparación con eso, las ventajas son insignificantes:

  1. Menos datos para cargar: hablamos de unos 100 kb de scripts por sitio. 1 imagen en baja calidad representa más que eso. Si no tiene un sitio web que esté en sus límites con 5.000.000 de visitas por minuto, no habrá diferencia. Y si, probablemente debería configurar un mejor entorno de servidor con equilibrador de carga y más servidores web, porque el uso de CDN no resolverá sus problemas.
  2. Tiempos de carga más rápidos, porque los servidores CDN están más cerca del cliente: en ocasiones, donde la latencia de la UE a los EE. UU. Es de aproximadamente 100 ms para casi todas las conexiones, el CSS se carga en 50 ms o 100 ms.

Hay como cero razones para usar un CDN en un entorno de producción.

cari
fuente