Pregunta

¿Podría alguien darme una breve descripción de las diferencias entre HTTP 1.0 y HTTP 1.1? He pasado un tiempo con ambos RFC, pero no he podido sacar mucha diferencia entre ellos. Wikipedia dice esto:

  

HTTP / 1.1 (1997-1999)

     

Versión actual; Las conexiones persistentes están habilitadas de forma predeterminada y funcionan bien con proxies. También admite la canalización de solicitudes, lo que permite que se envíen varias solicitudes al mismo tiempo, lo que permite al servidor prepararse para la carga de trabajo y, posiblemente, transferir los recursos solicitados más rápidamente al cliente.

Pero eso no significa mucho para mí. Me doy cuenta de que este es un tema un tanto complicado, por lo que no espero una respuesta completa, pero ¿alguien me puede dar una breve descripción de las diferencias en un nivel un poco más bajo? Con esto quiero decir que estoy buscando la información que necesitaría saber para implementar un servidor o una aplicación HTTP. Estoy buscando principalmente un empujón en la dirección correcta para poder resolverlo por mi cuenta.

¿Fue útil?

Solución

Soporte de proxy y el campo Host:

HTTP 1.1 tiene un encabezado de Host requerido por especificación.

HTTP 1.0 no requiere oficialmente un encabezado de Host, pero no se pierde nada al agregar uno, y muchas aplicaciones (proxies) esperan ver el encabezado de Host independientemente de la versión del protocolo.

Ejemplo:

GET / HTTP/1.1
Host: www.blahblahblahblah.com

Este encabezado es útil porque le permite enrutar un mensaje a través de servidores proxy y también porque su servidor web puede distinguir entre diferentes sitios en el mismo servidor.

Esto significa que si tienes blahblahlbah.com y helohelohelo.com ambos apuntan a la misma IP. Su servidor web puede usar el campo Host para distinguir qué sitio desea la máquina cliente.

Conexiones persistentes:

HTTP 1.1 también le permite tener conexiones persistentes, lo que significa que puede tener más de una solicitud / respuesta en la misma conexión HTTP.

En HTTP 1.0, tenía que abrir una nueva conexión para cada par de solicitud / respuesta. Y después de cada respuesta se cerraría la conexión. Esto dio lugar a algunos grandes problemas de eficiencia debido a TCP Slow Start .

Método de OPCIONES:

HTTP / 1.1 introduce el método OPCIONES. Un cliente HTTP puede usar este método para determinar las capacidades del servidor HTTP. Se utiliza principalmente para el uso compartido de recursos de origen cruzado en aplicaciones web.

Caching:

HTTP 1.0 tenía soporte para el almacenamiento en caché a través del encabezado: If-Modified-Since.

HTTP 1.1 se expande en el soporte de almacenamiento en caché mucho usando algo llamado 'etiqueta de entidad'. Si 2 recursos son iguales, entonces tendrán las mismas etiquetas de entidad.

HTTP 1.1 también agrega los encabezados condicionales If-Unmodified-Since, If-Match, If-None-Match.

También hay otras adiciones relacionadas con el almacenamiento en caché como el encabezado Cache-Control.

100 Continuar estado:

Hay un nuevo código de retorno en HTTP / 1.1 100 Continuar. Esto es para evitar que un cliente envíe una solicitud grande cuando ese cliente ni siquiera está seguro de si el servidor puede procesar la solicitud o si está autorizado para procesar la solicitud. En este caso, el cliente envía solo los encabezados, y el servidor le dirá al cliente 100 Continuar, siga adelante con el cuerpo.

Mucho más:

  • Autenticación implícita y autenticación proxy
  • Nuevos códigos de estado adicionales
  • Codificación de transferencia fragmentada
  • encabezado de conexión
  • Compatibilidad con compresión mejorada
  • Mucho mucho más.

Otros consejos

& # 61550; HTTP 1.0 (1994)

  • Todavía está en uso
  • Puede ser utilizado por un cliente que no puede tratar con partes (o comprimido) respuestas del servidor

& # 61550; HTTP 1.1 (1996-2015)

  • Formaliza muchas extensiones a la versión 1.0
  • Admite conexiones persistentes y canalizadas
  • Admite transferencias fragmentadas, compresión / descompresión
  • Admite el alojamiento virtual (un servidor con una sola dirección IP que aloja múltiples dominios)
  • Soporta múltiples idiomas
  • Admite transferencias de rango de bytes; Útil para reanudar datos interrumpidos. transferencias

HTTP 1.1 es una mejora de HTTP 1.0. Las siguientes listas de Cuatro mejoras principales:

  1. Uso eficiente de direcciones IP, al permitir que múltiples dominios sean servido desde una única dirección IP.

  2. Respuesta más rápida, al permitir que un navegador web envíe múltiples solicitudes a través de una única conexión persistente.

  3. Respuesta más rápida para páginas generadas dinámicamente, por soporte para codificación fragmentada, que permite enviar una respuesta antes de su Se conoce la longitud total.
  4. Respuesta más rápida y grandes ahorros de ancho de banda, agregando caché apoyo.

Para aplicaciones triviales (por ejemplo, recuperar esporádicamente un valor de temperatura de un termómetro habilitado para la web) HTTP 1.0 está bien tanto para un cliente como para un servidor. Puede escribir un servidor o cliente HTTP 1.0 basado en sockets básicos en aproximadamente 20 líneas de código.

Para escenarios más complicados, HTTP 1.1 es el camino a seguir. Espere un aumento de 3 a 5 veces en el tamaño del código para lidiar con las complejidades del protocolo HTTP 1.1 más complejo. La complejidad viene principalmente, porque en HTTP 1.1 deberá crear, analizar y responder a varios encabezados. Puede proteger su aplicación de esta complejidad haciendo que un cliente use una biblioteca HTTP, o el servidor use un servidor de aplicaciones web.

Un problema clave de compatibilidad es el soporte para conexiones persistentes . Recientemente trabajé en un servidor que " admite " HTTP / 1.1, pero no pudo cerrar la conexión cuando un cliente envió una solicitud HTTP / 1.0. Al escribir un servidor que admita HTTP / 1.1, asegúrese de que también funcione bien con los clientes que solo tienen HTTP / 1.0.

Una de las primeras diferencias que puedo recordar de la parte superior de mi cabeza son los múltiples dominios que se ejecutan en el mismo servidor, la recuperación parcial de recursos, esto le permite recuperar y acelerar la descarga de un recurso (es lo que casi todos los aceleradores de descargas hace).

Si desea desarrollar una aplicación como un sitio web o similar, no necesita preocuparse demasiado por las diferencias, pero debería saber la diferencia entre GET y POST verbos al menos.

Ahora, si desea desarrollar un navegador, entonces sí, tendrá que conocer el protocolo completo, así como si está intentando desarrollar un servidor HTTP.

Si solo te interesa conocer el protocolo HTTP, te recomendaría que comiences con HTTP / 1.1 en lugar de 1.0.

HTTP 1.1 es la última versión del Protocolo de transferencia de hipertexto, el protocolo de aplicación de la World Wide Web que se ejecuta sobre el conjunto de protocolos TCP / IP de Internet. en comparación con HTTP 1.0, HTTP 1.1 proporciona una entrega más rápida de páginas web que el HTTP original y reduce el tráfico web.

Tráfico web Ejemplo: por ejemplo, si está accediendo a un servidor. Al mismo tiempo, muchos usuarios acceden al servidor para obtener los datos, luego existe la posibilidad de bloquear el servidor. Esto es tráfico web.

En comparación con 1.0, 1.1 reduce el tráfico web

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top