HTTP/2

Материал из ТХАБ.РФ
Перейти к: навигация, поиск

HTTP/2 (изначально HTTP/2.0) — вторая крупная версия сетевого протокола HTTP, используемая для доступа к World Wide Web. Протокол основан на SPDY.[1] HTTP/2[2] был разработан рабочей группой Hypertext Transfer Protocol working group (httpbis, где bis означает «еще раз», «повторно», «на бис») из Internet Engineering Task Force.[3] HTTP/2 является первой новой версией HTTP с версии HTTP 1.1, которая была стандартизирована RFC 2068 в 1997. Рабочая группа представила протокол HTTP/2 на рассмотрение IESG как Proposed Standard в декабре 2014[4][5] и IESG утвердила его к публикации как Proposed Standard 17 февраля 2015.[6][7] Спецификация HTTP/2 была опубликованна как RFC 7540 в мае 2015.[8]

Усилия по стандартизации являются ответом на разработку SPDY — HTTP совместимый протокол, разработанный Google[9] и поддерживаемый браузерами Chrome, Opera, Firefox, Internet Explorer 11, Safari и Amazon Silk.[10]

По данным W3Techs 2,3% всех веб сайтов поддерживают протокол HTTP/2 (ноябрь 2015).[11]

Цели

  • Добавить механизмы согласования протокола, клиент и сервер могут использовать HTTP 1.1, 2.0, или, гипотетически, иные, не HTTP протоколы.
  • Поддержать совместимость с многими концепциями HTTP 1.1, например по набору методов доступа (GET, PUT, POST и т.п.), статусным кодам, формату URI, большому количеству заголовков
  • Уменьшение задержек доступа для ускорения загрузки страниц, в частности путем:Decrease latency to improve page ** Сжатия данных в заголовках HTTP
    • Использования push-технологий на серверной стороне
    • Конвейеризация запросов
    • Устранения проблемы блокировки "head-of-line" протоколов HTTP 1/1.1
    • Мультиплексирование множества запросов в одном соединении TCP
  • Сохранение совместимости с широко внедренными применениями HTTP, в том числе с веб-браузерами (полноценными и мобильными), API, используемых в Интернете, веб-серверами, прокси-серверами, обратными прокси-серверами, сетями доставки контента

Отличия от HTTP 1.1

Протокол HTTP/2 является бинарным. По сравнению с предыдущем стандартом изменены способы разбития данных на фрагменты и транспортирования их между сервером и клиентом.

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

Также часть улучшений получена (в первом черновике HTTP/2, который представлял собой копию спецификации SPDY) за счет мультиплексирования запросов и ответов для преодоления проблемы "head-of-line blocking" протоколов HTTP 1; сжатия передаваемых заголовков и введения явной приоритизации запросов.

Отличия от SPDY

9 Февраля 2015 года, Google объявила о планах прекратить поддержку SPDY в Chrome в начале 2016 года, в пользу HTTP/2 (Chrome 40+)[12].

Шифрование

Критика

Поддержка

Популярные веб-браузеры, в основном, поддерживают HTTP/2 с конца 2015 года[13]:

  • Chrome и другие, основанные на Chromium/Blink поддерживает HTTP/2. По состоянию на начало 2014 года поддерживается только режим HTTP/2 поверх TLS.[14]
  • Chrome for iOS поддерживает HTTP/2.
  • Firefox поддерживает HTTP/2 с версии 36.[15] Экспериментальная поддержка HTTP/2 была изначально обеспечена в версии 34.[16][17] Поддерживается только режим HTTP/2 поверх TLS.[18]
  • Internet Explorer поддерживает HTTP/2 с версии 11, но только для Windows 10. Поддерживается только режим HTTP/2 поверх TLS.[19]
  • Microsoft Edge поддерживает HTTP/2.
  • Opera, как основанный на Chromium/Blink, поддерживает HTTP/2 с начала 2014 года.
  • Safari 9 поддерживает HTTP/2.

Поддержка веб-серверами[13]:

Примечания

Ошибка цитирования Ошибочный тег <references>; можно использовать только параметр group.

Используйте <references /> или <references group="…" />
{{#invoke: Check for unknown parameters | check

| unknown = | preview = Страница использует Шаблон:Примечания с неизвестным параметром «_VALUE_» | ignoreblank = y | 1 | colwidth | group | liststyle | refs }}

См. также

Ссылки

