¿Por qué insertar archivos estáticos (CSS, imágenes, JavaScript, ECC) en un subdominio?

29

¿Por qué tantos sitios grandes y pequeños insertan archivos estáticos (CSS, imágenes, JavaScript, ECC) en un subdominio como media.example.como s2.static.example.com?

¿Cuáles son las ventajas? ¿Por qué no solo un directorio como example.com/media/?

xRobot
fuente

Respuestas:

24

Veo al menos tres posibles (buenas) razones:

  • Use otra máquina para servir el contenido estático.
    • Incluyendo algunos CDN
  • Use otro servidor web para servir el contenido estático
    • Algo más ligero y rápido.
    • ¡No es necesario un servidor PHP / .NET / JAVA completo para servir contenido estático!
  • Usar otro nombre de dominio significa que no podrá tener las cookies que se usan en el dominio principal

Eso es lo que se hace en StackOverflow si no recuerdo mal

Pascal MARTIN
fuente
15

La razón principal, creo, es por las cookies.

Se enviarán cookies junto con cada solicitud , supongamos que tiene 2kb de datos de cookies y carga 20 imágenes en una página.

Eso es un extra de 40kb de datos, multiplíquelo por la cantidad de visitas a la página que tiene en un mes, y podría sorprenderse de cuánto ancho de banda ha perdido en algo inútil, y el ancho de banda no es gratuito ...

Además, las cookies establecidas en el dominio de nivel superior, se envían a través de todas las solicitudes realizadas a cualquier subdominio, en esos casos, incluso se recomienda comprar un nuevo dominio para alojar los componentes estáticos allí, en un dominio sin cookies .

Por ejemplo, usos de StackOverflow, usos de sstatic.netYahoo yimg.com, usos de YouTube ytimg.com, usos de Amazon images-amazon.com, etc.

Dale un vistazo a esto:

Zistoloen
fuente
8

Para agregar a algunas de las respuestas anteriores: algunos navegadores web solo pueden descargar dos archivos simultáneamente desde cualquier dominio.

Sirviendo contenido estático de un nombre de host diferente (o nombres - por ejemplo a.domain, b.domain, c.domain) permite a estos navegadores antiguos para descargar más archivos en paralelo.

Zistoloen
fuente
2

... use dominios sin cookies para los componentes.

Cuando el navegador solicita una imagen estática y envía cookies junto con la solicitud, el servidor no tiene ningún uso para esas cookies. Por lo tanto, solo crean tráfico de red sin una buena razón. Debe asegurarse de que los componentes estáticos se soliciten con solicitudes sin cookies. Cree un subdominio y aloje todos sus componentes estáticos allí.

Este consejo fue tomado de las Mejores prácticas de Yahoo para acelerar su sitio web .

M4N
fuente
0

Solo porque su solicitud http será más pequeña y el servidor se ejecutará rápidamente y el archivo solicitado se entregará en muy poco tiempo, lo que finalmente conducirá a la carga de página más rápida

Saurabh Sharma
fuente
Esto no agrega nada que otras respuestas no digan. Ni siquiera dice por qué la solicitud es menor (debido a que no hay cookies), por lo que esta respuesta es peor que muchas otras.
Stephen Ostermiller