Jul. 28th, 2013

henry_flower: A melancholy wolf (Default)
С омерзением дочитал драфт по http/2.0. Эта одна из приятных гоогловских бумажек, читая которую, нужно заставлять себя вести мирно и никого не трогать рядом.

Мы все игнорировали, игнорировали спиди и доигнорировались. Через 1.5 года, эта хрень (подрубленный спиди) будет повсюду. Ахи и восторги, как можно догадаться, доносятся, в основном, из недр гоогла.

Лично я в восторге от всего, начиная от установления соединения всего в 4 этапа и заканчивая даром богов--фреймами push_promise.

В http/2.0, как и в спиди, соединение рекомендуется создавать 1 и делить на n стримс. Стримс короткоживущие: после риквеста от клиента, стрим переходит в half close на стороне клиента, сервер отвечает по этому же стриму и закрывает его (стрим) навсегда.

У каждого стрима есть айди, который увеличивается на 1 при создании следующего. Жизнерадостная деталь: когда 31-битовое целое подходит к концу, с 0 начинать нельзя, нужно рвать рвать соединение и создавать его заново.

Запросы и ответы упаковываются во фреймы. Обычный post превращается во фрейм headers и фрейм data. Попробуйте написать это в телнете, ггг.

Самый многообещающий фрейм--push_promise. Вася невинно посылает фрейм headers, желая получить файл boobs.html, а сервер плюется push_promise'ом с айди будущего стрима, по которому вася, вовсе не ожидая этого, получит data фреймы картинок. Посылать следующий фрейм headers на картинку из boobs.html, пока data фреймы идут--нельзя (с этим строго). Все что вася может сделать это вовремя успеть гавкнуть фреймом rst_stream.

Предвижу хаки с фреймом settings, где максимальное количество стримс будет стоять 0, запрещая server push совсем. Будет медленно и печально, зато "под контролем"; снговским должно понравится.

Вообще напрасно для http/2.0 оставили tcp. Раз есть фреймы goaway, ping и window_update (это не шутка), есть склеивание цепочек фреймов headers, тогда нужно было брать udp, добавлять ack и ретрансмиссию. Было бы элегантно, современно и еще шикарнее смотрелось в резюме.

Инженер на пати:

"Ого! А что вы делаете в [famous_company_name]?", спрашивает девочка.

"Эээ, гм."

Большие моргающие глаза ждут.

"Ну... я пишу внутренние сервисы. У нас огромные базы данных для майнинга и..."

"Вау, круто!!", отвечает девочка и уходит.

А теперь ведь совсем другое дело!

"Ого! А что вы делаете в [famous_company_name]?", спрашивает девочка.

"Новый интернет протокол для веб."

"Интернет пр..."

"Да, для фейсбука, амазона, пинтереста, всех-всех-всех."
Comments:
  1. Andrew Zubinski, 2013-07-28T19:15:25.420Z

    ты не переживай, с udp всё это будет, ггг, где-то мне давеча пробегало всё почти это же, но поверх udp.


Permalink: https://plus.google.com/115290581164606462017/posts/e3z3LGTL88P

June 2025

M T W T F S S
      1
2345678
91011 12131415
16171819202122
23242526272829
30      

Expand Cut Tags

No cut tags