В списке рассылки рабочей группы IETF по развитию базовых HTTP-спецификаций началось обсуждение предложения о начале работы над стандартом HTTP/2.0 и корректировке спецификации HTTP/1.1. Если события будут развиваться в соответствии с предложенным планом, то обновлённый вариант спецификации HTTP/1.1, черновик которого уже сформирован, может быть передан отвечающей за утверждение стандартов группе IESG уже в апреле. Первый черновик HTTP/2.0 планируется подготовить в мае 2012 года, после чего отвести год на его обсуждение и корректировку, а в июле 2013 года представить спецификацию на рассмотрение IESG.
В спецификацию HTTP/1.1 планируется внести косметические изменения: в основном предлагается устранить неоднозначные трактовки спецификации HTTP 1.1, удалить устаревшие или вызывающие проблемы с совместимостью элементы и отдельно документировать свойства связанные с безопасностью, например, Basic и Digest аутентификацию, Сookies, TLS и метод CONNECT, которые уже определены в смежных RFC 2617 и 2817.
В HTTP/2.0 ожидается сохранение семантики HTTP, но уход от использования устаревшего синтаксиса и оформления сообщений в стиле HTTP/1.x. Среди ключевых задач, возложенных на HTTP/2.0 называется:
- Увеличение эффективности использования сетевых ресурсов, в частности, уход от необходимости в создании нескольких TCP-соединений;
- Значительное увеличение производительности для типичных в современной сети применений (браузеры, мобильные устройства и т.п.);
- Возможность развертывания в современном Интернет, используя IPv4 и IPv6, и не забывая о NAT;
- Упрощение развёртывания решений на базе HTTP;
- Обеспечение современных требований к безопасности;
- При подготовке спецификации также обращается внимание на необходимость учёта специфичных особенностей применения HTTP, таких как WebAPI, прокси, сети доставки контента.
В качестве претендента для использования в качестве основы HTTP/2.0 Марк Ноттингем (Mark Nottingham), руководитель рабочей группы IETF, предложил использовать протокол SPDY, созданный компанией Google и уже поддерживаемый на сайтах Google и в браузерах Chrome и Firefox. Протокол SPDY был создан специально для минимизации задержек при соединении и обмене данными между клиентом и сервером: по данным Google ускорение работы реальных сайтов при использовании SPDY составляет от 15% до 50%. Код с реализацией SPDY открыт под лицензией Apache, также доступны реализации протокола на языках Python, Go, Ruby, Java и JavaScript (node.js). Дополнительно подготовлен специальный прокси-сервер, позволяющий использовать протокол SPDY для любых сайтов.
При обслуживании соединения SPDY использует похожий на HTTP механизм взаимодействия в форме запрос/ответ. SPDY добавляет сеансовый уровень поверх SSL, что даёт возможность обеспечить передачу нескольких одновременных потоков в рамках одного TCP-соединения. При использовании HTTP запросы в рамках одного потока обслуживаются последовательно, задействование SPDY даёт возможность мультиплексировать запросы ресурсов, обрабатывать их параллельно и отправлять запросы с учетом динамически рассчитываемых приоритетов, увеличивая текущую пропускную способность. Использование SSL одновременно позволяет решить проблему с прохождением запросов через прокси серверы и позволяет организовать доставку данных по инициативе сервера, без специального запроса клиента (технология Server push). Дополнительное ускорение достигается за счёт сжатия HTTP-заголовков запроса и ответа, что уменьшает размер передаваемых данных и заметно ускоряет загрузку страниц, порождающих большое число мелких запросов (CSS, JavaScript файлы, картинки), особенно при использовании медленных каналов связи.
|