Buscar..


Observaciones

El Protocolo de transferencia de hipertexto (HTTP) utiliza un modelo de solicitud de cliente / respuesta de servidor. HTTP es un protocolo sin estado, lo que significa que no requiere que el servidor retenga información o estado sobre cada usuario durante la duración de múltiples solicitudes. Sin embargo, por razones de rendimiento y para evitar problemas de latencia de conexión de TCP, se pueden usar técnicas como las conexiones persistentes, paralelas o segmentadas.

Versiones

Versión Nota (s) Fecha estimada de lanzamiento
HTTP / 0.9 "Según lo implementado" 1991-01-01
HTTP / 1.0 Primera versión de HTTP / 1.0, última versión que no se ha convertido en un RFC 1992-01-01
HTTP / 1.0 r1 Primer RFC oficial para HTTP 1996-05-01
HTTP / 1.1 Mejoras en el manejo de la conexión, soporte para hosts virtuales basados ​​en nombres 1997-01-01
HTTP / 1.1 r1 Se eliminó el uso de palabras clave no ambiguas, se solucionaron posibles problemas con el enmarcado de mensajes 1999-06-01
HTTP / 1.1 r2 Grandes reparaciones 2014-06-01
HTTP / 2 Primera especificación para HTTP / 2 2015-05-01

Solicitudes y respuestas HTTP

Los clientes y servidores HTTP envían solicitudes y respuestas HTTP, respectivamente

HTTP describe cómo un cliente HTTP, como un navegador web, envía una solicitud HTTP a través de una red a un servidor HTTP, que luego envía una respuesta HTTP al cliente.

La solicitud HTTP suele ser una solicitud de un recurso en línea, como una página web o una imagen, pero también puede incluir información adicional, como los datos ingresados ​​en un formulario. La respuesta HTTP suele ser una representación de un recurso en línea, como una página web o una imagen.

HTTP / 1.0

HTTP / 1.0 fue descrito en RFC 1945 .

HTTP / 1.0 no tiene algunas características que hoy en día se requieren de facto en la Web, como el encabezado Host para hosts virtuales.

Sin embargo, los clientes y servidores HTTP a veces aún declaran que usan HTTP / 1.0 si tienen una implementación incompleta del protocolo HTTP / 1.1 (por ejemplo, sin codificación de transferencia fragmentada o segmentación), o la compatibilidad se considera más importante que el rendimiento (por ejemplo, cuando se conecta a un proxy local). servidores).

GET / HTTP/1.0
User-Agent: example/1

HTTP/1.0 200 OK
Content-Type: text/plain

Hello

HTTP / 1.1

HTTP / 1.1 se especificó originalmente en 1999 en RFC 2616 (protocolo) y RFC 2617 (autenticación), pero estos documentos ahora están obsoletos y no deben usarse como referencia:

No utilice RFC2616. Elimínelo de sus discos duros, marcadores y grabe (o recicle responsablemente) cualquier copia que se imprima.

- Mark Nottingham, presidente del HTTP WG

La especificación actualizada de HTTP / 1.1, que coincide con la forma en que se implementa HTTP en la actualidad, se encuentra en los nuevos RFC 723x:

HTTP / 1.1 agregado, entre otras características:

  • codificación de transferencia fragmentada, que permite a los servidores enviar de manera confiable respuestas de tamaño desconocido,
  • conexiones TCP / IP persistentes (que no eran una extensión estándar en HTTP / 1.0),
  • rango de solicitudes utilizadas para reanudar descargas,
  • control de caché.

HTTP / 1.1 intentó introducir la canalización, lo que permitía a los clientes HTTP reducir la latencia de solicitud-respuesta al enviar varias solicitudes a la vez sin esperar respuestas. Desafortunadamente, esta función nunca se implementó correctamente en algunos proxies, lo que provocó que las conexiones canalizadas dejaran o reordenaran las respuestas.

GET / HTTP/1.0
User-Agent: example/1
Host: example.com

HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 6
Connection: close

Hello

HTTP / 2

HTTP / 2 ( RFC 7540 ) cambió el formato HTTP de una simple solicitud basada en texto y los encabezados de respuesta al formato de datos binarios enviados en marcos. HTTP / 2 soporta la compresión de los encabezados ( HPACK ).

Esto redujo la sobrecarga de solicitudes y permitió recibir múltiples respuestas simultáneamente en una sola conexión TCP / IP.

A pesar de los grandes cambios en el formato de los datos, HTTP / 2 todavía usa encabezados HTTP, y las solicitudes y respuestas se pueden traducir con precisión entre HTTP / 1.1 y 2.

HTTP / 0.9

La primera versión de HTTP que entró en existencia es 0.9, a menudo llamada " HTTP como implementado ". Una descripción común de 0.9 es "una subsección del protocolo HTTP [es decir, 1.0] completo". Sin embargo, esto no ilustra en gran medida la disparidad en las capacidades entre 0.9 y 1.0.

Ni peticiones ni respuestas en 0.9 encabezados de función. Las solicitudes consisten en una sola línea de GET terminada en CRLF, seguida de un espacio, seguida de la URL del recurso solicitado. Se espera que las respuestas sean un solo documento HTML. El final de dicho documento se marca al quitar la conexión del lado del servidor. No hay instalaciones para indicar el éxito o el fracaso de una operación. La única propiedad interactiva es la cadena de búsqueda que está estrechamente vinculada a la etiqueta HTML <isindex> .

El uso de HTTP / 0.9 es hoy en día excepcionalmente raro. Ocasionalmente se ve en sistemas embebidos como una alternativa a tftp .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow