HTTP/2

Поделись знанием:
Перейти к: навигация, поиск
HTTP
Постоянное соединение · Сжатие · HTTPS
Методы
OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH
Заголовки
Cookie · ETag · Location · Referer
DNT · X-Forwarded-For
Коды состояния
301 Moved permanently
302 Found
303 See Other
403 Forbidden
404 Not Found
451 Unavailable for Legal Reasons

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 2616 в 1999. Рабочая группа представила протокол 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]

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

По данным W3Techs 8,6 % всех веб-сайтов поддерживают протокол HTTP/2 (июль 2016).[12]





Цели

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

Отличия от HTTP 1.1

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

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

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

Шифрование

HTTP/2 определен как для HTTP URI (то есть без шифрования), так и для HTTPS URI (поверх TLS 1.2 и выше).

Хотя стандарт определяет шифрование как не обязательное[13], для большинства клиентских реализаций (Firefox[14], Chrome, Safari, Opera, IE, Edge) возможно использование HTTP/2 только поверх TLS.

Поддержка

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

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

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

См. также

Напишите отзыв о статье "HTTP/2"

Примечания

  1. Bright, Peter. [arstechnica.com/information-technology/2015/02/http2-finished-coming-to-browsers-within-weeks/ HTTP/2 finished, coming to browsers within weeks]. Ars Technica (Feb 18, 2015).
  2. [tools.ietf.org/html/draft-ietf-httpbis-http2-16 Hypertext Transfer Protocol version 2 - draft-ietf-httpbis-http2-16]. HTTPbis Working Group. Проверено 11 февраля 2015.
  3. [datatracker.ietf.org/wg/httpbis/charter/ Hypertext Transfer Protocol Bis (httpbis) - Charter]. Internet Engineering Task Force (2012).
  4. [datatracker.ietf.org/doc/draft-ietf-httpbis-http2/history/#history-404477 History for draft-ietf-httpbis-http2-16]. IETF. — «"2014-12-16 IESG state changed to Publication Requested"»  Проверено 3 января 2015.
  5. Raymor, Brian. [msopentech.com/blog/2014/08/06/wait-for-it-http2-begins-working-group-last-call/ Wait for it – HTTP/2 begins Working Group Last Call!]. Microsoft Open Technologies (August 7, 2014). Проверено 7 сентября 2014.
  6. The IESG. [lists.w3.org/Archives/Public/ietf-http-wg/2015JanMar/0478.html Protocol Action: 'Hypertext Transfer Protocol version 2' to Proposed Standard (draft-ietf-httpbis-http2-17.txt)]. Список рассылки httpbis (February 17, 2015). Проверено 18 февраля 2015.
  7. Mark Nottingham. [www.ietf.org/blog/2015/02/http2-approved/ HTTP/2 Approved]. Internet Engineering Task Force (February 18, 2015). Проверено 8 марта 2015.
  8. [tools.ietf.org/html/rfc7540 RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]. IETF (May 2015). Проверено 14 мая 2015.
  9. Sebastian Anthony. [www.extremetech.com/computing/124153-sm-vs-spdy-microsoft-and-google-battle-over-the-future-of-http-2-0 S&M vs. SPDY: Microsoft and Google battle over the future of HTTP 2.0]. ExtremeTech (March 28, 2012).
  10. [blog.restlet.com/2011/10/06/can-the-rise-of-spdy-threaten-http/ Can the rise of SPDY threaten HTTP?]. Restlet, Inc. (October 2011).
  11. [blog.chromium.org/2015/02/hello-http2-goodbye-spdy-http-is_9.html Chromium Blog: Hello HTTP/2, Goodbye SPDY]
  12. [w3techs.com/technologies/details/ce-http2/all/all Usage of HTTP/2 for websites]. W3Techs (July 2016).
  13. [http2.github.io/faq/#does-http2-require-encryption HTTP/2 Frequently Asked Questions]. http2.github.io. Проверено 12 февраля 2016.
  14. [wiki.mozilla.org/Networking/http2 Networking/http2 - MozillaWiki]. wiki.mozilla.org. Проверено 12 февраля 2016.
  15. 1 2 [github.com/http2/http2-spec/wiki/Implementations Implementations - http2]. Проверено 12 декабря 2015.
  16. Nottingham, Mark. [www.mnot.net/blog/2014/01/04/strengthening_http_a_personal_view Strengthening HTTP: A Personal View] (January 4, 2014). Проверено 8 октября 2014. (section «Enter Snowden»)
  17. [bugzilla.mozilla.org/show_bug.cgi?id=1097320 Bug 1097320]. Bugzilla@Mozilla (26 ноября 2014). Проверено 24 января 2015.
  18. Patrick McManus. [bugzilla.mozilla.org/show_bug.cgi?id=1047594#c22 Bug 1047594 - Enable http/2 (and alpn) by default]. Bugzilla@Mozilla (3 октября 2014). Проверено 8 октября 2014.
  19. [www.mozilla.org/en-US/firefox/34.0.5/releasenotes/#note-785748 Firefox Notes (34.0.5)]. Mozilla (1 декабря 2014). Проверено 2 декабря 2014.
  20. MozillaWiki. [wiki.mozilla.org/Networking/http2 «Networking/http2»]
  21. Rob Trace, David Walp. [blogs.msdn.com/b/ie/archive/2014/10/08/http-2-the-long-awaited-sequel.aspx HTTP/2: The Long-Awaited Sequel]. Microsoft (October 8, 2014). Проверено 8 октября 2014.
  22. [blogs.msdn.com/b/ie/archive/2014/10/08/http-2-the-long-awaited-sequel.aspx HTTP/2: The Long-Awaited Sequel]. MSDN IEBlog. Microsoft Corporation (October 8, 2014).
  23. [www.apache.org/dist/httpd/Announcement2.4.html HTTP/2 support via mod_http2 module]. Проверено 15 октября 2015.
  24. [www.nginx.com/blog/nginx-1-9-5/ NGINX Open Source 1.9.5 Released with HTTP/2 Support].

Ссылки

  • [http2.github.io/ HTTP/2], home page for HTTP/2 // IETF HTTP Working Group  (англ.)
  • [http2.github.io/faq/ HTTP/2 Frequently Asked Questions], home page for HTTP/2 // IETF HTTP Working Group  (англ.)
Спецификации
  • RFC 7540 – Hypertext Transfer Protocol version 2 (HTTP/2)
  • RFC 7541 – HPACK: Header Compression for HTTP/2

Отрывок, характеризующий HTTP/2

С 28 по 31 августа вся Москва была в хлопотах и движении. Каждый день в Дорогомиловскую заставу ввозили и развозили по Москве тысячи раненых в Бородинском сражении, и тысячи подвод, с жителями и имуществом, выезжали в другие заставы. Несмотря на афишки Растопчина, или независимо от них, или вследствие их, самые противоречащие и странные новости передавались по городу. Кто говорил о том, что не велено никому выезжать; кто, напротив, рассказывал, что подняли все иконы из церквей и что всех высылают насильно; кто говорил, что было еще сраженье после Бородинского, в котором разбиты французы; кто говорил, напротив, что все русское войско уничтожено; кто говорил о московском ополчении, которое пойдет с духовенством впереди на Три Горы; кто потихоньку рассказывал, что Августину не ведено выезжать, что пойманы изменники, что мужики бунтуют и грабят тех, кто выезжает, и т. п., и т. п. Но это только говорили, а в сущности, и те, которые ехали, и те, которые оставались (несмотря на то, что еще не было совета в Филях, на котором решено было оставить Москву), – все чувствовали, хотя и не выказывали этого, что Москва непременно сдана будет и что надо как можно скорее убираться самим и спасать свое имущество. Чувствовалось, что все вдруг должно разорваться и измениться, но до 1 го числа ничто еще не изменялось. Как преступник, которого ведут на казнь, знает, что вот вот он должен погибнуть, но все еще приглядывается вокруг себя и поправляет дурно надетую шапку, так и Москва невольно продолжала свою обычную жизнь, хотя знала, что близко то время погибели, когда разорвутся все те условные отношения жизни, которым привыкли покоряться.
В продолжение этих трех дней, предшествовавших пленению Москвы, все семейство Ростовых находилось в различных житейских хлопотах. Глава семейства, граф Илья Андреич, беспрестанно ездил по городу, собирая со всех сторон ходившие слухи, и дома делал общие поверхностные и торопливые распоряжения о приготовлениях к отъезду.
Графиня следила за уборкой вещей, всем была недовольна и ходила за беспрестанно убегавшим от нее Петей, ревнуя его к Наташе, с которой он проводил все время. Соня одна распоряжалась практической стороной дела: укладываньем вещей. Но Соня была особенно грустна и молчалива все это последнее время. Письмо Nicolas, в котором он упоминал о княжне Марье, вызвало в ее присутствии радостные рассуждения графини о том, как во встрече княжны Марьи с Nicolas она видела промысл божий.
– Я никогда не радовалась тогда, – сказала графиня, – когда Болконский был женихом Наташи, а я всегда желала, и у меня есть предчувствие, что Николинька женится на княжне. И как бы это хорошо было!
Соня чувствовала, что это была правда, что единственная возможность поправления дел Ростовых была женитьба на богатой и что княжна была хорошая партия. Но ей было это очень горько. Несмотря на свое горе или, может быть, именно вследствие своего горя, она на себя взяла все трудные заботы распоряжений об уборке и укладке вещей и целые дни была занята. Граф и графиня обращались к ней, когда им что нибудь нужно было приказывать. Петя и Наташа, напротив, не только не помогали родителям, но большею частью всем в доме надоедали и мешали. И целый день почти слышны были в доме их беготня, крики и беспричинный хохот. Они смеялись и радовались вовсе не оттого, что была причина их смеху; но им на душе было радостно и весело, и потому все, что ни случалось, было для них причиной радости и смеха. Пете было весело оттого, что, уехав из дома мальчиком, он вернулся (как ему говорили все) молодцом мужчиной; весело было оттого, что он дома, оттого, что он из Белой Церкви, где не скоро была надежда попасть в сраженье, попал в Москву, где на днях будут драться; и главное, весело оттого, что Наташа, настроению духа которой он всегда покорялся, была весела. Наташа же была весела потому, что она слишком долго была грустна, и теперь ничто не напоминало ей причину ее грусти, и она была здорова. Еще она была весела потому, что был человек, который ею восхищался (восхищение других была та мазь колес, которая была необходима для того, чтоб ее машина совершенно свободно двигалась), и Петя восхищался ею. Главное же, веселы они были потому, что война была под Москвой, что будут сражаться у заставы, что раздают оружие, что все бегут, уезжают куда то, что вообще происходит что то необычайное, что всегда радостно для человека, в особенности для молодого.


31 го августа, в субботу, в доме Ростовых все казалось перевернутым вверх дном. Все двери были растворены, вся мебель вынесена или переставлена, зеркала, картины сняты. В комнатах стояли сундуки, валялось сено, оберточная бумага и веревки. Мужики и дворовые, выносившие вещи, тяжелыми шагами ходили по паркету. На дворе теснились мужицкие телеги, некоторые уже уложенные верхом и увязанные, некоторые еще пустые.
Голоса и шаги огромной дворни и приехавших с подводами мужиков звучали, перекликиваясь, на дворе и в доме. Граф с утра выехал куда то. Графиня, у которой разболелась голова от суеты и шума, лежала в новой диванной с уксусными повязками на голове. Пети не было дома (он пошел к товарищу, с которым намеревался из ополченцев перейти в действующую армию). Соня присутствовала в зале при укладке хрусталя и фарфора. Наташа сидела в своей разоренной комнате на полу, между разбросанными платьями, лентами, шарфами, и, неподвижно глядя на пол, держала в руках старое бальное платье, то самое (уже старое по моде) платье, в котором она в первый раз была на петербургском бале.
Наташе совестно было ничего не делать в доме, тогда как все были так заняты, и она несколько раз с утра еще пробовала приняться за дело; но душа ее не лежала к этому делу; а она не могла и не умела делать что нибудь не от всей души, не изо всех своих сил. Она постояла над Соней при укладке фарфора, хотела помочь, но тотчас же бросила и пошла к себе укладывать свои вещи. Сначала ее веселило то, что она раздавала свои платья и ленты горничным, но потом, когда остальные все таки надо было укладывать, ей это показалось скучным.
– Дуняша, ты уложишь, голубушка? Да? Да?
И когда Дуняша охотно обещалась ей все сделать, Наташа села на пол, взяла в руки старое бальное платье и задумалась совсем не о том, что бы должно было занимать ее теперь. Из задумчивости, в которой находилась Наташа, вывел ее говор девушек в соседней девичьей и звуки их поспешных шагов из девичьей на заднее крыльцо. Наташа встала и посмотрела в окно. На улице остановился огромный поезд раненых.
Девушки, лакеи, ключница, няня, повар, кучера, форейторы, поваренки стояли у ворот, глядя на раненых.