Исторический обзор средств разработки сайтов. Прагматика инструментов разработки.
Что такое сайт и как его обеспечить?
Для создания сайта необходимо:
1. Сервер (должен иметь прямой ip и работать 24 часа в сутки);
2. Способ доступа к файлам на сервере (панель управления и FTP).
Хостинги предоставляют клиенту часть места на сервере и домен.
Кроме того, должна существовать программа, которая по запросу клиента выполняет операции с файлами, в частности, отправляет их клиенту – HTTP-сервер.
HTTP-сервера
Наиболее известные http серверы:
* Apache (60%)
* Microsoft IIS
* Light httpd (может быть важен при высокой нагрузке на сервер)
Основные достоинства Apache:
- Бесплатность
- Работа под различными операционными системами
- Большая исходная функциональность (запрещение/разрешение доступа к каталогам и т.д.)
- Большое количество дополнительных модулей.
Например, с помощью дополнительных модулей можно:
- Блокировать доступ к сайту с определенных IP
- Делать SSI (вставки содержания на уровне сайта)
Сразу же после возникновения HTTP-серверов потребовалось обрабатывать информацию, присылаемую пользователем, и динамически формировать содержимое страницы. Возник стандарт CGI.
CGI
CGI – это обычное приложение, запускаемое под какой-то платформой (Windows, Unix) и HTTP-сервером, и пишущее в консоль заголовки ответа HTTP-сервера и содержимое файла, отправляемого клиенту. Т.е. это такой модуль над HTTP-сервером.
CGI исторически было первым средством формирования динамических страниц, однако быстро было заменено следующим поколением систем ввиду следующих недостатков:
- Одноплатформенность (приложение, разработанное под Windows не будет работать под Unix и т.д.)
- Сложность обработки запросов пользователя ввиду отсутствия стандартов – приложение должно выполнять много рутинной работы
Скриптовые языки
Недостатки классического CGI привели к развитию скриптовых языков программирования – Perl, PHP. Если не вдаваться в подробности, можно считать интерпретатор PHP CGI-приложением, однако оно пишется только 1 раз под разные платформы. При запросе к серверу интерпретатор PHP обращается к файлу на языке PHP (язык и окружение приспособлены под выполнение Web-задач) и отдает, как CGI-приложение, результат работы серверу, а тот – клиенту. Кроме того, снимается проблема кроссплатформенности, поскольку существуют интерпретаторы PHP под разные системы.
PHP
Одно из главных достоинств языка PHP – низкий порог вхождения программиста с точки зрения обучения. Самый простой PHP-скрипт занимает одну строчку, и уже работает, как полноценное приложение.
Другие достоинства:
- Большое число модулей и функций под разные задачи
- Гибкость типов и структур данных
- Высокая заточенность под работу со строками и консольным выводом.
- Как следствие простоты программирования, большое число готовых программ на разные случаи жизни.
Однако, кроме всего прочего, каждый сайт оперирует данными. Данные должны где-то хранится и обрабатываться.
Хранение данных
Самый простой способ – хранить данные в файлах. Однако при большом кол-ве данных это крайне замедляет работу. Тем не менее, такой способ иногда используется, чаще всего для статичных данных (например, файлов конфигурациии) и данных с простой структурой (например, при кешировании).
Индустриальным стандартом хранения данных являются SQL-системы.
SQL
Данные в SQL-базе содержатся, как таблицы. У таблицы есть столбцы (поля данных) и строки (собственно, содержательные данные).
Например, таблица данных о заказах книг в интернет-магазине, или о результатах тестирования системы.
SQL-запросы позволяют возвращать данные из таблиц с использование некоторых условий, например:
SELECT user,price FROM zakazi WHERE price > 100.00
Существуют разные программы, которые обеспечивают хранение данных и возврат результатов SQL-запросов. В среде создания Web-приложений распространение получил программа – сервер БД MySQL.
MySQL
MySQL – служба, доступная по сети. MySQL поддерживает постоянное соединение, в отличии от HTTP, поддерживающего временное соединение.
LAMP
В совокупности связка ОС Linux + веб-сервер Apache + сервер баз данных MySQL + язык программирования PHP составляют среду, часто использующуюся при разработке веб-сайтов и веб-приложений и получившую отдельное название LAMP.
CMS
Постепенно начал формироваться фонд программного обеспечения на PHP – форумы, гостевые книги, счетчики, магазины и т.д. Большому сайту было бы неплохо использовать некоторый набор из совокупности скриптов. Одна из самых больших проблем при этом – унификация таких элементов сайта, как:
- Дизайна
- Способа авторизации пользователей, проверки их прав
- Способа доступа к БД
Это создало предпосылки к появлению CMS – набор скриптов, который позволяет использовать другие наборы скриптов, называемых модулями, и обеспечивает некоторую стандартную функциональность, унифицирующую вышеуказанные вещи.
Первой бесплатной CMS на PHP стала PHP-Nuke, и на сегодняшний день существует множество модулей для этой системы. Модули – основа популярности и мощности CMS.
Тем не менее, PHP-Nuke содержал много архитектурных просчетов, благодаря чему начали появляться другие CMS. Мы будем работать на CMS Wacko Wiki Quick Start.
Примечания