Ahora, lo último de lo que quería hablarles es algo llamado Web Transport. He hablado un poco sobre la API Fetch, y eso es usualmente la mayoría de lo que necesitas, pero para algunos casos de uso, especialmente algunos casos de uso en tiempo real, necesitas un poco más de poder. Y hasta ahora, tendrías que usar algo como web sockets sobre TCP o si realmente necesitabas UDP o data no confiable, podrías usar algo como el canal de data WebRTC para esto. Ambos funcionan, pero especialmente el último es un poco difícil de usar. No es muy intuitivo configurarlo, especialmente en un contexto de cliente a servidor.
Con HTTP3 y QUIC, ahora tenemos una tercera opción en esta lista, que se llama Web Transport. Y me gusta decir, aunque no es completamente correcto, me gusta decir que Web Transport es lo más cercano que vamos a llegar a un socket de red crudo en el navegador. Como sabrán, no hay sockets TCP o UDP debido a razones de seguridad, pero Web Transport expone la mayoría de las características de bajo nivel de QUIC y HTTP3 de una manera relativamente fácil de usar. Así que, por ejemplo, Web Transport aún no está terminado. Este es el diseño actual, puede cambiar, pero ya te da una idea de los poderes que podrías tener. Por ejemplo, incluso podrías ser capaz de elegir el algoritmo de control de congestión que el navegador usaría, donde podrías ajustar para un alto rendimiento o baja latencia. De manera similar, algo que ves ahí es algo llamado datagramas. Realmente puedes enviar datagramas completamente no confiables. Estos no son datagramas UDP crudos. Estos son en realidad parte de la conexión QUIC, por lo que están completamente encriptados y controlados por flujo y congestión, pero aún así deberían ser muy interesantes para casos de uso como juegos en tiempo real y transmisión de medios. Y finalmente, tienes acceso a los flujos HTTP3 brutos usando una interfaz, creo, muy intuitiva para cualquiera que haya usado otros tipos de flujos de JavaScript.
Así que Web Transport está llegando. Aún no está terminado, pero puedes probar esto en Firefox y Chrome en este momento. Realmente sólo comienza a brillar, sin embargo, cuando lo combinas con otras características web próximas y existentes. Por ejemplo, mucha gente está usando esto para reproducir el caso de uso de WebRTC, transmisión de medios en vivo, pero de una manera mucho más de bajo nivel donde obtienes los data a través de, por ejemplo, Web Transport. Luego puedes usar algo como WebAssembly para procesar los data de manera muy eficiente. Luego hay algo nuevo llamado WebCodecs que realmente te permite decodificar o transcodificar los data de medios de una manera muy eficiente directamente desde JavaScript o WebAssembly. Luego puedes renderizarlo. Y hay ejemplos dentro de un proyecto llamado MediaOverQuick. Están trabajando en un nuevo protocolo específicamente para esto que tiene algunos resultados realmente asombrosos para video de muy baja latencia directamente en el navegador sin toda la complejidad de WebRTC. Así que WebTransport es realmente sólo un bloque de construcción para muchos casos de uso interesantes en la parte superior.
Por supuesto, siempre hay una trampa. Podrías haber visto esto en una de las diapositivas anteriores. No es HTTP 3 crudo porque algunas redes bloquearán activamente o no permitirán HTTP 3 en la práctica. Así que WebTransport retrocederá a HTTP 2 si no está disponible. Y al menos por ahora, el plan es darte acceso a datagramas incluso en HTTP 2 aunque no sean realmente no confiables. Así que, ya sabes, algo a tener en cuenta de nuevo. El navegador abstrae algo de esto a veces un poco demasiado. Con eso, es hora de concluir esto. Creo que está claro que HTTP 3 es de hecho un protocolo muy poderoso. Aunque no puedes hacer mucho de él, hay algunas características de alto nivel que puedes usar. Algunas de ellas son bastante complejas como la priorización y dependen del navegador, pero otras deberían permitir muchos casos de uso nuevos e interesantes como por ejemplo, 103 Early Hints y especialmente Web Transport. Con eso, diría si te gustaría saber más sobre esto o cómo todo era mejor en los buenos viejos días de PHP, avísame y nos vemos la próxima vez.
Comments