Шаблон:URI scheme Шаблон:IPstack Шаблон:Веб и веб-сайты Шаблон:Семантическая паутина

Шаблон:Info-stub
  1. {{#invoke:String|replace|source=Bright, Peter|pattern=^(%[*)(.-[^%.%]])(%]*)$|replace=%1%2%3.|plain=false}} HTTP/2 finished, coming to browsers within weeks. Ars Technica (Feb 18, 2015).{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  2. Hypertext Transfer Protocol version 2 - draft-ietf-httpbis-http2-16. ietf.org. HTTPbis Working Group. Дата обращения 11 февраля 2015.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  3. Hypertext Transfer Protocol Bis (httpbis) - Charter. Internet Engineering Task Force (2012).{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  4. History for draft-ietf-httpbis-http2-16. IETF. — «"2014-12-16 IESG state changed to Publication Requested"». Дата обращения 3 января 2015.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  5. {{#invoke:String|replace|source=Raymor, Brian|pattern=^(%[*)(.-[^%.%]])(%]*)$|replace=%1%2%3.|plain=false}} Wait for it – HTTP/2 begins Working Group Last Call!. Microsoft Open Technologies (August 7, 2014). Дата обращения 7 сентября 2014.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  6. Шаблон:Cite mailing list
  7. {{#invoke:String|replace|source=Mark Nottingham|pattern=^(%[*)(.-[^%.%]])(%]*)$|replace=%1%2%3.|plain=false}} HTTP/2 Approved. www.ietf.org. Internet Engineering Task Force (February 18, 2015). Дата обращения 8 марта 2015.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  8. RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2). IETF (May 2015). Дата обращения 14 мая 2015.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  9. {{#invoke:String|replace|source=Sebastian Anthony|pattern=^(%[*)(.-[^%.%]])(%]*)$|replace=%1%2%3.|plain=false}} S&M vs. SPDY: Microsoft and Google battle over the future of HTTP 2.0. ExtremeTech (March 28, 2012).{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  10. Can the rise of SPDY threaten HTTP?. blog.restlet.com. Restlet, Inc. (October 2011).{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  11. Usage of HTTP/2 for websites. W3Techs (November 2015).{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  12. http://blog.chromium.org/2015/02/hello-http2-goodbye-spdy-http-is_9.html
  13. 13,0 13,1 Шаблон:Error {{{title}}}. Дата обращения 12 декабря 2015.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  14. {{#invoke:String|replace|source=Nottingham, Mark|pattern=^(%[*)(.-[^%.%]])(%]*)$|replace=%1%2%3.|plain=false}} Strengthening HTTP: A Personal View (January 4, 2014). Дата обращения 8 октября 2014.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}} (section "Enter Snowden")
  15. Bug 1097320. Bugzilla@Mozilla (2014-11-26). Дата обращения 24 января 2015.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  16. {{#invoke:String|replace|source=Patrick McManus|pattern=^(%[*)(.-[^%.%]])(%]*)$|replace=%1%2%3.|plain=false}} Bug 1047594 - Enable http/2 (and alpn) by default. Bugzilla@Mozilla (2014-10-03). Дата обращения 8 октября 2014.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  17. Firefox Notes (34.0.5). Mozilla (2014-12-01). Дата обращения 2 декабря 2014.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  18. Ошибка цитирования Неверный тег <ref>; для сносок mozillawiki не указан текст
  19. {{#invoke:String|replace|source=Rob Trace, David Walp|pattern=^(%[*)(.-[^%.%]])(%]*)$|replace=%1%2%3.|plain=false}} HTTP/2: The Long-Awaited Sequel. Microsoft (October 8, 2014). Дата обращения 8 октября 2014.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  20. HTTP/2: The Long-Awaited Sequel. MSDN IEBlog. Microsoft Corporation (October 8, 2014).{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  21. HTTP/2 support via mod_http2 module. Дата обращения 15 октября 2015.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}
  22. NGINX Open Source 1.9.5 Released with HTTP/2 Support. www.nginx.com.{{#invoke:check for unknown parameters|check |unknown= |preview=В шаблоне «cite web» обнаружен параметр «_VALUE_», пожалуйста, исправьте его или удалите. |showblankpositional=1 |url|title|author|first|last|authorlink|coauthors|editor|subtitle|quote|description|date|format|website|pages|location|publisher|lang|doi|deadlink|accessdate|archiveurl|archivedate|ref|work|language|datepublished}}