Cómo paralelizar descargas a través de nombres de host

click fraud protection

Algunas herramientas de prueba de velocidad de ancho de banda pueden recomendar que los sitios paralelicen las descargas en nombres de host para servir contenido web a navegadores web de forma eficaz. Esta recomendación generalmente ocurre en sitios que usan el protocolo HTTP / 1.1 y ocurre cuando los navegadores web limitan el número de conexiones simultáneas realizadas a un dominio.

Sitios web que tienen muchos HTTP solicitudes de contenido estático (como imágenes, CSS archivos y JavaScript) encuentran una advertencia de Parallelize Downloads Across Hostnames. Para evitar esta limitación, configure la fragmentación del dominio o utilice una red de entrega de contenido (CDN).

El protocolo HTTP / 2 se ha convertido en el estándar principal, dejando obsoleta la necesidad de descargas paralelizadas. La mayoría de los servidores web ahora usan HTTP / 2 de forma predeterminada y hacen que un CDN gratuito de algún tipo esté disponible. Dado que HTTP / 2 es la preferencia de Google ahora, considere actualizar su sitio y alojamiento a HTTPS.

instagram viewer

¿Por qué paralelizar las descargas entre nombres de host?

Los navegadores web solo pueden abrir un número limitado de conexiones simultáneas por nombre de host para sitios web que utilizan el protocolo HTTP / 1.1. Este límite puede llegar a seis conexiones.

Cuando es necesario descargar más recursos, los recursos adicionales deben esperar en una cola de trabajos pendientes hasta que haya una conexión disponible. Los recursos en la cola están bloqueados y la reducción de este tiempo de bloqueo da como resultado tiempos de carga de página más rápidos.

Por ejemplo, si una página web tiene 12 imágenes y la cantidad de conexiones permitidas por el navegador web es seis, entonces seis imágenes deben esperar en la lista de trabajos pendientes. Las imágenes del backlog permanecen ahí hasta que se terminan de descargar las primeras seis imágenes.

Si una imagen, como un icono o un logotipo, se utiliza varias veces, utilice un Sprite de CSS para estas imágenes repetidas a fin de reducir las solicitudes de recursos.

¿Qué es la advertencia de paralelizar descargas a través de nombres de host?

La advertencia de paralelizar descargas a través de nombres de host es una regla que se usa en algunos verificadores de rendimiento de sitios web. La advertencia indica que ese navegador web no pudo abrir la cantidad de conexiones necesarias para descargar todos los recursos del sitio web simultáneamente.

Para los sitios web que utilizan el protocolo HTTP / 1.1, la forma de evitar esta necesidad de conexiones más abiertas es minimizar las solicitudes HTTP, configure una CDN o implemente la fragmentación de dominio.

Para los sitios web que utilizan el protocolo HTTP / 2, se pueden cargar varios recursos en paralelo a través de una sola conexión; esto se llama multiplexación. La multiplexación hace que la división de dominios sea innecesaria con HTTP / 2. Aproximadamente el 77 por ciento de los navegadores web admiten HTTP / 2 y no deberían tener ningún problema con la paralelización de las descargas.

Si su proveedor de alojamiento web admite HTTP / 2, es seguro ignorar la advertencia de paralelizar descargas en los nombres de host. Con HTTP / 2, se pueden descargar varios recursos en paralelo en una conexión.

¿Qué es la división de dominios?

La fragmentación de dominio es un método de optimización del rendimiento para conexiones HTTP / 1.1 y se utiliza en sitios web con un gran volumen de solicitudes HTTP. En la fragmentación de dominios, los activos de contenido web se distribuyen entre varios subdominios. Cuando los activos se distribuyen de esta manera, aumenta la cantidad de solicitudes simultáneas que se pueden procesar.

En la fragmentación de dominios, el contenido se carga en subdominios sin cookies. Los usuarios no interactúan con contenido estático como imágenes, JavaScript y archivos CSS, por lo que no es necesario adjuntar este contenido a las cookies.

Cuando los subdominios no sirven cookies, el tamaño de las solicitudes realizadas para una página y la latencia de la solicitud disminuye y las páginas web se cargan más rápido. Los ejemplos de contenido que se beneficia de la fragmentación de dominios incluyen páginas con contenido que rara vez se almacena en caché, como una página de miniaturas o un archivo de imágenes.

En Drupal, los módulos agregan archivos CSS y JavaScript que pueden ralentizar el rendimiento. Ir Configuración del sitio > Actuación y optimizar CSS y JavaScript.

