HTTP 1. 0 vs 1. 1

Alguém me pode dar uma breve visão geral das diferenças entre HTTP 1.0 e HTTP 1.1? Passei algum tempo com ambos os RFCs, mas não consegui tirar muita diferença entre eles. A Wikipédia diz o seguinte:

HTTP/1.1 (1997-1999)

versão actual; ligações persistentes activadas por omissão e funcionam bem com proxies. Também suporta o pedido de pipelining, permitindo que vários pedidos sejam enviados ao mesmo tempo, permitindo que o servidor para se preparar para a carga de trabalho e potencialmente transferir os recursos solicitados mais rapidamente para o cliente.

Mas isso não significa muito para mim. Eu percebo que este é um assunto um pouco complicado, então eu não estou esperando uma resposta completa, mas alguém pode me dar uma breve visão geral das diferenças em um nível um pouco mais baixo?
Com isso eu quero dizer que eu estou procurando a informação que eu precisaria saber para implementar um Servidor HTTP ou aplicação. Estou à procura de um empurrão no ... direcção certa para que eu possa descobrir sozinho.

Author: numaroth, 2008-10-29

8 answers

Suporte ao 'Proxy' e campo da máquina:

O HTTP 1.1 tem um cabeçalho de máquina obrigatório por spec.

O HTTP 1. 0 não necessita oficialmente de um cabeçalho de máquina, mas não faz mal adicionar um, e muitas aplicações (proxies) esperam ver o cabeçalho da máquina, independentemente da versão do protocolo.

Exemplo:

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

Este cabeçalho é útil porque lhe permite encaminhar uma mensagem através de Servidores 'proxy', e também porque o seu servidor web pode distinguir entre diferentes sites no mesmo servidor.

Isto significa que se tem blahblahlbah.com e helohelohelo.com ambos apontando para o mesmo IP. Seu servidor web pode usar o campo Host para distinguir qual site a máquina cliente quer.

Ligações persistentes:

HTTP 1.1 também lhe permite ter ligações persistentes, o que significa que pode ter mais do que um pedido/resposta na mesma ligação HTTP.

Em HTTP 1. 0 teve de abrir uma nova ligação para cada par de pedido / resposta. E depois de cada resposta a conexão seria fechada. Isto leva a alguns grandes problemas de eficiência por causa de TCP Slow Start .

Método das opções:

HTTP / 1.1 introduz o método das opções. Um cliente HTTP pode usar este método para determinar as habilidades do Servidor HTTP. É usado principalmente para compartilhamento de recursos de origem cruzada em aplicações web.

Caching:

O HTTP 1. 0 tinha suporte para cache através do cabeçalho: Se-Modificado-Desde Então.

O HTTP 1.1 expande-se muito no suporte de cache, usando algo chamado 'marca de entidade'. Se 2 recursos são os mesmos, então eles terão as mesmas marcas de entidade.

O HTTP 1. 1 também adiciona os cabeçalhos condicionais If-Unmodified-Since, If-Match, If-None-Match.

Existem também outras adições relacionadas com cache, como o cabeçalho de controlo de Cache.

100 continuar o estado:

Existe um novo código de retorno em HTTP/1.1 100 Continue. Presente é impedir que um cliente envie uma grande solicitação quando esse cliente não tem certeza se o servidor pode processar a solicitação, ou está autorizado a processar a solicitação. Neste caso, o cliente envia apenas os cabeçalhos, e o servidor vai dizer ao cliente 100 continuar, vá em frente com o corpo.

Muito mais:

  • autenticação do Digest e autenticação do 'proxy'
  • códigos de estatuto Extra novos
  • codificação de transferência Chunked
  • ligação cabeçalho
  • suporte de compressão melhorado
  • Muito mais.
 308
Author: Brian R. Bondy, 2014-11-30 10:27:54

Http 1. 0 (1994)

  • ainda está em uso
  • pode ser usado por um cliente que não pode lidar com chunked respostas (ou comprimidas) ao servidor

