LINUX.ORG.RU
ФорумTalks

Cобсеседованиями собеседуй собеседник HTTP 1, 2, 3 QUIC

 , , , ,


0

2

Что спрашивают на собеседованиях?

На собеседованиях спрашивают про разницу протоколов HTTP разных версий. Ну давайте не будем разговаривать про UDP/TCP это и так большниство знает, что UDP не дает гарантий ни для последовательнсоти и ни для доставки, а вот с HTTP?

Вот так, если сходу «Опа, Гоп Стоп!» Вчем разница?

  • HTTP создает соденинение на каждый запрос.
  • HTTP 2 уже вроде как может качать все ресурсы по одному соедению.
  • HTTP 3 основан на новом протокол QUIC который основан на UDP.

А теперь мои дороиге друзья ответы от ByteByteGo и лично от Alex Xu.

Проверил себя сам, проверьте себя и вы.

UPD:

Работа над ошибками:

  • HTTP 1 TCP соединение на отправку каждого ресурса, текстовый протокол.
  • HTTP 1.1 постоянное TCP содинение, возможность отсылать множество запросов, ответы приходят последовательно. Пока не пришел ответ на запрос №1, ответы на запрос №2, №3 и №4 не придут. Также текстовый проткол.
  • HTTP 2 протокол бинарный, также существует на постоянном TCP соединение, создана концепция стримов: параллельная загрузка ресурсов в рамках одного TCP соденинения.
  • HTTP 3 бинарнаый проткол на QUIC, потоки уже реализованы на уровне UDP. Сам QUIC расшифровывается «Quick UDP Internet Connection», является UDP с встроенным TLS.


Последнее исправление: lbvf50txt (всего исправлений: 7)
Ответ на: комментарий от lbvf50txt

Не разберется без досконально изученного фундамента. Сам я «парень от сохи», начинал с поверхностного ознакомления с фреймворками. И эти сказки про «99% не нужно» мне не нравятся, они лживые и вредные.

В скольки серверах настраивал QUIC специально?

Это никакие не азы, это специфичный нюанс работы веб сервера (как включение и выключение TLS 1.3 в современных реалиях).

Не нужно рассказывать сказки, в разработке с QUIC можно столкнуться в очень специфических условиях. Эта штука которая работает в окружении, а не в веб сервере в подавляющем большинстве случаев.

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

В скольки серверах настраивал QUIC специально?

Вы передергиваете. В треде описываются базовые определения по версиям протокола HTTP. Вы ведете разговор так, как-будто программиста просят начерить cхему UDP дейтограммы побайтно.

lbvf50txt
() автор топика
Ответ на: комментарий от Norgat

Не нужно рассказывать сказки, в разработке с QUIC можно столкнуться в очень специфических условиях.

Точно также как и TCP, надеюсь вы не будете спорить, что понимание стека TCP/IP необходимо бекендеру.

lbvf50txt
() автор топика
Ответ на: комментарий от lbvf50txt

Точно также как и TCP, надеюсь вы не будете спорить, что понимание стека TCP/IP необходимо бекендеру.

Всё зависит от того, что подразумевается под бэкендером, имхо в большинстве случаев это не нужно.

anc ★★★★★
()
Ответ на: комментарий от anc

Всё зависит от того, что подразумевается под бэкендером

Бэкенд - это когда сзади…

seiken ★★★★★
()
Ответ на: комментарий от Norgat

как включение и выключение TLS 1.3 в современных реалиях

выключение TLS 1.3

кто-то застрял в доковидных временах. срочно выйди вон из профессии. по факту, это единственное что должно быть включено и на постоянку.

n_play
()
Ответ на: комментарий от lbvf50txt

а до какой глубины понимание стека необходимо? вопросы о том чем FIN_WAIT отличается от CLOSE_WAIT? или спросить что такое MTU и что за поле window у TCP пакетика? или про https://en.wikipedia.org/wiki/Nagle's_algorithm и когда нужно его отключать.

ведь на самом деле ничего из этого не нужно, особенно для случая:

понимание стека TCP/IP необходимо бекендеру.

все что необходимо и требуется знать: так это лишь одну мантру «tcp гарантирует доставку сообщений побайтово, ровно в том же порядке байт за байтом».

все остальные нюансы, про машину состояний и прочее, это голимый boilerplate кодец, который никто никогда руками не пишет и не видит (и уж тем более никто не готов из головы высрать на доску) и обычно не разрабатывает. для этого есть библиотеки. зачем такое воообще пытаться спрашивать?

n_play
()
Ответ на: комментарий от n_play

серьёзный вопрос:

человек могущий жонглировать 4 предметами это в плюс или в минус ?

qulinxao3 ★☆
()
Ответ на: комментарий от n_play

а до какой глубины понимание стека необходимо?

Глубина понимания стека зависит от ваших целей. Данный вопрос взят из собеседований на должность Golang разработчика. Так как Golang используется для написания высоконагруженных сервисов то от разработчика требуется более детальное понимание устройства HTTP протокола.

В приложениях Golang зачастую нет разделения на отдельный HTTP сервер к которому пишется приложение как на PHP/Ruby, а сервер с механизмом роутинга прописывается сразу в приложении.

все что необходимо и требуется знать: так это лишь одну мантру «tcp гарантирует доставку сообщений побайтово, ровно в том же порядке байт за байтом».

Вы правы: этот тезис желательно знать всем IT специалистам, не будет лишним даже для менеджерского состава. Но он поверхностный и не достаточен для системных программистов, системных администраторов, высококласcных back end разработчиков.

lbvf50txt
() автор топика
Последнее исправление: lbvf50txt (всего исправлений: 2)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)