Вопрос звучал так:
Какие есть версии HTTP и в чем их отличия?
Как СА я постоянно описываю интеграции, и не знал, что в первой версии HTTP был только метод GET, HTTP 1.1 используется более 15 лет, а HTTP 3 вышел недавно и активно внедряется 😱
Разберем версии HTTP на примере курьера
🤍 HTTP/0.9 (1991 г.)
Такого курьера вы бы не вызвали – он может привозить только одну вещь, и то без упаковки. После доставки сразу исчезает – и даже не предъявишь, если что-то пошло не так 😡
В базовой HTTP/0.9:
🤍Только метод GET
🤍Никаких заголовков, метаданных, кодов состояний
🤍По запросу приходил голый текст HTML
🤍Соединение сразу разрывалось
🤍 HTTP/1.0 (1996 г)
Этот курьер уже может передавать что-то другим лицам, а на посылках написано, от кого, кому, что внутри. Отправитель получит ответ, все ли ок, или что-то пошло не по плану
В HTTP/1.0:
🤍Появилась структура запросов и ответов
🤍Одиночество GET разбавили POST и HEAD
🤍Проблема – на один запрос одно соединение с клиентом, из-за чего сложные страницы грузятся долго
🤍 HTTP/1.1 (1997 г)
Уже через год наш курьер сильно подкачался 💪 – освоил новые методы работы, и не теряется после доставки товара, а остается на связи и может принести что-нибудь еще
В HTTP/1.1:
🤍Появились все известные нам методы (PUT, PATCH (2010), DELETE, OPTIONS, TRACE)
🤍Поддержка постоянного соединения
Эта основа веба используется по сей день
🤍 HTTP/2 (2015)
Гигачад-курьер отправляет разные заказы одному клиенту на грузовой машине по одной дороге. Улучшется эффективность, но если потеряем один товар, то вся доставка заблокируется, пока не найдем его
В HTTP/2:
🤍Синтаксис не изменился
🤍Появилось мультиплексирование – передача нескольких запросов и ответов в одном соединении TCP.
🤍HTTP/3 (2022)
Сын Яндекс.Доставки, курьер-супергерой, Сэм Бриджес. Вместо грузовой машины из прошлой версии этот гений использует мопеды, поэтому аварии ему не страшны 😼
В HTTP/3:
🤍Синтаксис не изменился
🤍Изменился транспорт: вместо традиционного TCP используется транспортный протокол QUIC поверх UDP, что улучшает производительность, делает потоки независимыми и ускоряет установку соединения
—————
Эта инфа поможет глубже понять REST, дать определение gRPC (который основан на HTTP 2), поразить собеседующего своими знаниями или просто станет интересным фактом
Забирай себе и ставь 🔥 , если узнал что-то новое
#полезное_системный_анализ
#собеседования_системный_анализ
