Задержавшаяся неэффективность
skin: article/incut(default)
data:
{
"_essence": "test",
"id": "6414285",
"incutNum": 1,
"repl": "<1>:{{incut1()}}",
"uid": "_uid_6417929_i_1"
}
Так что же, собственно, случилось?
Сдвинулась с мертвой точки проблема, которая тормозила развитие интернета последние пять лет и не позволяла обеспечить стремительно растущие потребности глобальной сети, несмотря на все усилия по увеличению пропускной способности каналов связи.
Речь идет о стандартах и протоколах, то есть о тех вещах, которые незаметно обеспечивают работу каналов связи, серверов, браузеров и прочего пользовательского и серверного программного обеспечения по неким единым правилам. Буквы в самом начале браузерной строки — http:// или https://, ftp:// и другие — показывают, каким образом браузер установит связь с сервером, обменяется с ним «приветственными» данными и будет затем передавать и получать информацию.
skin: article/incut(default)
data:
{
"_essence": "test",
"id": "6289085",
"incutNum": 2,
"repl": "<2>:{{incut2()}}",
"uid": "_uid_6417929_i_2"
}
Каналы связи, которые физически могли бы пропускать больше информации, используются неэффективно, что косвенно стало причиной, например, конфликта между крупнейшим американским потоковым видеосервисом Netflix и ведущими интернет-провайдерами США и привело к обсуждению проблемы сетевой нейтральности на государственном уровне.
Также это задерживает развитие мобильных сетей и сервисов, где с пропускной способностью каналов дела обстоят еще хуже.
SPDY и предложения Google
Крупнейшие интернет-корпорации задумались над этой проблемой еще в 2009 году.
skin: article/incut(default)
data:
{
"_essence": "test",
"id": "6380973.",
"incutNum": 3,
"repl": "<3>:{{incut3()}}",
"uid": "_uid_6417929_i_3"
}
Если транспортный протокол определяет, как будет доставляться пакет или некий фрагмент данных, то HTTP регулирует то, как будет формироваться этот пакет.
SPDY обладает двумя основными отличиями от HTTP/1: в нем реализовано сжатие заголовков, то есть особая упаковка данных, говорящих о том, откуда этот пакет, кому предназначен, что содержит и как должен обрабатываться, которая позволяет экономить место, а также мультиплексирование, или одновременная упаковка разных типов данных и нескольких запросов в один пакет.
Это как если бы в почтовый конверт положили не один листок с текстом, а несколько писем для разных людей, фотографию и видеопленку, при этом надписывать адрес, наклеивать марку и идти на почту пришлось бы только один раз.
skin: article/incut(default)
data:
{
"_essence": "test",
"id": "6380973",
"incutNum": 4,
"repl": "<4>:{{incut4()}}",
"uid": "_uid_6417929_i_4"
}
Инженеры, которые работали над SPDY — Майк Белше и Роберто Пеон, принесли его в рабочую группу по HTTP и предложили создать на его основе стандарт, который должен был прийти на замену HTTP/1.1.
Власть стандартов
Почему же для стандартизации столь эффективного решения потребовалось столько времени? Марк Ноттингем в своем блоге рассказывает, какая непростая задача — принятие нового стандарта.
Дело в том, что у разных участников интернет-сообщества свое видение того, как должны развиваться технологии и рынок, между ними идет постоянная борьба за то, чей продукт получит лидерство. У бизнеса, государства, телекоммуникационных и интернет-компаний разные цели и задачи.
skin: article/incut(default)
data:
{
"_essence": "test",
"id": "6411653",
"incutNum": 5,
"repl": "<5>:{{incut5()}}",
"uid": "_uid_6417929_i_5"
}
Достижение консенсуса по новому протоколу, сбор и обработка всех мнений и возражений и выработка единого решения — это задача, которая требует огромных усилий волонтеров и много времени.
Сноуден и морковка
Именно с этим моментом была связана самая большая дискуссия внутри рабочей группы по HTTP и за ее пределами, которая касалась безусловного внедрения шифрования на основе TSL в новый протокол HTTP/2.
Майк Белше, большой фанат криптографии, настаивал на том, чтобы использовать скоростные преимущества HTTP/2 как «морковку», стимулирующую повсеместное введение шифрования и увеличение безопасности интернета.
То, что необходимость этого назрела, специалистам было понятно уже тогда.
skin: article/incut(default)
data:
{
"_essence": "test",
"id": "6412429",
"incutNum": 6,
"repl": "<6>:{{incut6()}}",
"uid": "_uid_6417929_i_6"
}
Однако крупные игроки сетевого рынка, такие как операторы сетей и поставщики услуг прокси-серверов, были резко против. Поэтому Марк Ноттингем принял решение сделать поддержку TSL-шифрования необязательной.
Возможно, участники группы понимали, что в этом случае стандарт не получит поддержку также и от правительств многих государств — как напрямую, так и опосредованно через крупных участников рынка.
Однако Firefox и Chrome, за которыми стоят игроки, придерживающиеся противоположного мнения и благополучие которых зависит от доверия их пользователей по всему миру, уже заявили, что не будут поддерживать вариант протокола без шифрования.
Так или иначе, описание протокола HTTP/2 отправлено в редактор RFC (Request for Comments — «Запрос на комментарии»), скоро получит соответствующий номер и будет опубликовано в качестве стандарта. Да, потребуется несколько лет, прежде чем он будет внедрен повсеместно, но теперь от более быстрого и безопасного интернета нас отделяет только время.