http2 explained
  • English
    • Background
    • HTTP Today
    • Things done to overcome latency pains
    • Updating HTTP
    • http2 concepts
    • The http2 protocol
    • Extensions
    • An http2 world
    • http2 in Firefox
    • http2 in Chromium
    • http2 in curl
    • After http2
    • Further reading
    • Thanks
  • Español
    • Antecedentes
    • HTTP hoy
    • Estrategias para evitar los dolores de latencia
    • Actualizando HTTP
    • Conceptos de http2
    • El protocolo http2
    • Extensiones
    • Un mundo http2
    • http2 en Firefox
    • http2 en Chromium
    • http2 en curl
    • Después de http2
    • Otras lecturas
    • Agradecimientos
  • فارسی
    • مقدمه و معرفی
    • پیش‌زمینه
    • HTTP امروز
    • کارهایی که برای غلبه بر تأخیرها انجام شده
    • آپدیت‌کردن HTTP
    • مفاهیم http2
    • پرتکل http2
    • افزونه‌ها
    • دنیایی با http2
    • http2 در فایرفاکس
    • http2 در کرومیوم
    • http2 در curl
    • بعد از http2
    • خواندن بیشتر
    • تقدیر و تشکر
    • واژه‌نامه
  • Français
    • Avant-propos
    • HTTP aujourd'hui
    • Rustines pour s'accommoder de la latence
    • Mettre à jour HTTP
    • Concepts http2
    • Le protocole http2
    • Extensions
    • Le monde http2
    • http2 et Firefox
    • http2 et Chromium
    • http2 et curl
    • Après http2
    • Lecture complémentaire
    • Remerciements
  • Italiano
    • Background
    • HTTP oggi
    • Tecniche applicate al contrasto della latenza
    • Aggiornare HTTP
    • http2 a grandi linee
    • Il protocollo http2
    • Estensioni
    • Un mondo di http2
    • http2 in Firefox
    • http2 in Chromium
    • http2 in curl
    • Dopo http2
    • Altre letture
    • Riconoscimenti, Ringraziamenti
  • 日本語
    • 背景
    • HTTPの現状確認
    • レイテンシーの闇を克服せよ
    • もうやめて、HTTP 1.1のライフはゼロよ
    • http2のコンセプト
    • http2プロトコル
    • http2は拡張の夢を見る
    • http2化される世界
    • Firefoxにおけるhttp2
    • Chromiumにおけるhttp2
    • curlにおけるhttp2
    • http2の次にくるもの
    • 参考文献
    • 謝辞
  • 한국어
    • 배경
    • HTTP 현재
    • 대기시간의 고통을 극복하기 위해 한일
    • HTTP 업데이팅
    • http2 컨셉
    • http2 프로토콜 (번역되지 않은)
    • 연장선 (번역되지 않은)
    • http2 세계 (번역되지 않은)
    • Firefox에서의 http2
    • Chromium에서의 http2
    • curl에서의 http2
    • HTTP2 다음에 오는 것
    • 참조
    • 감사의 말
  • Português
    • Antecedentes
    • HTTP Hoje
    • Estratégias para evitar as dores da latência
    • Atualizando HTTP
    • Conceitos de http2
    • O protocolo http2
    • Extensões
    • Um mundo http2
    • http2 e Firefox
    • http2 e Chromium
    • http2 e curl
    • Após o http2
    • Outras leituras
    • Agradecimentos
  • русском
    • История
    • HTTP сегодня
    • Шаги, предпринятые для преодоления задержки
    • Обновление HTTP
    • Концепция http2
    • Протокол http2
    • Расширения
    • Мир http2
    • http2 в Firefox
    • http2 в Chromium
    • http2 в curl
    • После http2
    • Дальнейшее чтение
    • Благодарности
  • Svenska
    • Bakgrund
    • HTTP idag
    • Tricks för att komma över fördröjningssmärtor
    • Uppdatera HTTP
    • http2-koncept
    • http2-protokollet
    • Utökningar
    • En http2-värld
    • http2 i Firefox
    • http2 i Chromium
    • http2 i curl
    • Efter http2
    • Fortsatt läsning
    • Tack
  • Türkçe
    • Arkaplan
    • HTTP'nin Bugünü
    • Gecikmelerin üstesinden gelmek için yapılanlar
    • HTTP'nin güncellenmesi
    • http2 konseptleri
    • http2 protokolü
    • Uzantılar
    • http2 dünyası
    • Firefox'da http2
    • Chromium'da http2
    • curl'de http2
    • http2 sonrası
    • Daha fazla bilgi için
    • Teşekkürler
  • 中文
    • 背景
    • HTTP的现状
    • 那些年,克服延迟之道
    • 升级HTTP
    • http2的观念
    • http2协议
    • 扩展
    • http2的世界
    • Firefox里的http2
    • Chromium里的http2
    • Curl里的http2
    • 后http2时代
    • 扩展阅读
    • 致谢
Powered by GitBook
On this page
  • 2.1 HTTP 1.1 é enorme
  • 2.2 Um mundo de opções
  • 2.3 Uso inadequado do TCP
  • 2.4 Tamanhos de transferência e número de objetos
  • 2.5 Latência mata
  • 2.6. Bloqueio do primeiro da fila

Was this helpful?

Export as PDF
  1. Português

