¿Por qué las páginas web tardan en comenzar a cargarse?

Hay varias razones por las que un sitio web o página web tardará en cargarse.

Estado latente

Esto es cuando una computadora en la ubicación A tiene que hacer una solicitud al servidor web que se encuentra en la ubicación B. Cuanto mayor sea la distancia, más tardarán en entregarse los archivos y activos. De acuerdo, por lo general solo lleva unos segundos, pero eso parece una eternidad.

Conexión a internet / ancho de banda

Su proveedor de servicios de Internet también puede tener capacidades de velocidad máxima que ralentizan el proceso de carga y descarga de Internet. Esto puede ser una restricción basada en el nivel de servicio que les compró o puede ser una limitación tecnológica si no se ha instalado el cableado correcto. La fibra es más rápida que el cable normal.

2g es más lento que 3g. 3g es más lento que 4g y 4g suele ser más lento que el servicio básico ofrecido por su proveedor de servicios de Internet ISP. Estos números varían significativamente según su ubicación. [Edité esta parte para mayor claridad.]

El servidor web

Si el servidor web está utilizando tecnología antigua o está comenzando a llegar al final de su vida útil, habrá problemas de rendimiento. Si el servidor es de gama alta y actual, entonces tenderá a funcionar mejor.

SSD es más rápido que los discos duros de 5400 o 7200 rpm. Los procesadores Xeon son más estables que los chips de CPU normales. El ram DDR4 es más rápido que el ram DDR3.

Si un sitio web está en un plan de alojamiento compartido, lo más probable es que estén repletos de cientos o incluso miles de otros sitios web, todos compitiendo por los mismos recursos limitados. Esto provoca una tensión masiva en el sistema y afecta a todos los otros sitios en el servidor.

Piénselo de esta manera, si tiene una familia numerosa, por lo general quiere bañarse primero para tener agua caliente. Incluso si tiene 2 baños, si ambas personas usan el agua caliente al mismo tiempo, el calentador de agua no puede mantener el ritmo y se queda sin agua caliente. Eso es como alojamiento compartido.

Los sitios web algo populares deberían usar un VPS donde tengan sus propios recursos dedicados. Esto evita que otros sitios en el servidor afecten el sitio. Es como tener 2 calentadores de agua separados. Uno para cada baño.

Ahora, si el sitio es realmente popular, es posible que necesiten estar en un servidor dedicado con más potencia de procesamiento general.

Rendimiento de la red

No todas las redes tienen el mismo rendimiento. Algunos tendrán 40 gbps, mientras que otros serán significativamente más bajos. Esto afectará la cantidad de información que pasa. Piense en una tubería delgada vs una tubería abierta grande.

Popularidad

Las computadoras son muy rápidas y son buenas para la multitarea. Pero, incluso las computadoras se encuentran con cuellos de botella. Si una persona visita el sitio web, tienen el lugar para ellos solos. Tendrán una velocidad asombrosa. Mientras más personas comiencen a visitar el sitio, los recursos comenzarán a tener que realizar múltiples tareas y el rendimiento se verá afectado. En algún momento, el servidor puede fallar al enviar recursos. Así es como algunos sitios son atacados, al verse inundados de solicitudes. Se llama ataque DDOS, denegación de servicio distribuida.

Una forma de lidiar con esto es usar una red CDN o Content Delivery Network que distribuye la carga a los servidores más cercanos a la persona que realiza la solicitud.

Otra forma de lidiar con esto es usar múltiples servidores para varias partes del trabajo. Como un servidor de base de datos, servidor de archivos / aplicaciones, servidor de activos / imágenes, etc. Esto funciona porque los servidores podrán centrarse en una tarea en particular a la vez. Lecturas / Escrituras serán optimizadas.

Solicitudes HTTP

Algunos sitios web realizan una cantidad innecesaria de solicitudes de protocolo de transferencia de hipertexto / HTTP que son para archivos JavaScript, archivos CSS, imágenes, etc. Cuantas más solicitudes se hagan, más tardará en entregar el sitio completo.

