Por Qué Tu Sitio Web Debe Tener Menos de 14 kb de Tamaño

8 minuto(s)

Tener un sitio web más pequeño hace que se cargue más rápido, eso no es sorprendente. Lo sorprendente es que una página de 14kB pueda cargarse mucho más rápido que una página de 15kB , tal vez 612ms más rápido, mientras que la diferencia entre una página de 15kB y una página de 16kB es trivial. Esto se debe al algoritmo de inicio lento de TCP. En este Post te enseñaré qué es eso, cómo funciona, por qué debería importarte y Por Qué Tu Sitio Web Debe Tener Menos de 14 kb de Tamaño. Pero primero repasemos rápidamente algunos de los conceptos básicos.

Antes de continuar con este Post, te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “No Encuentro Empleo Por Mi Edad ¿ Que Puedo Hacer ?“5 Habilidades que Debe Tener un Desarrollador Backend” (Anchor Podcast): 

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: Por Qué Tu Sitio Web Debe Tener Menos de 14 kb de Tamaño.

¿ Qué es TCP ?

El Protocolo de control de transmisión (TCP) es una forma de usar el Protocolo de Internet (IP) para enviar paquetes de datos de manera confiable; a veces, esto se conoce como TCP/IP .

Cuando un navegador solicita tu sitio web (o una imagen o una hoja de estilo), realiza esa solicitud mediante HTTP. HTTP se basa en TCP y una sola solicitud HTTP generalmente se compone de muchos paquetes TCP.

En tu propia IP es solo un sistema para enviar paquetes de datos desde una ubicación en Internet a otra. IP no tiene forma de comprobar si un paquete ha llegado correctamente a su destino. Cuando se trata de sitios web, es importante saber que todos los datos han llegado; de lo contrario, podríamos terminar perdiendo partes de la página web.

Hay otros usos de la web en los que esto no importa tanto, como la transmisión de video en vivo. TCP es una extensión de IP que permite que un navegador y el servidor de tu sitio web se comuniquen entre sí qué paquetes han llegado con éxito. El servidor envía algunos paquetes, luego espera una respuesta del navegador que indique que ha recibido los paquetes (esto se denomina acuse de recibo o ACK), luego envía algunos más, o si no ha recibido un ACK, puede enviar los paquetes. otra vez.

¿ Qué es el inicio lento de TCP ?

El inicio lento de TCP es un algoritmo utilizado por los servidores para averiguar cuántos paquetes puede enviar a la vez. Cuando un navegador se conecta por primera vez a tu servidor, el servidor no tiene forma de saber la cantidad de ancho de banda entre ellos. El ancho de banda es la cantidad de datos que se pueden transmitir a través de una red por unidad de tiempo.

Por lo general, se mide en bits por segundo ( b/s). La plomería es una analogía común: piense en el ancho de banda como la cantidad de agua que puede salir de una tubería por segundo. Tu servidor no sabe cuántos datos puede manejar la conexión, por lo que comienza enviándole una cantidad pequeña y segura de datos, generalmente 10 paquetes TCP.

Si esos paquetes llegan con éxito al visitante de tu sitio, su computadora envía un acuse de recibo (ACK) diciendo que los paquetes han sido recibidos. Luego, tu servidor devuelve más datos, pero esta vez duplica la cantidad de paquetes. Este proceso se repite hasta que se pierden los paquetes y tu servidor no recibe un ACK. (En ese momento, el servidor continúa enviando paquetes pero a un ritmo más lento).

Esa es la esencia del inicio lento de TCP: en la vida real, el algoritmo varía, pero esencialmente así es como funciona.

Entonces, ¿ De dónde vienen los 14kB ?

El algoritmo de inicio lento de TCP de la mayoría de los servidores web comienza enviando 10 paquetes TCP. El tamaño máximo de un paquete TCP es 1500 bytes. Este máximo no lo establece la especificación TCP, proviene del estándar ethernet Cada paquete TCP usa 40 bytes en tu encabezado: 16 bytes para IP y 24 bytes adicionales para TCP, eso deja 1460 bytes por paquete TCP. 10 x 1460 = 14600 bytes o aproximadamente 14kB !

Por lo tanto, si puedes adaptar tu sitio web, o las partes críticas del mismo, a 14 kB, puedes ahorrar mucho tiempo a los visitantes, el tiempo que tarda un viaje de ida y vuelta entre ellos y el servidor de tu sitio web.

¿ Qué Tan Malo Puede Ser Un Viaje de Ida y Vuelta ?

La gente es muy impaciente, y un viaje de ida y vuelta puede ser sorprendentemente largo. El tiempo depende de la latencia, la latencia es el tiempo que tarda un paquete de datos en viajar desde su origen hasta su destino. Si el ancho de banda es la cantidad de agua que puede pasar por una tubería por segundo, la latencia es el tiempo que tarda una gota de agua en ingresar a la tubería y luego salir por el otro extremo.

Aquí hay un ejemplo divertido de lo mala que puede ser la latencia:

Internet Satelital

Internet satelital es proporcionado por un satélite en órbita alrededor de la tierra. Es utilizado por personas en áreas muy despobladas, en plataformas petroleras, cruceros y para WiFi a bordo de las aerolíneas.

Para ilustrar este ejemplo de mala latencia, imaginemos que un grupo de trabajadores de plataformas petroleras han olvidado sus dados en casa y necesitan usar el excelente (menos de 14kB) misingdice.com para jugar a Dungeons & Dragons.

