С омерзением дочитал драфт по 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.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:
- Andrew Zubinski, 2013-07-28T19:15:25.420Z
ты не переживай, с udp всё это будет, ггг, где-то мне давеча пробегало всё почти это же, но поверх udp.
Permalink: https://plus.google.com/115290581164606462017/posts/e3z3LGTL88P