P
PingOn

История HTTP: от одной строчки в 1991 до протокола, который забыл про TCP

1991 HTTP/0.9 1996 HTTP/1.0 1997 HTTP/1.1 2015 HTTP/2 2022 HTTP/3 Первый запрос в истории (1991): GET / ← всё. ни версии, ни заголовков, ни статус-кода

Каждый раз, когда браузер загружает страницу, он использует протокол, придуманный одним физиком в швейцарском институте в 1989 году. За 30 лет HTTP изменился до неузнаваемости — и при этом остался совместимым с тем первым запросом из двух букв и слеша.

1989. Физик и потерянные документы

Тим Бернерс-Ли работал в ЦЕРНе и страдал от типичной проблемы большой организации: документы терялись. Уходил человек — и его знания уходили вместе с ним. В 1989 году он написал предложение под названием «Information Management: A Proposal» — по сути, набросок того, что стало вебом. Его научный руководитель поставил резолюцию: «Vague but exciting».

В 1991 году Бернерс-Ли написал первый веб-сервер, первый браузер и первую версию HTTP. Первый в мире HTTP-запрос выглядел так:

GET /

Никакой версии протокола, никаких заголовков, никакого статус-кода в ответе. Сервер просто отдавал HTML и закрывал соединение. Это и был HTTP/0.9.

Тим Бернерс-Ли в ЦЕРНе
Бернерс-Ли в 2024 году.

Как протокол рос вместе с интернетом

HTTP/1.0 (1996) добавил заголовки, статус-коды и методы POST и HEAD. Но у него была фундаментальная проблема: каждый запрос требовал нового TCP-соединения. Загрузка страницы с десятью картинками означала десять рукопожатий TCP.

HTTP/1.1 (1997) исправил это с помощью keep-alive: одно соединение для нескольких запросов. Эта версия продержалась восемнадцать лет — рекорд для интернет-протоколов.

HTTP/2 (2015) пришёл из Google — сначала как внутренний протокол SPDY. Главная идея: мультиплексирование. Несколько запросов параллельно по одному соединению, бинарный формат вместо текстового, сжатие заголовков. Страницы начали загружаться заметно быстрее.

HTTP/3 (2022) сделал следующий шаг — отказался от TCP вообще. Под капотом теперь QUIC: протокол поверх UDP, разработанный Google. Потеря пакета в одном потоке больше не блокирует все остальные. На мобильных сетях, где потери — норма, это ощутимо.

🐧 Забавный факт

Первый в мире сайт — info.cern.ch — до сих пор работает. ЦЕРН восстановил его в 2013 году к двадцатилетию веба. Он отдаётся по HTTP/1.1 и выглядит ровно так, как выглядел в 1991-м: текст, ссылки, никаких картинок. Загружается за ~50 мс — быстрее, чем большинство современных сайтов с их мегабайтами JavaScript.