The Apache Modeling Project. Введение
Данный документ посвящен HTTP серверу Apache. Он содержит и краткий обзор сервера, и детали внутренней реализации. Документ является результатом работы аспирантов и студентов исследовательского проекта Apache Modeling Project института Hasso-Plattner в 2001, 2002 и 2003 годах. HTTP сервер Apache использовался для знакомства студентов с приложениями, смоделированными в соответствии с FMC - методе моделирования, предназначенного для переноса информации о сложных системах в аналитическое пространство.
После введения в основы HTTP серверов мы сфокусируемся на протоколах и веб-технологиях. Затем мы обсудим Apache, его рабочее окружение, а также его возможности расширения - API модулей. В завершение мы рассмотрим исходный код Apache и объясним наиболее важные его части.
Содержание
2 HTTP серверы
2.1 Введение
2.2 Задачи HTTP сервера
2.3 Протоколы и стандарты
2.3.1 RFC и другие документы
2.3.2 TCP/IP
2.3.3 Система доменных имен (DNS)
2.3.4 HTTP
2.4 Безопасность и управление доступом
2.4.1 Авторизация
2.4.2 Методы идентификации
2.4.3 HTTPS и SSL
2.5 Управление сессиями
2.5.1 HTTP - протокол, не хранящий информацию о сессии
2.5.2 Хранение сессии
2.6 Динамический контент
2.6.1 Серверные сценарии
2.1 Введение
2.2 Задачи HTTP сервера
2.3 Протоколы и стандарты
2.3.1 RFC и другие документы
2.3.2 TCP/IP
2.3.3 Система доменных имен (DNS)
2.3.4 HTTP
2.4 Безопасность и управление доступом
2.4.1 Авторизация
2.4.2 Методы идентификации
2.4.3 HTTPS и SSL
2.5 Управление сессиями
2.5.1 HTTP - протокол, не хранящий информацию о сессии
2.5.2 Хранение сессии
2.6 Динамический контент
2.6.1 Серверные сценарии
3 HTTP сервер Apache
3.1 Обзор
3.1.1 История
3.1.2 Особенности
3.2 Использование Apache
3.2.1 Конфигурирование Apache
3.3 Расширение Apache: Модули Apache
3.3.1 Введение
3.3.2 Типы обработчиков
3.3.3 Обработка контента
3.3.4 Фильтры Apache 2
3.3.5 Предопределенные хуки
3.3.6 Внутри модуля: mod_cgi
3.3.7 Apache API
3.1 Обзор
3.1.1 История
3.1.2 Особенности
3.2 Использование Apache
3.2.1 Конфигурирование Apache
3.3 Расширение Apache: Модули Apache
3.3.1 Введение
3.3.2 Типы обработчиков
3.3.3 Обработка контента
3.3.4 Фильтры Apache 2
3.3.5 Предопределенные хуки
3.3.6 Внутри модуля: mod_cgi
3.3.7 Apache API
4 Внутри сервера Apache
4.1 Введение
4.2 Структура исходного кода сервера
4.2.1 Исходный код Apache 1.3.17
4.2.2 Исходный код Apache 2.0.45
4.3 Многозадачные архитектуры сервера
4.3.1 Inetd: Простая многозадачная архитектура
4.3.2 Обзор: Многозадачные архитектуры Apache
4.3.3 Многозадачная архитектура prefork
4.3.4 Многозадачные архитектуры Apache и МП-модули
4.3.5 МП-модули Win32/WinNT
4.3.6 МП-модуль Worker
4.3.7 Другие МП-модули
4.4 Цикл ‘запрос-ответ’
4.4.1 Обзор
4.4.2 Ожидание запросов на соединение
4.4.3 Ожидание и чтение HTTP запросов
4.4.4 Обработка HTTP запроса
4.5 Обработчик конфигурации
4.5.1 Где и когда Apache читает конфигурацию
4.5.2 Внутренние структуры данных
4.5.3 Обработка данных конфигурации при запуске
4.5.4 Обработка данных конфигурации при запросах
4.6 Управление ресурсами и памятью: Пулы Apache
4.6.1 Зачем нужно другое управление памятью?
4.6.2 Структура пулов
4.6.3 API пулов
4.1 Введение
4.2 Структура исходного кода сервера
4.2.1 Исходный код Apache 1.3.17
4.2.2 Исходный код Apache 2.0.45
4.3 Многозадачные архитектуры сервера
4.3.1 Inetd: Простая многозадачная архитектура
4.3.2 Обзор: Многозадачные архитектуры Apache
4.3.3 Многозадачная архитектура prefork
4.3.4 Многозадачные архитектуры Apache и МП-модули
4.3.5 МП-модули Win32/WinNT
4.3.6 МП-модуль Worker
4.3.7 Другие МП-модули
4.4 Цикл ‘запрос-ответ’
4.4.1 Обзор
4.4.2 Ожидание запросов на соединение
4.4.3 Ожидание и чтение HTTP запросов
4.4.4 Обработка HTTP запроса
4.5 Обработчик конфигурации
4.5.1 Где и когда Apache читает конфигурацию
4.5.2 Внутренние структуры данных
4.5.3 Обработка данных конфигурации при запуске
4.5.4 Обработка данных конфигурации при запросах
4.6 Управление ресурсами и памятью: Пулы Apache
4.6.1 Зачем нужно другое управление памятью?
4.6.2 Структура пулов
4.6.3 API пулов
Список рисунков
2.1 Простая система (структура и поведение)
2.2 Поведение простого HTTP сервера
2.3 Установка и завершение TCP соединения
2.4 Зоны DNS
2.5 Пример HTTP сообщений (запрос/ответ)
2.6 Структура HTTP запроса/ответа (обзор)
2.7 Структура HTTP запроса/ответа (детально)
2.8 Базовая идентификация
2.2 Поведение простого HTTP сервера
2.3 Установка и завершение TCP соединения
2.4 Зоны DNS
2.5 Пример HTTP сообщений (запрос/ответ)
2.6 Структура HTTP запроса/ответа (обзор)
2.7 Структура HTTP запроса/ответа (детально)
2.8 Базовая идентификация
3.1 HTTP сервер Apache в своем окружении
3.2 Конфигурирование HTTP сервера Apache через конфигурационные файлы
3.3 Структура модуля Apache 2
3.4 Взаимодействие ядра Apache и модулей
3.5 Механизм хуков сервера Apache 2
3.6 Фильтры Apache: Цепочки входных/выходных фильтров
3.7 Фильтры Apache: Контейнеры в бригаде
3.8 Фильтры Apache: Использование бригад для передачи данных между фильтрами
3.9 Цикл ‘запрос-ответ’ в Apache с включением модулей
3.10 Обработка запросов сервером с модулями
3.2 Конфигурирование HTTP сервера Apache через конфигурационные файлы
3.3 Структура модуля Apache 2
3.4 Взаимодействие ядра Apache и модулей
3.5 Механизм хуков сервера Apache 2
3.6 Фильтры Apache: Цепочки входных/выходных фильтров
3.7 Фильтры Apache: Контейнеры в бригаде
3.8 Фильтры Apache: Использование бригад для передачи данных между фильтрами
3.9 Цикл ‘запрос-ответ’ в Apache с включением модулей
3.10 Обработка запросов сервером с модулями
4.1 Структура каталогов исходного кода Apache 1.3.17
4.2 Структура каталогов исходного кода Apache 2.0.45
4.3 Многозадачная архитектура сервера: inetd
4.4 Поведение многозадачного сервера
4.5 Шаблон ‘Лидер - последователи’ в архитектуре prefork
4.6 МП-модуль prefork в Apache 2.0
4.7 Обзор: Поведение Apache
4.8 Детали поведения Apache
4.9 Главный серверный цикл
4.10 Зона ответственности МП-модуля в Apache 2.0
4.11 МП-модуль WinNT сервера Apache 2.0
4.12 МП-модуль Worker сервера Apache 2.0
4.13 Цикл ‘запрос-ответ’
4.14 Обработка запросов
4.15 Компоненты механизма обработки конфигурации в Apache
4.16 Моменты чтения сервером конфигурации
4.17 Структуры данных конфигурации Apache
4.18 Структуры данных конфигурации Apache (подробно)
4.19 Структура обработчика конфигурации (с точки зрения потоков данных)
4.20 Чтение данных конфигурации: Порядок вызовов функций
4.21 Обработка секций в файлах конфигурации
4.22 Структура обработчика конфигурации для запроса: Процедуры обхода
4.23 Обход каталогов (без обработки ошибок)
4.24 Иерархия встроенных пулов Apache
4.25 Связный список блоков
4.2 Структура каталогов исходного кода Apache 2.0.45
4.3 Многозадачная архитектура сервера: inetd
4.4 Поведение многозадачного сервера
4.5 Шаблон ‘Лидер - последователи’ в архитектуре prefork
4.6 МП-модуль prefork в Apache 2.0
4.7 Обзор: Поведение Apache
4.8 Детали поведения Apache
4.9 Главный серверный цикл
4.10 Зона ответственности МП-модуля в Apache 2.0
4.11 МП-модуль WinNT сервера Apache 2.0
4.12 МП-модуль Worker сервера Apache 2.0
4.13 Цикл ‘запрос-ответ’
4.14 Обработка запросов
4.15 Компоненты механизма обработки конфигурации в Apache
4.16 Моменты чтения сервером конфигурации
4.17 Структуры данных конфигурации Apache
4.18 Структуры данных конфигурации Apache (подробно)
4.19 Структура обработчика конфигурации (с точки зрения потоков данных)
4.20 Чтение данных конфигурации: Порядок вызовов функций
4.21 Обработка секций в файлах конфигурации
4.22 Структура обработчика конфигурации для запроса: Процедуры обхода
4.23 Обход каталогов (без обработки ошибок)
4.24 Иерархия встроенных пулов Apache
4.25 Связный список блоков
Продолжение: The Apache Modeling Project. Глава 1
Комментарий от Гость — Март 31, 2006 @ 2:14 pm
Комментарий от Администратор — Март 31, 2006 @ 9:19 pm
Комментарий от Uri — Апрель 1, 2006 @ 11:34 pm
По этому поводу рекомендую - http://www.webmascon.com/topics/coding/33a.asp
Комментарий от Администратор — Апрель 2, 2006 @ 12:03 am
Как решить проблемму с повторной установкой Apache после его удаления?
Сервис не ставится!
Комментарий от pittpv — Март 22, 2007 @ 7:23 pm
_______________
ya-krevetko.com
Комментарий от андрюха — Август 29, 2008 @ 12:14 am
Комментарий от Багет — Декабрь 8, 2008 @ 1:38 am
Комментарий от юридический адрес — Декабрь 28, 2008 @ 7:00 pm