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
  • 8.1. Как http2 повлияет на обычных людей?
  • 8.2. Как http2 повлияет на веб-разработку?
  • 8.3. http2 реализации
  • 8.3.1. Отсутствующие реализации
  • 8.4. Типичная критика http2
  • 8.4.1. “Протокол спроектирован и сделан в Google”
  • 8.4.2. “Протокол полезен только для браузеров”
  • 8.4.3. “Протокол полезен только для больших сервисов”
  • 8.4.4. “Использование TLS делает его медленным”
  • 8.4.5. “Не ASCII-протокол всё портит”
  • 8.4.6. “Он не быстрее, чем HTTP/1.1”
  • 8.4.7. “Он содержит нарушения независимости слоёв”
  • 8.4.8. “Не исправлены некоторые дефекты HTTP/1.1”
  • 8.5. Станет ли http2 широко распространён?

Was this helpful?

Export as PDF
  1. русском

Мир http2

Как всё будет выглядеть, когда http2 будет принят? Будет ли он принят?

8.1. Как http2 повлияет на обычных людей?

http2 ещё широко не представлен и не используется. Мы не можем сказать точно как всё сложится. Мы видели, как использовался SPDY и мы можем сделать некоторые предположения и вычисления, основанные на этом и на других прошлых и текущих экспериментах.

http2 уменьшает количество необходимых сетевых приёмов-передач, полностью избегает дилеммы блокировки начала очереди за счёт мультиплексирования и быстрого отклонения нежелательных потоков.

Он позволяет работать множеству параллельных потоков, число которых может превышать число соединений даже у наиболее активно использующих шардинг современных сайтов.

С приоритетами, корректно используемыми на потоках, шансы получить важные данные раньше менее важных значительно выше.

Собрав всё это вместе, я скажу, что очень высоки шансы, что это приведёт к ускорению загрузки страниц и повысит отзывчивость веб-сайтов. Коротко: лучше ощущения от веб-серфинга.

Насколько быстрее и насколько лучше мы увидим. Я не думаю, что мы пока готовы сказать. Во-первых, технология по-прежнему ещё молода, а во-вторых, мы ещё не видели аккуратных реализаций клиентов и серверов, которые по-настоящему используют всю мощь, которую предоставляет новый протокол.

8.2. Как http2 повлияет на веб-разработку?

Годами веб-разработчики и среды веб-разработки собирали полный набор приёмов и утилит для обхода проблем HTTP 1.1, некоторые из которых отмечены в начале этого документа, как причины разработки http2.

Большинство этих обходных путей, которые инструменты и разработчики теперь используют не задумываясь по умолчанию, вероятно ударят по производительности http2 или, по крайне мере, не воспользуются всеми преимуществами новой супер-силы http2. Спрайты и встраивание не должны использоваться совместно с http2. Шардинг вероятно будет вреден для http2, так как http2 выигрывает от использования меньшего числа соединений.

Проблема здесь конечно в том, что веб-разработчики должны будут разрабатывать и внедрять веб-сайты в мире, где в лучшем случае на небольшой период времени, будут как HTTP 1.1, так и http2-клиенты, и, для получения максимальной производительности всеми пользователями, будет затратно предлагать два различных варианта сайта.

Только по этой причине, я подозреваю, пройдёт какое-то время, прежде чем мы увидим полное раскрытие потенциала http2.

8.3. http2 реализации

Уже сейчас существует большое количество реализаций и их число растёт день ото дня по мере работы над http2. В то же время, на момент написания, существует больше 40 реализаций и многие из них реализуют финальную версию спецификации.

Firefox всегда был браузером в авангарде самых новейших версий черновика, Twitter продолжает предоставлять сервисы по http2. Google в апреле 2014 запустил поддержку http2 на неcкольких тестовых серверах своих сервисов, а начиная с мая 2014 они поддерживают http2 в разрабатываемой версии браузера Chrome. Microsoft представил технический пререлиз следующей версии Internet Explorer с поддержкой http2. Safari и Opera заявили, что будут поддерживать http2.

curl и libcurl поддерживают как незащищённый http2, так и поверх TLS, используя одну из нескольких TLS-библиотек.

8.3.1. Отсутствующие реализации

8.4. Типичная критика http2

