¿Se deben manejar las solicitudes HTTP fusionadas en el front-end o el back-end?

La respuesta, como la mayoría de las cosas en tecnología, es “depende”. Desde un punto de vista técnico, no necesariamente debe esforzarse por reducir las llamadas HTTP, pero es posible que desee hacerlo con fines de flujo de trabajo / legibilidad.

Si el rendimiento es su objetivo, el desafío es menos sobre un número y más sobre la complejidad / carga útil. Es por eso que la respuesta difiere caso por caso.

Los navegadores manejan datos como compradores en un restaurante de comida rápida. Cuantos más registros abiertos haya, más rápido se procesará la multitud. Al desglosar las solicitudes de datos, es posible almacenar en caché algunos bits pequeños en localStorage (o trabajadores web / de servicios), lo que puede eliminar la necesidad de la misma solicitud en el futuro. Usando la analogía de la comida rápida, piense en ello como agregar un drive-thru para evitar a la multitud dentro.

Los navegadores más comunes (a partir de junio de 2017) pueden manejar un máximo de 3-6 solicitudes simultáneas, lo que significa que se bloqueará más que eso hasta que se libere un canal. Si está utilizando HTTP / 2, la multiplexación permitirá hasta 100 (creo que es un límite suave).

Los servidores y las redes manejan el problema de diferentes maneras, desde una puerta de enlace API, GraphQL, consultas DB, procesamiento del servidor local, almacenamiento en caché, etc. Si tiene varios servidores y equilibradores de carga, podría tener más sentido manejar la fusión allí.

La conclusión es que debe elegir el entorno más poderoso para fusionar datos. Si sus servidores están constantemente bajo alta carga o simplemente no son terriblemente potentes, delegue el procesamiento al cliente. Si tiene una excelente red / servidores, fusione allí.

La respuesta a esta pregunta varía, pero en la mayoría de las circunstancias, debe limitar sus solicitudes tanto como sea posible. Si es posible realizar una solicitud frente a 10 solicitudes, mientras se siguen devolviendo los mismos datos de respuesta, el enfoque de solicitud única es significativamente mejor en términos de rendimiento.

Aquí hay una analogía demasiado simplificada. Asumamos que usted y un amigo iban a una fiesta. No sabes nada al respecto y tienes varias preguntas para tu amigo:

  • ¿Donde es la fiesta?
  • ¿Cuál es la ocasión?
  • Cuando y a que hora
  • ¿Quien va?
  • ¿Necesitas traer algo?
  • ¿Es casual o formal?
  • ¿Quién va a conducir?
  • ¿Qué vas a hacer después?
  • ¿Puedes traer invitados?

¿Sería más rápido obtener la respuesta a todas estas preguntas en una sola llamada telefónica? ¿O prefiere hacer una sola llamada telefónica para cada pregunta? Tal vez prefiera agrupar sus preguntas y hacer algunas, y tal vez algunas preguntas de seguimiento que no figuran en esta lista, en llamadas telefónicas separadas.

Como puede ver, depende, pero la respuesta obvia es hacer la menor cantidad de llamadas posible. No solo ahorrará tiempo para usted, sino también el tiempo de su amigo.

More Interesting

Cómo incluso comenzar a aprender back-end desde bases de datos y servidores hasta lenguaje de programación, nube, aplicaciones distribuidas y demás

Si soy muy competente en NodeJS pero no tengo experiencia en otra pila de backend, ¿sigo siendo un desarrollador de backend profesional?

¿Cuál es la mejor manera de separar las preocupaciones entre los desarrolladores frontend y backend?

¿Cuál es la diferencia entre front-end, back-end y programación / desarrollo del lado del servidor?

¿Las aplicaciones nativas se aplican al front end, back end o ambos?

¿Los desarrolladores web front-end se valoran menos que los desarrolladores back-end? ¿Debo cambiar mi enfoque profesional inmediato de front-end a back-end?

Cómo crear un sitio web hermoso como http://drewwilson.com/

¿Qué lenguaje es mejor para el desarrollo web frontend / backend: Python, PHP o JavaScript? ¿Y por qué?

¿Cuál es la mejor opción para tecnología web o front-end (HTML, CSS, JS, etc.) y DBMS o back-end?

¿Cuál podría ser el mejor enfoque para un principiante de desarrollo web para aprender programación de back-end?

¿Qué lenguajes de programación son front-end y cuáles son back-end para aplicaciones de Android?

¿Cuáles son las ventajas y desventajas de usar Javascript en el back-end?

Después de construir el front-end, ¿cuáles son los otros pasos en el desarrollo web?

La gente arroja mucho sobre los títulos de ingeniero de software front-end y back-end. ¿Cuáles son algunos ejemplos concretos que me harán comprender lo que realmente significan?

¿Qué tipo de bases de datos debo aprender para convertirme en desarrollador de backend?