CERN httpd¶
CERN httpd — это первый в мире веб-сервер, разработанный в Европейской организации по ядерным исследованиям (CERN) в 1990—1991 годах. Программа была создана для обеспечения доступа к информации через протокол HTTP, став основой для функционирования Всемирной паутины (World Wide Web). CERN httpd работал на операционной системе NeXTSTEP и первоначально использовался для обслуживания первого в истории веб-сайта, размещённого на компьютере Тимом Бернерсом-Ли.
¶История создания
¶Предпосылки разработки
В конце 1980-х годов в CERN возникла необходимость в унифицированном способе обмена научными данными между исследователями, работавшими на разных компьютерах и с разными операционными системами. Тим Бернерс-Ли, британский учёный, предложил концепцию гипертекстовой системы, основанной на протоколе передачи данных и языке разметки. В марте 1989 года он представил руководству CERN документ «Информационное управление: предложение», в котором описывалась идея глобальной сети.
¶Первая версия
Разработка CERN httpd началась в конце 1990 года. Первая версия сервера была написана на языке C и запущена на компьютере NeXTcube под управлением NeXTSTEP. Код программы был относительно простым: он обрабатывал входящие HTTP-запросы, отдавал статические файлы (HTML-страницы, изображения) и поддерживал базовые методы GET и HEAD. 6 августа 1991 года Бернерс-Ли опубликовал первый веб-сайт, посвящённый проекту World Wide Web, который обслуживался именно этим сервером.
¶Распространение и открытость
В 1993 году CERN объявил, что технология World Wide Web, включая код CERN httpd, будет доступна без лицензионных отчислений (public domain). Это решение способствовало быстрому распространению веб-сервера среди академических и исследовательских организаций. К середине 1990-х годов CERN httpd был заменён более функциональными серверами, такими как NCSA HTTPd и Apache HTTP Server, но его роль как пионерного проекта остаётся признанной.
¶Архитектура и функциональность
¶Основные компоненты
CERN httpd представлял собой однопоточное приложение, работавшее в пользовательском пространстве. Он прослушивал TCP-порт 80 (стандартный порт HTTP) и обрабатывал запросы последовательно. В отличие от современных серверов, он не поддерживал многопоточность или асинхронный ввод-вывод, что ограничивало его производительность при большом количестве одновременных подключений.
¶Поддерживаемые протоколы и методы
- HTTP/0.9 — первая версия протокола, поддерживавшая только метод GET и передачу простого текста без заголовков.
- HTTP/1.0 — более поздняя версия, добавленная в 1992 году, включала заголовки запроса и ответа, а также методы HEAD и POST.
- FTP-прокси — сервер мог выступать в роли шлюза для доступа к файлам по протоколу FTP через веб-интерфейс.
¶Ограничения
- Отсутствие поддержки виртуальных хостов (каждый сервер обслуживал только один домен).
- Минимальная обработка ошибок (например, код 404 возвращался в виде простого текста).
- Нет механизмов аутентификации или шифрования (SSL/TLS не существовало на момент разработки).
¶Применение
¶Первый веб-сайт
CERN httpd обслуживал сайт info.cern.ch, на котором были размещены:
- Описание проекта World Wide Web.
- Инструкции по созданию гипертекстовых страниц.
- Список доступных веб-серверов и браузеров.
- Контактная информация разработчиков.
¶Распространение в академической среде
До появления коммерческих веб-серверов CERN httpd использовался в университетах и научных центрах для публикации исследовательских данных, библиотечных каталогов и документации. Например, Стэнфордский университет и Массачусетский технологический институт (MIT) запустили свои первые веб-серверы на базе этой программы.
¶Переход к другим решениям
К 1995 году популярность CERN httpd снизилась из-за появления более производительных и гибких серверов, таких как:
- NCSA HTTPd (разработан в Национальном центре суперкомпьютерных приложений США) — поддерживал CGI-скрипты и многопоточность.
- Apache HTTP Server (основан на коде NCSA HTTPd) — стал доминирующим веб-сервером в интернете к концу 1990-х годов.
¶Наследие
¶Влияние на развитие веб-технологий
CERN httpd заложил основы архитектуры клиент-серверного взаимодействия в интернете. Его код стал отправной точкой для многих последующих проектов, а принципы обработки HTTP-запросов, реализованные в нём, используются до сих пор. В 2013 году CERN восстановил оригинальную версию сервера и запустил её для демонстрации в рамках проекта по сохранению цифрового наследия.
¶Культурное значение
Первый веб-сервер является символом начала эры глобальной информационной сети. В 2014 году сайт info.cern.ch был внесён в список объектов Всемирного цифрового наследия ЮНЕСКО. В 2021 году CERN выпустил эмулятор, позволяющий запустить CERN httpd на современных компьютерах.
¶Современные реплики
Существуют проекты, воссоздающие функциональность CERN httpd на современных платформах, например:
- CERN httpd для Linux (портированная версия с открытым исходным кодом).
- Эмулятор на JavaScript, работающий в браузере.
¶Интересные факты
- Исходный код CERN httpd содержал около 2000 строк на языке C.
- Сервер мог работать на компьютерах с процессором Motorola 68030 и 16 МБ оперативной памяти.
- Первый в истории HTTP-запрос был отправлен с компьютера Тима Бернерса-Ли на сервер, расположенный в соседней комнате, 6 августа 1991 года.
- В 1993 году CERN httpd обрабатывал около 100 запросов в день, что считалось значительной нагрузкой.
¶Источники
- Tim Berners-Lee, «Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web», 1999.
- Документация CERN: «The World Wide Web Project», 1992.
- Статья «The First Web Server» на сайте CERN (2013).
- RFC 1945: «Hypertext Transfer Protocol — HTTP/1.0», 1996.
- Материалы архива World Wide Web Consortium (W3C).