В процессе разработки протокола дебаты возникали снова и снова, и, конечно, есть некоторое число людей, которые верят, что протокол получился совершенно неправильным. Я хотел бы отметить некоторые из наиболее типичных жалоб и аргументов против него:

8.4.1. “Протокол спроектирован и сделан в Google”

Есть также вариации подразумевающие, что мир ещё больше зависит и контролируется Google. Это не правда. Протокол разработан внутри IETF тем же самым способом, как протоколы разрабатывались за последние 30 лет. Однако, все мы признательны Google за бесподобную работу над SPDY, который не только доказал, что возможно внедрять новый протокол таким способом, но и помог получить оценки того, что мы можем получить.

8.4.2. “Протокол полезен только для браузеров”

В какой-то мере это так. Одна из главных причин, кроющейся за разработкой http2 – это исправление конвейерной обработки HTTP. Если в вашем случае не требовалась конвейерная обработка, то http2 не будет вам особо полезен. Это конечно не единственное достижение протокола, но самое значительное.

Как только сервисы начнут понимать всю мощь и возможности мультиплексированных потоков в одном соединении, я ожидаю, что мы увидим увеличение числа приложений, использующих http2.

Небольшие REST API и простые программные применения HTTP 1.x не получат больших преимуществ от перехода на http2. Но, тем не менее, будет совсем немного минусов для большинства пользователей.

8.4.3. “Протокол полезен только для больших сервисов”

Это совсем не так. Возможности мультиплексирования значительно улучшают работу на соединениях с большими задержками для небольших сайтов, которые как правило не имеют географического распределения. Большие сайты зачастую уже более быстры и распределены для сокращения задержек при подключении пользователей.

8.4.4. “Использование TLS делает его медленным”

http2 не обязывает использовать TLS, поэтому мы не должны смешивать термины.

Множество пользователей в Интернете выразили желание, чтобы TLS использовался более широко, и мы должны помогать защитить неприкосновенность частной жизни пользователей.

Эксперименты показали, что использование TLS повышает шансы на успех, по сравнению с реализацией протоколов с открытым текстом на 80-м порту, так как слишком много промежуточных узлов в мире, которые взаимодействуют с этим трафиком, воспринимая его как HTTP 1.1 если он идёт по 80-у порту и временами похож на HTTP.

Наконец, благодаря мультиплексированным потокам http2 по одному соединению, в привычной практике браузеров будет выполняться значительно меньше согласований и они будут работать быстрее, чем с HTTPS при использовании HTTP 1.1.

8.4.5. “Не ASCII-протокол всё портит”

Да, нам нравится идея возможности видеть протокол открыто, так как это упрощает отладку. Но текстовые протоколы гораздо более склонны к появлению ошибок и подвержены проблемам правильного синтаксического разбора.

Если вы действительно не можете принять бинарный протокол, тогда вы также не сможете принять и TLS, и сжатие в HTTP 1.x, которые существуют уже довольно длительное время.

8.4.6. “Он не быстрее, чем HTTP/1.1”

8.4.7. “Он содержит нарушения независимости слоёв”

Серьёзно, это является аргументом? Слои не являются неприкосновенными религиозными столпами и мы пересекли черты в нескольких серых областях при создании http2 в интересах создания хорошего и эффективного протокола в заданных условиях.

8.4.8. “Не исправлены некоторые дефекты HTTP/1.1”

Это правда. Из-за специфической цели поддержки HTTP/1.1 есть несколько старых HTTP особенностей, которые остались на месте. Такие как заголовки, включая ужасные Cookie, заголовки авторизации и другие. Но ценой поддержки такой парадигмы мы получаем протокол, который возможно внедрять без невероятного объёма работ, который бы потребовал переписывания фундаментальных частей. Http2, на самом деле, просто новый слой фреймов.

8.5. Станет ли http2 широко распространён?

Ещё довольно рано говорить наверняка, но я могу предположить и оценить, и это я и собираюсь сделать здесь.

Скептики скажут «смотрите как хорошо был сделан IPv6», как пример нового протокола, который потребовал десятки лет просто, чтобы хотя бы начать широко применяться. http2 – это вовсе не IPv6. Это протокол, работающий поверх TCP, использующий обычный HTTP механизм обновления, номер порта, TLS и т. д. Он вообще не потребует замены большинства маршрутизаторов и брендмауеров.

