HTTP/2.0 получил статус предложенного стандарта

Комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры Интернет, придал спецификации HTTP/2.0 статус «Предложенного стандарта», а также приступил к формированию отдельных RFC для протокола HTTP/2.0 и формата сжатия заголовков HPACK. Работу над RFC планируется завершить через 6–8 недель. Следующей стадией станет придание RFC статуса чернового стандарта (Draft Standard), фактически означающего полную стабилизацию протокола и учёт всех высказанных замечаний. Следует отметить, что в настоящее время на стадии чернового стандарта находятся большинство протоколов сети, и лишь единицы после многих лет существования достигают наивысшего статуса — стандарт Интернета (статус стандарта получили около 70 RFC).

Основной задачей создания HTTP/2.0 является повышение эффективности использования сетевых ресурсов и снижение задержек при соединении и обмене данными между клиентом и сервером, в условиях изменившихся современных реалий, при которых для загрузки сайта требуется отправить множество отдельных запросов, связанных с получением CSS, файлов JavaScript и картинок. Протокол HTTP/1.1, в силу конвейерной передачи данных и высоких накладных расходов на отдачу ресурсов небольшого размера, не может обеспечить должную эффективность и вынуждает устанавливать несколько одновременных TCP-соединений к серверу. В основу HTTP/2.0 положен протокол SPDY, разработанный компанией Google и позволяющий ускорить загрузку сайтов на 15–50%.

Основные особенности (PDF) HTTP/2.0:

Применение бинарного протокола передачи данных; Мультиплексирование и распараллеливание потоков в рамках одного TCP-соединения. В отличие от SPDY, в HTTP/2.0 реализована возможность мультиплексирования при обращении к разным хостам, что позволило дополнительно ускорить одновременную загрузку web-контента с разных сайтов; Сжатие HTTP-заголовков; Приоритизация потоков; Эффективная двунаправленная передача данных; Средства для согласования протокола между клиентом и сервером, позволяющие выбрать HTTP/1.1, HTTP/2.0 и другие протоколы, в зависимости от их поддержки клиентом и сервером; Обеспечение высокого уровня совместимости с HTTP/1.1: сохранены заголовки, схема URI, коды состояния и методы (GET, POST и т.п.); Возможность установки шифрованных (HTTPS) и не шифрованных соединений (HTTP). Шифрование осуществляется с использованием TLS 1.2 или более новой версии. Поддержка технологии Server push для передачи данных от сервера к клиенту; Поддержка HTTP/2.0 уже реализована в браузерах Firefox 36+, Chrome (требуется сборка с »--enable-spdy4») и IE 11. Серверные реализации пока ограничиваются OpenLiteSpeed, H2O, nghttp2 и некоторыми библиотеками на высокоуровневых языках.

©  OpenNet