Para aprovechar los beneficios de la división de dominios en conexiones HTTP / 1.1, siga estos consejos:

  • Sirva recursos de los mismos subdominios para almacenar archivos en caché de manera eficiente.
  • Distribuya los recursos de manera uniforme entre los subdominios.
  • Compra certificados SSL para los subdominios.

En las conexiones HTTP / 2, la fragmentación del dominio reduce el rendimiento porque hay búsquedas de DNS adicionales. Estas búsquedas de DNS aumentan el tiempo de resolución y no almacenan archivos en caché. La fragmentación del dominio también agrega tiempo a cada nueva conexión. Estas son otras desventajas de la fragmentación de dominio en conexiones HTTP / 2:

  • La distribución de recursos que se cargan desde CSS es difícil de distribuir entre hosts fragmentados.
  • Mayor carga en el servidor debido al mayor número de conexiones simultáneas.
  • Mover contenido estático a un subdominio puede romper el código.
  • Es posible que el navegador web no permita el acceso a un nombre de host diferente.
  • Es posible que los enrutadores no puedan clasificar una gran cantidad de solicitudes fragmentadas o que consideren las solicitudes como un ataque de denegación de servicio.

Cómo paralelizar descargas a través de nombres de host

Cuando reciba la advertencia de paralelizar descargas a través de nombres de host, deberá aumentar la paralelización de descargas distribuyendo las solicitudes entre varios nombres de host. Para distribuir solicitudes, cree subdominios para los diferentes tipos de activos web utilizados en el sitio, luego especifique el dominio raíz como el único dominio que usa cookies. Los subdominios no utilizan cookies.

Estos subdominios agregan nuevas fuentes de conexiones que el navegador puede hacer y hacen posible que se descarguen más recursos al mismo tiempo. Cuando los recursos se dividen entre subdominios, el navegador web dedica menos tiempo a bloquear el contenido web y las páginas web se cargan más rápido.

Para los sitios web que utilizan HTTP / 2 y HTTP / 1.1, la forma más sencilla de paralelizar las descargas entre los nombres de host es utilizar varios subdominios a través de una CDN. Para sitios web que usan HTTP / 1.1 y WordPress, configure subdominios y edite el archivo functions.php de WordPress.

Configurar subdominios

Para distribuir recursos entre subdominios, cree al menos uno y hasta cuatro subdominios; se recomienda uno o dos subdominios. La forma más común de crear subdominios es utilizar cPanel, que ofrecen la mayoría de los servicios de alojamiento web.

Ejemplos de subdominios son:

  • media1.mydomain.com
  • media2.midominio.com
  • media3.midominio.com
  • media4.mydomain.com

Además, los subdominios y los nombres de host deben tener la misma estructura y ruta. Por ejemplo, si la ruta de la imagen en el host es www.mydomain.com/wp-content/uploads/, la ruta de la imagen en los subdominios debe coincidir, por ejemplo, media1.mydomain.com/wp-content/uploads/.

Configurar una CDN para paralelizar descargas

Una vez configurada la CDN y creados los subdominios, apunte cada subdominio a la carpeta que contiene el contenido estático. De esta forma, el contenido se carga en el subdominio en lugar del dominio principal.

Para señalar un subdominio, use un editor de zona DNS en cPanel para crear un nuevo registro CNAME para cada subdominio. En el campo Nombre del registro, ingrese el subdominio, por ejemplo, media.midominio.com. En el campo CNAME, ingrese el dominio principal, por ejemplo, www.mydomain.com.

Una vez que su proveedor de alojamiento web cree y propague los registros CNAME, agregue los registros CNAME a la configuración de la zona CDN.

Edite el archivo de configuración del sitio web en WordPress para paralelizar las descargas

Después de configurar los subdominios, agregue este código al archivo functions.php del tema de WordPress utilizado para su sitio web. Reemplace media1.mydomain.com y media2.mydomain.com con sus subdominios reales.

function paralelize_hostnames ($ url, $ id) {
$ nombre de host = par_get_hostname ($ url); // llamar a la función suplementaria
$ url = str_replace (parse_url (get_bloginfo ('url'), PHP_URL_HOST), $ nombre de host, $ url);
return $ url;
}
function par_get_hostname ($ nombre) {
$ subdominios = matriz ('media1.mydomain.com', 'media2.mydomain.com'); // agregue sus subdominios aquí, tantos como desee.
$ host = abs (crc32 (nombre base ($ nombre))% count ($ subdominios));
$ nombre de host = $ subdominios [$ host];
return $ nombre de host;
}
add_filter ('wp_get_attachment_url', 'paralelizar nombres de host', 10, 2);

Si usa Jetpack con WordPress, habilite el servicio Site Accelerator para poner sus imágenes en un CDN administrado por WordPress.

instagram story viewer