1.1 (1996- 2015)

  • formaliza muitas extensões da versão 1.0
  • suporta ligações persistentes e pipelinadas
  • Suporta transferências SEM carga, compressão/descompressão
  • suporta hospedagem virtual (um servidor com um único endereço IP hospedando vários domínios)
  • suportes múltiplas línguas
  • Suporta transferências de 'byte'; útil para retomar os dados interrompidos transferências

HTTP 1.1 é uma melhoria de HTTP 1.0. As listas seguintes: quatro grandes melhorias:

  1. Uso Eficiente de endereços IP, permitindo que vários domínios sejam servida a partir de um único endereço IP.

  2. Resposta mais rápida, permitindo que um navegador Web Envie vários pedidos sobre uma única ligação persistente.

  3. resposta mais rápida para páginas geradas dinamicamente, através do suporte para codificação chunked, que permite enviar uma resposta antes da sua o comprimento total é conhecido.
  4. resposta mais rápida e grande poupança de largura de banda, adicionando a 'cache' suportar.
 8
Author: i_th, 2017-02-07 16:41:51

Para aplicações triviais (por exemplo, recuperando esporadicamente um valor de temperatura de um termómetro activado pela web) o HTTP 1.0 é bom tanto para um cliente como para um servidor. Você pode escrever um cliente ou servidor de HTTP 1.0 baseado em 'bare-bones' em cerca de 20 linhas de código.

Para cenários mais complicados o HTTP 1.1 é o caminho a seguir. Espere um aumento de 3 a 5 vezes no tamanho do código para lidar com as complexidades do protocolo HTTP 1.1 mais complexo. A complexidade vem principalmente, porque em HTTP 1.1 você terá que criar, analisar e responder a vários cabeçalhos. Você pode proteger sua aplicação desta complexidade, fazendo com que um cliente use uma biblioteca HTTP, ou servidor use um servidor de aplicação web.

 7
Author: Diomidis Spinellis, 2008-10-29 14:13:43

Uma questão fundamental de compatibilidade é o suporte para ligações persistentes . Recentemente trabalhei em um servidor que" suportou " HTTP / 1.1, mas não conseguiu fechar a conexão quando um cliente enviou um pedido HTTP/1.0. Ao escrever um servidor que suporta HTTP / 1.1, certifique-se que ele também funciona bem com os clientes HTTP/1.0-somente.

 7
Author: Troy J. Farrell, 2008-10-29 14:34:15

Uma das primeiras diferenças que me lembro, do topo da minha cabeça são vários domínios em execução no mesmo servidor, parcial obtenção de recursos, isso permite que você para recuperar e acelerar o download de um recurso (que é o que quase todos os download accelerator faz).

Se você quiser desenvolver uma aplicação como um site ou semelhante, você não precisa se preocupar muito com as diferenças, mas você deve saber a diferença entre GET e POST Verbos em menos.

Agora se você quiser desenvolver um navegador então sim, você terá que saber o protocolo completo, bem como se você está tentando desenvolver um Servidor HTTP.

Se você só está interessado em saber o protocolo HTTP eu recomendaria que você começasse com HTTP/1.1 em vez de 1.0.

 5
Author: Leandro López, 2008-10-29 13:59:23

HTTP 1.1 é a última versão do Protocolo de transferência de hipertexto, o protocolo de aplicação da World Wide Web que funciona em cima do conjunto de protocolos TCP/IP da Internet. compare com o HTTP 1.0, O HTTP 1.1 fornece uma entrega mais rápida de páginas Web do que o HTTP original e reduz o tráfego da Web.

Exemplo de tráfego Web: por exemplo, se você está acessando um servidor. Ao mesmo tempo, tantos usuários estão acessando o servidor para os dados, então há uma chance de pendurar o servidor. Isto é Web trafego.

 1
Author: Krishna Mohan, 2017-03-02 12:36:59

Comparado com 1,0, 1, 1 reduz o tráfego web

 0
Author: Ram MVS, 2017-03-15 21:06:04