HTTP Hoje

HTTP 1.1 transformou-se em num protocolo usado para praticamente tudo na Internet. Grandes investimentos foram feitos em protocolos e infra-estrutura que se aproveitam dele. Isto é considerado na medida em que muitas vezes é mais fácil hoje fazer as coisas correm em cima de HTTP ao invés de construir algo pŕopriamente novo.

2.1 HTTP 1.1 é enorme

Quando se criou o HTTP e foi dado ao mundo, foi concebido como um protocolo muito mais simples e direto, mas o tempo provou o contrário. HTTP 1.0 no RFC 1945 é uma espicificação de 60 páginas publicada em 1996. O RFC 2616 que descreve o HTTP 1.1, foi publicado apenas três anos mais tarde em 1999 e cresceu significativamente para 176 páginas. Todavia quando trabalhámos dentro do IETF na actualização da especificação, foi repartida e convertida em seis documentos, com uma quantidade maior de páginas no total ( resultando no RFC 7230 e a sua família). De qualquer modo, HTTP 1.1 é grande e incluí uma grande variedade de detalhes e sutilezas, sem ignorar grandes quantidades de importantes peças opcionais.

2.2 Um mundo de opções

A natureza do HTTP 1.1 de ter vários pequenos detalhes e opções disponíveis para expansão futura, permitiu um crescimento de um ecosistema de software em que quase nenhuma implementação implementa tudo - e não é realmente possivel dizer o que "tudo" é. Isto levou a uma situação onde as funcionalidades que foram inicialmente pouco usadas viram poucas implementações e aqueles que implementaram estas funcionalidades viram serem pouco utilizadas.

Depois mais tarde, causaram um problema de interoperabilidade quandos os clientes e servidores começaram a utilizar estas funcionalidades . HTTP Pipelining é um exemplo primário destas funcionalidades.

2.3 Uso inadequado do TCP

Tem sido díficil o HTTP 1.1 tirar partido completo de todo o poder e performance que o TCP oferece. Clientes HTTP e browsers têm que ser muito criativos para encontrar soluções que diminuam o tempo que uma página leva a carregar.

Outras tentativas que foram feitas em paralelo ao longo dos anos também vieram provar que o TCP não é assim tão facil de substituir e como tal continuamos a melhorar ambos o TCP e os protocolos no topo dele.

Posto de forma simples, TCP pode ser melhor utilizado para evitar pausas ou momentos no tempo que poderiam ter sido utilizados para enviar ou receber mais dados. A próxima seção vai realçar algumas dessas deficiências.

2.4 Tamanhos de transferência e número de objetos

Ao olhar para a tendência de alguns dos sites mais populares na web de hoje, e o tempo que leva a fazer download das suas páginas principais, um padrão claro emerge. Ao londo dos anos a quantidade de dados que é necessário descarregar tem vindo a aumentar acima de 1.9MB. O que é mais importante neste contexto é uma média de uma centena de recursos individuais que são necessários para exibir cada página.

Como o gráfico abaixo mostra, a tendência já se arrasta por um tempo e há pouca ou nenhuma indicação de que isso venha a mudar tão cedo. Ele mostra o crescimento do tamanho total de transferência (em verde) e o número total de solicitações usada em média (em vermelho) para servir os sites mais populares do mundo, e como eles mudaram ao longo dos últimos quatro anos.

2.5 Latência mata

HTTP 1.1 é muito sensível à latência, em parte porque HTTP Pipelining ainda é cheio de problemas o suficiente para permanecer desligada para uma grande porcentagem dos utilizadores.

Enquanto nós vimos um grande aumento na largura de banda disponível para as pessoas ao longo dos últimos anos, não temos visto o mesmo nível de melhorias na redução da latência. Links de alta latência, como muitas das atuais tecnologias móveis, torna realmente difícil de conseguir uma boa e rápida experiência web mesmo se você tiver uma largura de banda muito alta.

Outro caso que realmente precisa de baixa latência é a de certos tipos de vídeo, como videoconferência, jogos e similares, onde não há apenas um fluxo pré-gerado para enviar para fora.

2.6. Bloqueio do primeiro da fila

HTTP Pipelining é uma forma de enviar um outro pedido enquanto aguarda a resposta a um pedido anterior. É muito semelhante a filas de um banco ou de um supermercado. Você só não sabe se a pessoa que está há sua frente é um cliente rápido ou um cliente irritante que vai demorar uma eternidade antes que ele / ela finalize: Bloqueio do primeiro da fila.

Claro que você pode ter cuidado com a fila que escolhe, escolhendo aquela que você realmente acredita que é a correta, e às vezes você pode até mesmo iniciar uma nova fila por si mesmo, mas no final você não pode evitar de tomar uma decisão, e uma vez que é feita você não pode alternar filas.

A criação de uma nova fila está também associada com o desempenho de recursos, de modo que não é escalável para além de um menor número de filas. Simplesmente não há solução perfeita para isso.

Ainda hoje, em 2015, a maioria dos browsers de desktop fornecido com o HTTP pipelining vêem desativados por padrão.

PreviousAntecedentesNextEstratégias para evitar as dores da latência

Last updated 5 years ago

Was this helpful?

transfer size growth

Leitura adicional sobre este assunto podem ser encontrados por exemplo no Firefox.

bugzilla entry 264354