Исторический обзор средств разработки сайтов. Прагматика инструментов разработки.
Что такое сайт и как его обеспечить?
Для создания сайта необходимо:
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-базе содержатся, как таблицы. У таблицы есть столбцы (поля данных) и строки (собственно, содержательные данные).
Например, таблица данных о заказах книг в интернет-магазине.
Пример:
- В интернет магазине сортировка по id, цене, покупателям или все товары по наименованию.
Пример SQL:
MySQL – служба, доступная по сети. MySQL поддерживает постоянное соединение, в отличии от HTTP, поддерживающего временное соединение.
Примечания