javascript xmlhttprequest http2

javascript - ¿Las implementaciones actuales de XHR aprovechan HTTP/2?



xmlhttprequest http2 (1)

Esto puede resaltar algunos conceptos erróneos de la mía, pero tenía curiosidad:

Si tuviera un servidor HTTP / 2 en ejecución y quisiera hacer solicitudes de XHR desde el navegador al servidor, ¿XHR aprovechará automáticamente las optimizaciones de rendimiento en los encabezados y de tal forma que se proporcionen?

¿O ignoraría esa funcionalidad y operaría como una solicitud HTTP? Si es así, ¿hay algo que podamos hacer para usar las nuevas optimizaciones en nuestras solicitudes?


No necesitas hacer nada. Si el servidor admite HTTP / 2, XHR lo usará. La compresión del encabezado y tal se activará automáticamente.

Pruébalo:

  • Abra un sitio web HTTP / 2 en Chrome. Puede usar el nuestro, también para ver algunas cosas interesantes relacionadas con HTTP / 2 PUSH, AngularJS y RequireJS .
  • Abra el panel Devtools (F12), luego el panel de red y luego haga clic en XHR. Haga clic con el botón derecho en la fila de encabezados y asegúrese de tener la columna "Protocolo" habilitada.
  • Debería ver "h2" en dicha columna (en nuestro caso, AngularJS está cargando una plantilla incluida a través de XHR).
  • Mientras se encuentra en eso, observe que el servidor insertó la solicitud XHR. Los signos reveladores de las respuestas enviadas son "encabezados provisionales" en lugar de encabezados de solicitud, y tiempos de descarga y de espera anormalmente pequeños. Incluso agregamos un encabezado adicional a la respuesta (x-shimmmercat-note: push-stream). El navegador adoptó esta solicitud, por lo que las solicitudes de XHR no solo usarán HTTP / 2 si está disponible, sino que en algunos casos pueden usar recursos insertados .