performance browser

performance - Obtenga el número de solicitudes simultáneas por navegador



browser (2)

Google Chrome tiene: 6, Safari tiene: 5, Mozilla Firefox tiene: 8 solicitudes de obtención concurrente máxima para el mismo dominio.

Estoy tratando de averiguar si valdría la pena extender las solicitudes de imágenes en múltiples subdominios. [Este artículo] (enlace roto) por ejemplo dice:

La mayoría de los navegadores solo pueden hacer dos solicitudes a la vez, por lo que el navegador solicitará dos archivos, los descargará y luego pasará a los siguientes dos. Cuantas más solicitudes HTTP o componentes separados requiera una página para mostrarse correctamente, más tiempo tendrá que esperar el usuario.

Cuando dicen más , ¿qué navegadores en particular? ¿Está ese número relacionado con el número de XMLHttpRequests concurrentes, según esta pregunta ?


Hay muchas cosas para considerar aquí. En la mayoría de las situaciones, solo elegiría un dominio / subdominio sin cookies para alojar sus imágenes, como static.mywebsite.com. E idealmente, los archivos estáticos deberían estar alojados en un CDN, pero esa es otra historia.

En primer lugar, IE7 solo permite dos conexiones simultáneas por host. Pero la mayoría de los navegadores actuales permiten más que eso. IE8 permite 6 conexiones concurrentes, Chrome permite 6 y Firefox permite 8.

Entonces, si su página web solo tiene 6 imágenes, por ejemplo, sería inútil difundir sus imágenes en múltiples subdominios.

Entonces digamos que tienes 24 imágenes en una página. Bueno, pocas cosas en la vida son gratis y existe la muerte por paralelización. Si aloja sus imágenes en 4 subdominios diferentes, eso significa que cada imagen podría teóricamente descargarse en paralelo. Sin embargo, también significa que hay 3 búsquedas DNS adicionales involucradas. Y una búsqueda de DNS podría ser de 100 ms, 150 ms o, a veces, más. Este retraso adicional podría compensar fácilmente cualquier beneficio de descargas paralelas. Puede ver ejemplos del mundo real de esto probando sitios con http://www.webpagetest.org/

Por supuesto, la mejor solución es usar sprites CSS cuando sea posible para reducir el número de solicitudes. Hablo de eso y de la carga inherente de cada solicitud en este artículo y este .

ACTUALIZAR

Hay un interesante artículo de Steve Souders sobre el tema de los dominios fragmentados ...

La mayoría de los diez mejores sitios web de los EE. UU. Hacen difusión de dominios. YouTube utiliza i1.ytimg.com, i2.ytimg.com, i3.ytimg.com e i4.ytimg.com. Live Search utiliza ts1.images.live.com, ts2.images.live.com, ts3.images.live.com y ts4.images.live.com. Ambos sitios están fragmentados en cuatro dominios. ¿Cuál es el número óptimo? Yahoo! publicó un estudio que recomienda fragmentación en al menos dos dominios, pero no más de cuatro. Por encima de cuatro, el rendimiento en realidad se degrada.

http://www.stevesouders.com/blog/2009/05/12/sharding-dominant-domains/

Sin embargo, tenga en cuenta que esto fue escrito en 2009. Y en 2011 publicó un comentario ...

Dado que los navegadores más nuevos abren más conexiones por dominio, probablemente sea mejor revisar el número hacia abajo. Creo que 2 es un buen compromiso, pero eso es solo una corazonada. Sería genial si alguna propiedad de producción ejecutara una prueba para determinar el número óptimo.

También debe tener en cuenta que la gran razón por la que incluso es necesario que los grandes sitios como Yahoo y Amazon hagan difusión de dominios es porque sus sitios son muy dinámicos. Las imágenes se adjuntan a productos o historias que se muestran dinámicamente. Por lo tanto, no es factible que usen sprites CSS tan agresivamente como sería óptimo.

Un sitio como , sin embargo, es liviano en este tipo de imágenes y han reducido tanto el número de solicitudes que no es necesario que se fragmenten. Un gran paso para que esto suceda es su uso de esta imagen de sprites.png ...

http://cdn.sstatic.net/Sites//img/sprites.png?v=5

ACTUALIZACIÓN # 2

Steve Souders publicó otra actualización sobre difusión de dominios . Él repite mucho de lo que ya he mencionado. Pero lo que se destacó fue SPDY y cómo eso debería afectar tu decisión.

Quizás el argumento más sólido contra la fragmentación de dominios es que no es necesario en el mundo de SPDY (ni HTTP 2.0). De hecho, la fragmentación de dominios probablemente perjudica el rendimiento bajo SPDY. SPDY admite solicitudes simultáneas (envía todos los encabezados de solicitud anticipadamente) y solicita la priorización. Sharding a través de múltiples dominios disminuye estos beneficios. SPDY es compatible con Chrome, Firefox, Opera e IE 11. Si su tráfico está dominado por esos navegadores, es posible que desee omitir la fragmentación del dominio.

ACTUALIZACIÓN # 3 (febrero de 2018)

Como Dean mencionó en los comentarios a continuación, los sprites CSS realmente no te están comprando mucho ahora con HTTP / 2 soportado en navegadores modernos. Pero debe obtener un certificado SSL, configurar su sitio para que funcione con HTTPS y asegurarse de que su servidor web esté configurado para HTTP / 2. O eso, o usa un CDN que ya tiene todo eso configurado para ti. Una vez que haya hecho todo eso, probablemente pueda saltarse tanto los sprites de CSS como el sharding de dominio.