Primero, uno de ellos usa tu teléfono para hacer una solicitud de la página web… El teléfono envía esa solicitud al enrutador WiFi de la plataforma, que envía esos datos a la antena parabólica en la plataforma . Seamos amables y digamos que toma 1ms. La antena parabólica luego tiene que enviar esos datos al satélite en órbita sobre la tierra. Por lo general, esto se logra utilizando un satélite en órbita geoestacionaria por 35786km encima de la superficie terrestre.

La velocidad de la luz viaja a 299792458 m/s, por lo que un mensaje enviado desde la tierra al satélite toma 120ms. Luego, el satélite envía el mensaje a una estación terrestre , que toma otro 120ms.

Luego, la estación terrestre tiene que enviar la solicitud a donde sea que esté el servidor en la tierra (la luz se ralentiza 200000000 m/scuando está en un cable de fibra óptica). Si la distancia entre la estación terrestre y el servidor es la misma que la distancia entre Nueva York y Londres, tomará aproximadamente 28ms , pero si es más como la distancia entre Nueva York y Sydney, tomará 80ms, entonces lo llamaremos 60ms(un número conveniente para nuestras matemáticas).

Luego, la solicitud debe ser procesada por el servidor, lo que podría demorar 10msy luego el servidor la envía nuevamente. De regreso a la estación terrestre, al espacio, de regreso a la antena parabólica, luego al enrutador wifi y de regreso a nuestro teléfono.


Si hacemos las matemáticas eso es 10 + ( 1 + 120 + 120 + 60 ) x 2 = 612ms. Eso es un extra 612ms cada viaje de ida y vuelta; tal vez no parezca mucho tiempo de espera, pero tu sitio web fácilmente podría tener muchos viajes de ida y vuelta solo para obtener su primer recurso.

Además, HTTPS requiere dos viajes de ida y vuelta adicionales antes de que pueda hacer el primero, ¡ lo que nos pone al día 1836ms !

¿ Qué Pasa Con La Latencia Para Las Personas Que Viven en Tierra Firme ?

Internet satelital puede parecer un mal ejemplo deliberadamente, lo elegí porque ilustra el punto y es extraño, pero para los marineros de agua dulce, la latencia puede ser peor que eso por muchas razones:

  • El móvil 2g normalmente tiene una latencia entre 300msy1000ms
  • Las redes 3g pueden tener entre 100msy500ms latencia
  • Redes móviles ruidosas, digamos en un lugar inusualmente concurrido como un festival de música.
  • Servidores que manejan grandes cantidades de tráfico
  • Cosas malas

Las conexiones irregulares también pueden causar la pérdida de paquetes, lo que resulta en otro viaje de ida y vuelta para recuperar los paquetes perdidos.

Ahora Que Conoces la regla de los 14kB, ¿ Qué Puedes Hacer ?

Por supuesto, debes hacer que tu sitio web sea lo más pequeño posible: ama a tus visitantes y quiere que sean felices. Apuntar a que cada página se ajuste a menos de 14kB es un buen objetivo. Esos 14 kB incluyen compresión, por lo que en realidad podría ser más como ~ 50 kB de datos sin comprimir, lo cual es generoso.

Considera que las computadoras de guía del Apolo 11 solo tenían 72 kB de memoria. Una vez que pierda los videos de reproducción automática, las ventanas emergentes, las cookies, los banners de consentimiento de cookies, los botones de redes sociales, los scripts de seguimiento, los frames javascript y css, y toda la otra basura que a nadie le gusta, probablemente esté allí.

Pero, suponiendo que hayas hecho todo lo posible para encajar todo en 14kB y no pueda, la regla de 14kB sigue siendo útil. Si te aseguras de que los primeros 14kB de datos que envías a tus visitantes se puedan usar para generar algo útil , por ejemplo, algunos CSS, JS críticos y los primeros párrafos de texto que explican cómo usar tu aplicación.

Nota: la regla de 14 kB incluye **encabezados HTTP *, que no están comprimidos (incluso con HTTP/2 en la primera respuesta), también incluye imágenes , así que cargue solo lo que está en la mitad superior de la página y manténlo muy pequeño, o usa marcadores de posición para que su los visitantes sepan que están esperando algo bueno.*

Algunas Advertencias a la Regla de los 14kB

La regla de 14kB es más una regla general que una ley fundamental de la computación: Algunos servidores han aumentado la ventana inicial de inicio lento de TCP a 30 paquetes en lugar de 10 A veces, el servidor sabe que puede comenzar con una mayor cantidad de paquetes porque se usa el protocolo de enlace TLS para establecer que se puede usar una ventana más grande.

Los servidores pueden almacenar en caché cuántos paquetes puede administrar una ruta y enviar más la próxima vez que se conecte. También hay otras advertencias: aquí hay un artículo más detallado sobre por qué la regla de 14kB no siempre es el caso.

HTTP/2 y la regla de 14kB

Existe la idea de que la regla de 14kB ya no es válida cuando se usa HTTP/2. He leído todo lo que puedo sobre esto sin aburrirme hasta la muerte, pero no he visto ninguna evidencia de que los servidores que usan HTTP/2 hayan dejado de usar el inicio lento de TCP a partir de 10 paquetes.

HTTP/3 y QUIC

De manera similar a HTTP/2, existe la idea de que HTTP/3 y QUIC eliminarán la regla de 14 kB; esto no es cierto. QUIC recomienda la misma regla de 14kB.

Conclusión

Recuerda que para un sitio web, 14kb es una cantidad considerable y sobre todo porque que los navegadores, buscadores, gestiones de SEO y demás aspectos que estan enfocados en brindar una carga rápida de un sitio web y mejorar la experiencia del usuario. Así que procura no recargar mucho tu sitio web.

Nota(s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos.