HTTP

HTTP ha pasado por múltiples versiones del protocolo, muchas de las cuales son compatibles con las anteriores. El RFC 2145 describe el uso de los números de versión de HTTP. El cliente le dice al servidor al principio de la petición la versión que usa, y el servidor usa la misma o una anterior en su respuesta.0.9 (lanzada en 1991)Obsoleta. Soporta solo un comando, GET, y además no especifica el número de versión HTTP. No soporta cabeceras. Como esta versión no soporta POST, el cliente no puede enviarle mucha información al servidor.HTTP/1.0 (mayo de 1996)Esta es la primera revisión del protocolo que especifica su versión en las comunicaciones, y todavía se usa ampliamente, sobre todo en servidores proxy. Permite los métodos de petición GET, HEAD y POST.HTTP/1.1 (junio de 1999)23​Versión más usada actualmente; Las conexiones persistentes están activadas por defecto y funcionan bien con los proxies. También permite al cliente enviar múltiples peticiones a la vez por la misma conexión (pipelining) lo que hace posible eliminar el tiempo de Round-Trip delay por cada petición.HTTP/1.2 (febrero de 2000)Los primeros borradores de 1995 del documento PEP — an Extension Mechanism for HTTP (el cual propone el Protocolo de Extensión de Protocolo, abreviado PEP) los hizo el World Wide Web Consortium y se envió al Internet Engineering Task Force. El PEP inicialmente estaba destinado a convertirse en un rango distintivo de HTTP/1.2.4​ En borradores posteriores, sin embargo, se eliminó la referencia a HTTP/1.2. El RFC 2774 (experimental), HTTP Extension Framework, incluye en gran medida a PEP. Se publicó en febrero de 2000.HTTP/2 (mayo de 2015)Artículo principal: HTTP/2En el año 2012 aparecen los primeros borradores de la nueva versión de HTTP (HTTP/2). Esta nueva versión no modifica la semántica de aplicación de http (todos los conceptos básicos continúan sin cambios). Sus mejoras se enfocan en como se empaquetan los datos y en el transporte. Por ejemplo, añade el uso de una única conexión, la compresión de cabeceras o el servicio ‘server push’. Los exploradores más importantes solo soportan HTTP 2.0 sobre TLS usando la extensión ALPN5​que requiere TLSv1.2 o superior6​.HTTP/2.4.39 (2 de abril de 2019)7​Cargas de MPM en Tiempo de Ejecución
Múltiples MPMs ahora se pueden construir como módulos dinámicos de forma que pueden ser cargados en tiempo de compilación. El MPM de elección se puede configurar en tiempo de ejecución a través de «LoadModule».
Evento MPM
El Evento MPM ya no es experimental, lo cuál ahora está totalmente soportado.
Soporte Asíncrono (Asynchronous)
Mejor soporte para lectura y escritura asíncrona para soporte de MPM y otras plataformas.
Configuración del Nivel de Log (LogLevel) por Módulo y Directorio
El «LogLevel» puede ser configurado ahora por módulo y por directorio. Nuevos niveles de trace1 a trace8 se han añadido por encima de la :etiqueta de nivel de registro de log debug.
Secciones de Configuración por Petición <If>, <ElseIf> y <Else> se pueden usar para establecer los criterios de configuración por cada petición.
Analizador de Expresión de Uso General
Un nuevo analizador de expresiones permite especificar condiciones complejas utilizando una sintaxis común en directivas como «SetEnvIfExprode», «RewriteCond», «Header», <If>, entre otras.
KeepAliveTimeout en Milisegundos
Ahora es posible especificar «KeepAliveTimeout» en milisegundos.
Directiva NameVirtualHost
Ya no es necesario y ahora está en desuso.
Anular Configuración
La nueva directiva «AllowOverrideList» permite un control más exhaustivo de que directivas se permiten en los archivos .htaccess.
Variables de los Archivos de Configuración
Ahora es posible «Definir» variables en la configuración, lo que permite una representación más clara si el mismo valor se utiliza en :muchos lugares en la configuración.
Reducción del Uso de Memoria
A pesar de muchas de las nuevas características, 2.4.x tiende a usar menos memoria que la versión 2.2.x

Resultado de imagen para HTTP