El código debe combinarse y minimizarse para acelerar el tiempo de carga. También debe existir un sistema de caché para mejorar el rendimiento.

Sitio web mal codificado

Esta es una continuación del último punto con solicitudes HTTP. Si un sitio web no está bien codificado, habrá ineficiencias que ralentizarán el sitio web. Al igual que muchas llamadas a la base de datos, no almacenar en caché los activos, demasiados bucles que se ejecutan sin un propósito, etc. Es por eso que desea asegurarse de que está desarrollando su sitio utilizando las mejores prácticas de codificación.

Malware / Virus, etc.

Todos estos pueden ralentizar un servidor.

La comida para llevar

Estos son solo algunos de los factores que afectarán el rendimiento de un sitio web. Espero que la respuesta te haya resultado útil.

Varios factores, incluida cualquier combinación de los siguientes:

  • tu velocidad de internet
  • cantidad y tamaño de los recursos que deben descargarse para que la página se ejecute. es decir, CSS, JavaScript, imágenes
  • Llamadas a dependencias externas como API externas a través del servicio web o REST
  • Llamadas a bases de datos (a veces llamadas múltiples desde una sola página). Esto puede agravarse por consultas DB mal escritas.
  • Falta de almacenamiento en caché
  • falta de uso de CDN (Content Delivery Networks almacena recursos útiles y comúnmente solicitados como jquery, bootstrap, etc. en varias ubicaciones geográficas y le servirá una copia más cercana a su ubicación. Lo más probable es que muchos sitios ya usan CDN que ya puede tener una memoria caché local de algunos de esos recursos, por lo que su navegador no necesitará recuperar el mismo activo nuevamente. Los sitios que no usan CDN y en su lugar cargan copias locales potencialmente tendrán un rendimiento disminuido)
  • Falta de optimización (esto en parte se relaciona con algunos de los puntos mencionados anteriormente, es decir, falta de almacenamiento en caché, falta de uso de CDN, falta de optimización de consultas de base de datos

La carga de páginas en la red mundial no es instantánea porque lleva tiempo enviar y recibir señales desde su navegador web que solicita una página web, al servidor web, que responde a dichas solicitudes, y viceversa; y luego para que el navegador web interprete la respuesta recibida y presente una presentación visual de acuerdo con las instrucciones recibidas.

Si bien se pueden enviar pequeñas cantidades de información casi al instante, las páginas web pueden tener muchos kilobytes (a veces muchos megabytes) de tamaño. Cuanto mayor sea la cantidad de datos que componen una página web, más tiempo debe esperar el usuario para que esos datos se transfieran y procesen, también llamado “tiempo de carga de la página”.

La mayor parte del volumen de datos y el tiempo de transferencia son imágenes, fuentes personalizadas y otros recursos multimedia. Un objetivo de cualquier buen desarrollador web es reducir ese tamaño para reducir el tiempo de espera del espectador.

Si se refiere específicamente a un retraso de tiempo después de escribir una dirección web y presionar enter, pero antes de que la página comience a cargarse, es posible que observe la fracción de segundo que le toma al navegador web convertir un nombre de dominio en una IP dirección.

Este proceso se llama “servicio DNS”. Los servidores DNS son como los servidores web. Pero cuando los servidores web responden a las solicitudes HTTP enviando una página web, los servidores DNS responden a las solicitudes de conversión, convirtiendo un nombre de dominio en una dirección IP. Aceptan nombres de dominio de navegadores web (y otras aplicaciones cliente) y los convierten de forma transparente a direcciones IP.

Solo después de descubrir la dirección IP del servidor web, el navegador puede enviar la solicitud HTTP, lo que equivale a solicitar una página web.

El servicio DNS es necesario porque, en última instancia, el navegador web no puede enviar una señal al servidor web solicitando una página sin conocer primero la dirección IP, ya que la dirección IP es la dirección verdadera (y el nombre de dominio es solo un puntero simbólico para conveniencia humana).

Cuando está viendo una página web, los archivos que entregan esa información se encuentran en algún lugar del mundo en un servidor web. La información debe abrirse camino a través de Internet desde ese servidor a su computadora / dispositivo. Puede viajar algunas millas o puede viajar más de la mitad del mundo.

Si la página es simple, solo un texto escrito en HTML, esto sucederá muy rápidamente. Los datos de texto son pequeños y pueden viajar rápidamente.

Si la página tiene muchas fotografías grandes o usa varios scripts que deben recuperar datos de un servidor o base de datos, tomará más tiempo. Las fotografías son archivos más grandes. Contienen información sobre el tamaño y el color de cada píxel en la imagen. Los archivos de audio y video son aún más grandes. Las páginas con mucho contenido de este tipo tardarán más en cargarse.

El tiempo que tarda la información en viajar a su computadora o dispositivo también depende de los caminos que le lleve llegar a usted.

Imagine que todo el contenido de la página ha sido empaquetado en un pequeño Volkswagen. Si se trata de una página grande, es posible que no quepa en un automóvil, pero podría empacarse en varios automóviles. Ahora debe conducir de California a Nueva York para entregar su contenido. Si puede tomar carreteras anchas y no hay tráfico, será un viaje tranquilo. Si encuentra desvíos o atascos, se ralentizará. Tendrá que esperar a que el tráfico se despeje.

Una vez que llega a Nueva York, también necesita subir por el largo camino de entrada a su casa. Imagina que el camino de entrada fue construido por tu proveedor de servicios de Internet. Si ha comprado acceso a Internet de alta velocidad, entonces tiene un camino amplio y liso. Los autos pueden llegar fácilmente a la entrada de su casa.

Si tiene un plan más barato o utiliza un proveedor menos confiable, su camino de entrada puede ser estrecho y lleno de baches y puede compartir parte de él con sus vecinos. Quizás sea demasiado pequeño para el Volkswagen. Entonces necesitaría vaciar el automóvil y llevar el contenido más lejos en una pequeña carretilla. Esto llevará más tiempo.

En los viejos tiempos (1990), la mayoría de las páginas web tardaban en cargarse. Solo una fotografía podría retrasar las cosas. Teníamos acceso telefónico a Internet mediante módems que solo podían transferir una cantidad limitada de datos a la vez. En ese momento nuestras entradas eran más como senderos estrechos. Ver una película en Netflix o un video en YouTube hubiera sido casi imposible.

En los viejos tiempos, cuando los IBM gobernaban el mundo con sistemas operativos como TPF que controlaban las redes SNA con cientos de miles de terminales en todo el planeta, existía una regla general. Nunca permita que el usuario espere más de 500 milisegundos. ¿Y sabes qué? A Google le ha tomado cuántas décadas finalmente darse cuenta de que si una página web tarda más de un segundo en cargarse, hay algo mal con la persona que diseñó la página.

Si planifica correctamente y evita todas las bromas ingeniosas que a los niños pequeños les encanta cargar un sitio web con la mayoría de sus páginas, se cargará en menos de 1/2 segundo. Sin un CDN. Solo tienes que entender lo que sucede debajo del capó y no ser un idiota.

La página web no es más que un documento que está escrito en HTMl y muchos más lenguajes de escrutinio, así como lenguaje de programación.

[1] Cliente simple – conexión del servidor

En realidad, el sitio web se ejecuta en una computadora. Supongamos que la computadora se encuentra en los Estados Unidos. Entonces, si desea acceder a la página web, primero su solicitud va a su ISP y luego establece una conexión entre su computadora y la computadora de la página web ( servidor ), por lo que si la distancia entre el cliente y el servidor está muy lejos, tomará más tiempo conectarse a la página web así se aumenta el tiempo de carga. Si desea verificar la ruta de conexión, en el símbolo del sistema de la ventana simplemente escriba tracert .

Otras lecturas

[2] Cálculo del tiempo promedio para conectar el servidor web.

Notas al pie

[1] Imagen en umich.edu

[2] Cómo leer un traceroute

porque descarga la página que estás navegando.

Si el tamaño de la página es grande y la velocidad de sus datos es baja. Luego lleva tiempo descargar la página.