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
  • 5.1. http2 para esquemas existentes URI
  • 5.2. http2 para https://
  • 5.3. negociação http2 sobre TLS
  • 5.4. http2 para http://

Was this helpful?

Export as PDF
  1. Português

Conceitos de http2

Afinal o que o http2 consegue fazer? Onde está o limite que o grupo HTTPbis se encarregou de fazer?

Na realidade foram restritos e mantiveram algumas restrições na capacidade de inovar dentro da equipa.

  • Tem que manter paradigmas de HTTP. Ainda é um protocolo onde o cliente envia pedidos ao servidor através de TCP.

  • http:// and https:// URLs não podem ser alterados. Não pode haver nenhum esquema novo para isto. A quantidade de conteúdo usado por URLs é demasiado grande para esperar uma mudança.

  • Os servidores e clientes de HTTP1 vão existir algumas décadas, precisamos de fazer com que os proxies possam servir http2.

  • Subsequentemente, proxies precisam de mapear funcionalidades a clientes HTTP 1.1 uma a uma.

  • Remover ou reduzir partes opcionais do protocolo. Isto não foi realmente um requisito mas sim o mantra que veio do SPDY e da equipa da Google. Tendo a certeza que tudo é mandatório não existe uma maneira que se possa implementar tudo agora e no futuro não posa haver uma ratoeira.

  • Nenhuma versão menor. Foi decidido que os clientes e servidores são compatíveis com o http2 ou não são. Se existir a necessidade de estender o protocolo ou modificar algo, então o http3 nascerá. Não existem mais versões pequenas no http2.

5.1. http2 para esquemas existentes URI

Como já foi mencionado os esquemas URI existentes não podem ser modificados, o http2 tem que ser criado usando os existentes. Uma vez que não são usados hoje em dia no HTTP 1.x, precisamos de deixar obviamente uma maneira de poder fazer upgrade para o http2 ou pedir ao servidor para usar http2 em vez de protocolos anteriores.

HTTP 1.1 define a maneira como isto se faz, especialmente o cabeçalho Upgrade:, que permite o servidor enviar de volta uma resposta utilizando um protocolo novo quando recebe esse pedido usando um protocolo antigo. Com um custo de um round-trip.

Essa penalização de roud-trip não era algo que a equipa de SPDY pudesse aceitar, e uma vez que eles apenas implementaram SPDY sobre TLS eles desenvolveram a nova extensão de TLS que é utilizada como atalho para uma negociação muito significativamente. Usando esta extensão, chamada NPN for Next Protocol Negotiation, o servidor diz ao cliente quais os protocolos que conhece e o cliente pode então escolher o protocolo que prefere.

5.2. http2 para https://

Muito do foco do http2 foi de fazer com que este tenha um comportamento correcto sobre TLS. SPDY apenas funciona sobre TLS e existia muita pressão para que no http2 fosse também mandatório mas não se chegou a um consenso e o http2 foi lançado com o TLS como opcional. No entanto, dois implementadores mais destacados disseram claramente que iram implementar apenas o http2 sobre TLS: A iniciativa Mozilla Firefox e a iniciativa Google Chrome. Dois dos principais browsers hoje em dia.

As razões para escolher apenas-TLS incluí respeito pela privacidade do utilizador e medições precoces mostraram que os novos protocolos têm maior taxa de sucesso quando utilizam TLS. Isto deve-se à suposição que qualquer tráfico que vá através da porta 80 é HTTP 1.1 faz com que qualquer dispositivo que intercepte o tráfico possa interferir ou destruir o mesmo quando se trata de um protocolo distinto de HTTP 1.1.

O assunto de o TLS ser mandatário tem causado muito movimento e muitas vozes agitadas nas listas de correio e reuniões - é bom ou mau? É um tema infectado - tenha em conta isto se perguntares alguma coisa a um membro da HTTPbis!

De maneira similar, há um debate feroz e durador sobre se o http2 deve impor a lista de cifras que devem ser mandatórias quando se usa TLS, ou se talvez se deve-se bloquear algumas ou se não deveria ser um requisito de todo pela camada do TLS mas deixe isso para o grupo de trabalho do TLS. A especificação determinou que o TLS deveria pelo menos usar a versão 1.2 e há algumas restrições de cifras.

5.3. negociação http2 sobre TLS

Next Protocol Negotiation (NPN), é um protocolo usado para negociar SPDY com servidores TLS. Como não se tratava de um Standard, foi levado à IETF e daí surgiu a ALPN: Application Layer Protocol Negotiation. ALPN é o que tem sido promovido a ser usado com http2, enquanto os clientes de SPDY ainda usam a NPN.

O facto que a NPN existe antes da ALPN levou algum tempo até a sua estandardização e levou a muitas implementações antecedentes de clientes e servidores http2. Também, a NPN é usada para muitos servidores que usam tanto SPDY como http2, suportar tanto NPN como ALPN nesses servidores faz todo o sentido.

A principal diferença entre ALPN e NPN é quem decide o protocolo a usar. com ALPN os clientes dizem ao servidor a lista de protocolos e a sua ordem de preferencia e o servidor escolhe a que quer, enquanto no NPN o cliente faz a escolha final.

5.4. http2 para http://

Como já foi mencionado anteriormente, para HTTP 1.1 em pleno texto a forma de negociar http2 é de pedir ao servidor com um cabeçalho Upgrade:. Se o servidor falar http2 irá responder com um estado "101 Switiching" e a partir daí comunica em http2 nessa conexão. Você nota que isto é uma forma de upgrade que tem o custo de um round-trip completo, mas a vantagem é que a conexão pode ser mantida e reutilizada de maneira mais generalizada do que as conexões HTTP1

Enquanto alguns representantes de browsers declararam que não iriam implementar este modo de falar http2, a equipa do Internet Explorer comunicou que irá, assim como o curl que já suporta este modo.

PreviousAtualizando HTTPNextO protocolo http2

Last updated 5 years ago

Was this helpful?