HTTP/2
HTTP/2 es una evolución del protocolo HTTP 1.1; básicamente intenta
ser más eficiente en el uso de las redes. La semántica es la misma, por lo que
está diseñado para ser compatible con los protocolos anteriores.
Limitaciones de HTTP 1.1
HTTP 1.1 está limitado a procesar una solicitud por conexión, por lo que generalmente
los clientes utilizan más de una conexión para solicitar archivos a los servidores. Pero
esto genera un problema, ya que cuando hay demasiadas conexiones TCP abiertas,
los clientes compiten por utilizar los recursos del servidor y el rendimiento
disminuye progresivamente a medida que más clientes se conectan a los servidores.
Características principales
- HTTP/2 es un protocolo binario (recuerde
que HTTP 1.1 es un protocolo de texto).
- HTTP/2 funciona sobre TLS y ALPN.
- Es multiplexado (permite enviar más
de una solicitud a través de una única conexión TCP).
- El servidor puede enviar respuestas a los clientes.
- Reduce los tiempos de ida y vuelta, para que los clientes puedan
cargar más rápido.
HTTP/2 introduce otras mejoras, más detalles: RFC7540.
HTTP/2 requiere nuestra versión personalizada de Indy porque
requiere el protocolo ALPN.
Componentes
- TsgcHTTP2Client: componente cliente que admite completamente el protocolo HTTP/2
(código Pascal 100% de sgcWebSockets, sin librerías externas).
- TsgcWebSocketHTTPServer:
componente servidor con soporte completo del protocolo HTTP/2 (sgcWebSockets
100% código Pascal, sin bibliotecas externas). Por defecto HTTP/2 está
deshabilitado; puede habilitarlo usando la propiedad HTTPOptions y estableciendo
Enable = true.
- TsgcWebSocketServer_HTTPAPI:
componente de servidor que admite el protocolo HTTP/2 (implementación de Microsoft
y requiere Windows 2016+ o Windows 10+).
- Servidores DataSnap: el servidor datasnap también puede admitir el protocolo HTTP/2.
APIs
- Apple
Push Notifications: envíe
notificaciones visibles al usuario desde un proveedor de servidor al dispositivo del usuario.