Soporte para HTTP/3
Salvo ofrece soporte para HTTP/3, el cual puede habilitarse mediante la funcionalidad quinn. HTTP/3 está basado en el protocolo QUIC y proporciona menor latencia y mejor rendimiento en comparación con HTTP/1.1 y HTTP/2 tradicionales, especialmente en entornos de red inestables.
Habilitar el soporte para HTTP/3
Para habilitar el soporte de HTTP/3 en Salvo, es necesario activar la funcionalidad quinn en el archivo Cargo.toml:
Casos de uso de HTTP/3
HTTP/3 es especialmente adecuado para los siguientes escenarios:
- Aplicaciones en dispositivos móviles y entornos de red inestables
- Aplicaciones en tiempo real que requieren baja latencia
- Escenarios que involucran descargas paralelas de numerosos archivos pequeños
- Aplicaciones que necesitan migración de conexión (por ejemplo, cambio sin interrupciones de WiFi a redes celulares)
Código de ejemplo
A continuación se muestra un ejemplo simple de servidor HTTP/3 que soporta tanto HTTP/3 (QUIC) como HTTPS (TCP):
Análisis del código clave
Configuración TLS
Dado que HTTP/3 se basa en el protocolo QUIC, que requiere TLS 1.3 para cifrado, es necesario configurar certificados y claves TLS. En Salvo, utilizamos RustlsConfig para configurar TLS.
Combinación de oyentes
Este código es la parte central del manejo de HTTP/3 en Salvo. Primero crea un oyente TCP habilitado para TLS (para HTTP/1.1 y HTTP/2), luego crea un oyente QUIC (para HTTP/3). El método join combina estos dos oyentes, permitiendo que el servidor maneje solicitudes de diferentes protocolos simultáneamente.
Ejecutar el ejemplo
Para ejecutar este ejemplo, se necesitan certificados TLS y claves privadas válidas. En un entorno de desarrollo, se pueden utilizar certificados autofirmados. El código completo del ejemplo se puede encontrar en el repositorio GitHub de Salvo.
Tenga en cuenta que, dado que muchos clientes aún no soportan completamente HTTP/3, es esencial que este servidor soporte tanto HTTP/3 como HTTPS.
Consideraciones
- HTTP/3 requiere soporte para TLS 1.3, por lo que deben configurarse certificados y claves válidos.
- Los clientes deben soportar el protocolo HTTP/3 para utilizar esta funcionalidad; de lo contrario, recurrirán a HTTP/1.1 o HTTP/2.
- En entornos de producción, deben utilizarse certificados emitidos por una Autoridad de Certificación (CA) confiable en lugar de certificados autofirmados.