Більшість людей вважають веб-сервер чимось на зразок магічної чорної скриньки, яка створює сторінки з нічого. Насправді, це не так. У своїй основі його завдання напрочуд банальне. Веб-сервер отримує файл з диска і передає його по мережі у ваш браузер. Ось і все. Просто. Прямолінійно.
Давайте простежимо, що відбувається, коли ви вводите URL-адресу в адресний рядок. Уявіть, що ви вводите http://www.bygpub.com/books/tg2rw/author.htm. Сервер отримує запит для конкретного шляху /books/tg2rw/author.htm. Якби ви могли заглянути всередину конфігурації сервера, ви побачили б кореневу директорію, визначену під час установки, наприклад, c:\My Documents\www. Сервер не шукає /books/tg2rw/author.htm на всьому жорсткому диску. Він шукає цей шлях щодо кореня. Таким чином, він об’єднує два шляхи: c:\My Documents\www + /books/tg2rw/author.htm. Він знаходить файл. Відправляє його. Готово.
Але що відбувається, коли URL-адреса закінчується слешем? Наприклад, http://www.bygpub.com/books/tg2rw/?
Сервер розуміє це як запит до директорії, а не файлу. Йому потрібен стандартний файл, який слід відобразити. Він робить випадкових припущень. Він дотримується суворої ієрархії. Він шукає index.html. Якщо його немає, він намагається знайти index.htm. Якщо це не вдається, він перевіряє наявність default.html. Нарешті він намагається знайти default.htm. Точний список залежить від програмного забезпечення сервера, але логіка залишається незмінною. Сервер непомітно перетворює URL-адресу директорії в URL-адресу файлу, додаючи перший знайдений збіг. Таким чином, запит до директорії перетворюється на http://www.bygpub.com/books/tg2rw/index.htm. Ви ніколи не бачите зміни імені файлу. Ви просто бачите завантаження сторінки. Кожен інший файл цієї директорії вимагає явного вказівки імені. Це базовий рівень обробки статичних файлів.
За межами статичних файлів: роль CGI
Статичні файли – це лише половина історії. Більшість сучасних веб-серверів також опрацьовують динамічні файли. Вони не генерують ці сторінки на льоту з нуля; вони передають запит до зовнішньої програми. Цей механізм називається Common Gateway Interface (Загальний шлюзовий інтерфейс), або CGI.
Ви використовували CGI незліченну кількість разів, навіть не підозрюючи про це. Це двигун будь-якої веб-сторінки, яка змінюється в залежності від вашого введення. Розглянемо такі приклади:
-
Гостьові книги : Ви вводите повідомлення у HTML-форму. Сервер не просто надсилає заздалегідь написану сторінку. Він запускає скрипт, який додає ваш текст до бази даних або файлу, а потім генерує нову сторінку, що відображає ваш запис.
-
WHOIS-запити : Ви вводите ім’я домену у форму. Сторінка, яку ви отримуєте, повністю залежить від введеного вами домену. Сервер не обслуговує статичний файл; він просить програму одержати актуальні дані.
-
Пошукові системи : Ви вводите ключові слова. Сервер виконує запит, сканує індекси та динамічно створює сторінку результатів, адаптовану під ваш пошук.
Усі ці взаємодії спираються на CGI. Веб-сервер діє як диспетчер, передаючи дані форми користувача програмі, а потім відправляючи виведення програми назад у ваш браузер. Цей поділ дозволяє серверам обробляти складну логіку, не перевантажуючись

























































