Comparación del rendimiento entre HTTP/1.1, HTTP/2 y HTTP/2 + Server Push

Publicado resultados del estudio del rendimiento de varios métodos de extracción de una colección de recursos, utilizando para acceder al servidor los protocolos HTTP/1.1, HTTP/2 y HTTP/2 + Server Push. En el estudio también se evaluó el impacto en el rendimiento de la disponibilidad de datos solicitados en la caché del navegador y la manipulación de recursos a nivel de lógica de la aplicación (consolidación de recursos en un único bloque JSON).

Las pruebas de rendimiento al realizar 25 solicitudes mostraron, en general, resultados previsibles: un retraso notable en la solicitud a través de HTTP/1.1 con la caché vacía y un liderazgo en la entrega de recursos en un solo bloque (pruebas etiquetadas como 'compound'). El rendimiento de Firefox y Chrome fue aproximadamente igual, pero la disponibilidad de datos en la caché no condujo al crecimiento de eficiencia esperado.

Comparación del rendimiento entre HTTP/1.1, HTTP/2 y HTTP/2 + Server Push

Sin embargo, en la prueba de procesamiento de 500 solicitudes, se observó un notable retraso de Chrome con respecto a Firefox al enviar un gran número de solicitudes, y un retraso de Firefox con respecto a Chrome al aplicar el mecanismo Server Push y en la situación de uso de HTTP/2 cuando la mayoría de los datos estaba en la caché del navegador. Chrome demostró un rendimiento más eficiente con la caché, mientras que Firefox fue más efectivo en el procesamiento de solicitudes externas.

Comparación del rendimiento entre HTTP/1.1, HTTP/2 y HTTP/2 + Server Push

Comparación del rendimiento entre HTTP/1.1, HTTP/2 y HTTP/2 + Server Push

A raíz de las pruebas, se concluyó que HTTP/2 permite procesar de manera bastante eficiente solicitudes separadas de una gran colección de recursos. Las diferencias en el rendimiento entre los esquemas simples de entrega de recursos separados y los métodos en los que los recursos se agregan en un solo bloque no son tan significativas como para justificar una complejidad considerable en la lógica de procesamiento del lado de la aplicación y servidores. La agregación solo tiene sentido en situaciones donde el rendimiento tiene la máxima prioridad. Cuando lo más importante es simplificar la lógica y tener una API sencilla, tiene sentido utilizar el procesamiento separado de los recursos.

Otro hallazgo es que la caché del navegador al usar HTTP/2 no tiene un impacto significativo en el rendimiento del procesamiento de solicitudes (la ejecución completa de una solicitud 501 resultó ser más lenta que la ejecución de 51 solicitudes a un 90% de llenado de la caché en un factor de 1.2 en Firefox y 2.3 en Chrome). El uso de Server Push no mostró beneficios significativos en Firefox, pero fue efectivo al cargar un gran número de recursos en Chrome. Los autores del estudio también señalaron que la optimización del lado del servidor tiene un impacto más considerable en el rendimiento que la optimización del código del cliente ejecutado en el navegador.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster