Pergunta

Alguém poderia me dar uma visão geral breve das diferenças entre HTTP 1.0 e HTTP 1.1? Eu passei algum tempo com ambos os RFCs, mas não foram capazes de tirar um monte de diferença entre eles. Wikipedia diz o seguinte:

HTTP / 1.1 (1997-1999)

A versão atual; conexões persistentes ativada por padrão e funciona bem com proxies. Também suporta solicitar canalização, permitindo que vários pedidos para serem 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. Sei que este é um assunto um pouco complicado, então eu não estou esperando uma resposta completa, mas alguém pode me dar uma visão breve das diferenças em um nível inferior pouco?
Com isto quero dizer que eu estou procurando a informação que eu precisaria saber para implementar qualquer um servidor HTTP ou aplicação. Eu estou na sua maioria à procura de uma cutucada na direção certa para que eu possa descobrir isso por conta própria.

Foi útil?

Solução

apoio Proxy e campo Host:

HTTP 1.1 tem um cabeçalho de anfitrião exigido por spec.

HTTP 1.0 não requer oficialmente um cabeçalho de anfitrião, mas não faz mal para adicionar um, e muitas aplicações (proxies) esperar para ver o cabeçalho do host, independentemente da versão do protocolo.

Exemplo:

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

Este cabeçalho é útil porque permite que você encaminhe uma mensagem através de servidores proxy, e também porque o seu servidor web pode distinguir entre diferentes sites no mesmo servidor.

Então isso significa que se você 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.

Conexões persistentes:

HTTP 1.1 também permite que você tenha conexões persistentes que significa que você pode ter mais do que um pedido / resposta na mesma conexão HTTP.

Em HTTP 1.0 que você teve que abrir uma nova conexão para cada par de solicitação / resposta. E depois de cada resposta a conexão será fechada. Isso levou a alguns grandes problemas de eficiência por causa da TCP partida lenta .

método OPÇÕES:

HTTP / 1.1 introduz o método OPTIONS. Um cliente HTTP pode usar esse método para determinar as habilidades do servidor HTTP. É usado principalmente para Cruz Resource Sharing origem em aplicações web.

Cache:

HTTP 1.0 suporte teve para armazenamento em cache por meio do cabeçalho:. If-Modified-Since

HTTP 1.1 expande o caching suportar uma grande quantidade usando algo chamado 'tag entidade'. Se 2 recursos são os mesmos, então eles vão ter as mesmas marcas entidade.

HTTP 1.1 também adiciona a Se-Unmodified-Since, If-Match, If-None-Match cabeçalhos condicionais.

Existem também outras adições relativas a cache como o cabeçalho de controle de cache.

100 Continue status:

Há um novo código de retorno em HTTP / 1.1 100 Continuar. Isso é para evitar um cliente de envio de um grande pedido quando esse cliente não é ainda certo se o servidor pode processar o pedido, ou está autorizado a processar o pedido. Neste caso, o cliente envia apenas os cabeçalhos, eo servidor irá dizer ao cliente 100 Continue, vá em frente com o corpo.

Muito mais:

  • A autenticação Digest e autenticação de proxy
  • novos códigos de status extra
  • transferência codificação fragmentada
  • cabeçalho Connection
  • suporte de compressão avançado
  • muito, muito mais.

Outras dicas

? HTTP 1.0 (1994)

  • É ainda em uso
  • Pode ser usado por um cliente que não pode lidar com Chunked (Ou comprimido) respostas do servidor

? HTTP 1.1 (1996- 2015)

  • formaliza muitas extensões para a versão 1.0
  • Suporta persistentes e conexões de pipeline
  • Suporta fragmentada transferências, compressão / descompressão
  • Suporta hospedagem virtual (um servidor com um único endereço IP hospedando vários domínios)
  • Suporta vários idiomas
  • Suporta transferências byte-range; útil para retomar dados interrompidos transferências

HTTP 1.1 é um aprimoramento do HTTP 1.0. A seguir lista os quatro principais melhorias:

  1. O uso eficiente de endereços IP, permitindo que múltiplos domínios a ser servido a partir de um único endereço IP.

  2. Uma resposta mais rápida, permitindo que um navegador web para enviar múltipla solicitações através de uma única conexão persistente.

  3. Uma resposta mais rápida para páginas geradas dinamicamente, pelo apoio a a codificação em partes, o que permite uma resposta a ser enviada antes da sua comprimento total é conhecido.
  4. poupança
  5. resposta mais rápida e grande largura de banda, adicionando o cache apoio.

Para aplicações triviais (por exemplo esporadicamente recuperar um valor de temperatura de um termômetro web-enabled) HTTP 1.0 é bom para um cliente e um servidor. Você pode escrever um bare-ossos soquete baseada no cliente ou servidor HTTP 1.0 em cerca de 20 linhas de código.

Para cenários mais complicados HTTP 1.1 é o caminho a percorrer. Esperar um 3 a 5 vezes maior aumento no tamanho do código para lidar com a complexidade do protocolo HTTP mais complexo 1.1. A complexidade vem principalmente, porque em HTTP 1.1 que você precisa para criar, analisar e responder a vários cabeçalhos. Você pode proteger o aplicativo a partir dessa complexidade por ter um cliente utilizar uma biblioteca HTTP ou servidor de usar um servidor de aplicativos web.

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

Uma das primeiras diferenças que me lembro de cima da minha cabeça são vários domínios em execução no mesmo servidor, recuperação de recursos parcial, o que lhe permite recuperar e acelerar o download de um recurso (é o que quase todos os acelerador de download faz).

Se você quiser desenvolver um aplicativo como um site ou similar, você não precisa se preocupar muito com as diferenças, mas você deve sabe a diferença entre GET e POST verbos, pelo 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ê está interessado apenas em saber o protocolo HTTP eu recomendo que você começando com HTTP / 1.1 em vez de 1.0.

HTTP 1.1 é a versão mais recente do Hypertext Transfer Protocol, o Largo protocolo de aplicação Web mundo que roda em cima do conjunto TCP / IP da Internet de protocolos. comparar com HTTP 1.0, HTTP 1.1 fornece mais rápida entrega de páginas da Web que o HTTP original e reduz o tráfego Web.

O tráfego da Web Exemplo: Por exemplo, se você está acessando um servidor. Ao mesmo tempo, muitos usuários estão acessando o servidor para os dados, então há uma chance para pendurar o Server. Este é o tráfego Web.

Em comparação com 1.0, 1.1 reduz o tráfego na web

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top