Google доказал миру с помощью своей работы над SPDY, что такой новый протокол может быть внедрён и использован браузерами и сервисами с несколькими реализациями за довольно небольшой период времени. Несмотря на то, что количество серверов в Интернете, которые сегодня предлагают SPDY в районе 1%, но количество данных, с которыми они работают значительно больше. Некоторые из наиболее популярных веб-сайтов сегодня предлагают SPDY.

http2, основанный на тех же базовых парадигмах, что и SPDY, я уверен, вероятно будет внедрён ещё активнее, так как это официальный протокол IETF. Внедрение SPDY всегда сдерживалось клеймом «это протокол Google».

За выпуском стоят несколько известных браузеров. Представители Firefox, Chrome, Safari, Internet Explorer и Opera выразили готовность выпускать браузер с поддержкой http2 и показали рабочие реализации.

Существуют и несколько серверных провайдеров, которые, вероятно, вскоре предложат http2, включая Google, Twitter и Facebook, и мы надеемся вскоре увидеть поддержку http2 добавленную в популярные реализации веб-серверов, таких как Apache HTTP Server и nginx. H2o – это новый неверятно быстрый HTTP-сервер с поддержкой http2 демонстрирует явный потенциал.

Некоторые крупные вендоры прокси-серверов, включая HAProxy, Squid и Varnish выразили намерение поддерживать http2.

В течении 2015 года количество http2 трафика росло. В начале сентября в Firefox 40 оно составляло 13% всего HTTP-трафика и 27% от всего HTTPS-трафика, в то время как Google видел примерно 18% входящего HTTP/2. Надо упомянуть, что Google также проводит эксперимент с новым протоколом (смотрите QUIC в главе 12.1), что снижает показатели использования http2 от тех значений, которые в противном случае могли быть.

PreviousРасширенияNexthttp2 в Firefox

Last updated 5 years ago

Was this helpful?

Конечно, пытаться задокументировать специфические реализации в подобном этому документах – полностью бесполезный труд, который обречён на провал и устареет за весьма короткий период времени. Вместо этого я объясню ситуацию в широком смысле и направлю читателей к на веб-сайте http2.

, и выпустили сервера с открытым исходным кодом с поддержкой http2.

Два наиболее популярных сервера Apache HTTPD и Nginx, поддерживающих SPDY, но до сих пор не представивших официльного релиза с поддержкой http2. Nginx выпустил , HTTP/2 модуль для Apache, названный , также на пути к публичному релизу «уже скоро».

Google публично , что они удалят поддержку SPDY и NPN в Chrome в 2016 году и они призывают мигрировать сервера на HTTP/2.

В некоторой степени это верно. Согласование TLS даёт небольшие накладные расходы, но уже прилагаются усилия для ещё большего уменьшения числа запросов-ответов для TLS. Расходы на выполнение TLS-шифрования, по сравнению с передачей открытым текстом, не так незначительны и явно заметны, поэтому больше процессорного времени и электричества будет потрачено на том же самом трафике, как в небезопасном протоколе. Сколько и какие последствия это будет иметь – тема для высказываний и измерений. Смотрите, например, как один из источников по теме.

Телекомы и другие сетевые операторы, например ATIS Open Web Alliance, утверждают, что им , чтобы осуществлять кэширование, сжатие и другие технологии, требуемые для быстрой работы через спутники, в самолётах и подобных системах.

Это спорный вопрос для дебатов и дискуссий о том, что значит быстрее и как это измерить, но уже сейчас, во времена SPDY, множество проведённых тестов доказали увеличившуюся скорость загрузки страниц (например людьми из университета Вашингтона и Херва Серви) и подобные эксперименты был повторены также и для http2. Ждём дальнейших публикаций подобных тестов и экспериментов. , обнадёживает, что HTTP/2 сдерживает свои обещания.

списку реализаций
H2O
Apache Traffic Server
nghttp2
«альфа патч»
mod_h2
проанонсировали
istlsfastyet.com
нужен нешифрованный трафик
«Насколько быстр SPDY?»
«Оценка производительности веб-серверов с поддержкой SPDY»
Первый базовый тест, проведёный в httpwatch.com