Сегодня я расскажу о структуре
веб-приложений. Хотя веб-приложения
существуют различной сложности и
специализации, для знакомства будем
рассматривать простой,
средне-статистический вариант. К таким
веб-приложениям относится большинство
сайтов.
Давайте для простоты будем пока считать,
что веб-приложение и веб-сайт - одно и то
же. Не всегда веб-приложение является
сайтом, и наоборот, но пока нет задачи
вдаваться в подробности, поскольку
рассматривать будем самый простой
вариант.
Чаще всего веб-приложения состоят как
минимум из трёх основных компонентов:
Клиентская часть веб приложения - это
графический интерфейс. Это то, что вы
видите на странице. Графический интерфейс
отображается в браузере. Пользователь
взаимодействует с веб-приложением именно
через браузер, кликая по ссылкам и
кнопкам.
Серверная часть веб-приложения - это
программа или скрипт на сервере,
обрабатывающая запросы пользователя
(точнее, запросы браузера). Чаще всего
серверная часть веб-приложения
программируется на PHP. При каждом переходе
пользователя по ссылке браузер
отправляет запрос к серверу. Сервер
обрабатывает этот запрос, вызывая
некоторый PHP-скрипт, который формирует
веб-страничку, описанную языком HTML, и
отсылает клиенту по сети. Браузер тут же
отображает полученный результат в виде
очередной веб-страницы.
База данных (БД, или система управления
баазми данных, СУБД) - программное
обеспечение на сервере, занимающееся
хранением данных и их выдачей в нужный
момент. В случае форума или блога,
хранимые в БД данные - это посты,
комментарии, новости, и так далее. База
данных располагается на сервере.
Серверная часть веб-приложения (то есть, PHP
скрипт) обращается к базе данных, извлекая
данные, которые необходимы для
формирования страницы, запрошенной
пользователем.
Это, пожалуй, основные компоненты
большинства веб-приложиний. Графически
схему их взаимодействия можно
представить так:
Браузер через Интернет отсылает
HTTP-запросы веб-серверу
Веб-сервер вызывает PHP-скрипт,
написанный разработчиком
веб-приложения
PHP-скрипт обращается к базе данных, если
это нужно
В результате PHP-cкрипт возвращает
клиенту веб-страницу, которую и
отображает браузер.
Язык программирования для серверной
части
Для программирования серверной части
веб приложения может использоваться язык
PHP, как в описанном примере, но не
обязательно он. Для разработки
веб-приложений можно использовать
практически любые современные языки
программирования:
Независимо от языка, на котором написана
серверная часть веб-приложения, способы
обработки запросов и взаимодействия с
пользователем остаются те же.
В дальнейшем в ходе освоения
веб-технологий будем опираться на язык PHP,
поскольку он является самым
распространённым и самым простым среди
всех перечисленных. Конфигурация сервера,
включающая себя операионную систему Linux,
язык программирования PHP, веб-сервер Apache и
СУБД MySQL считается стандартом де-факто для
средне-статистического сервера и даже
носит название LAMP (от сокращения
Linux, Apache, MySQL, PHP).
Язык программирования клиентской
части
Основной язык, которым описывается
графический интерфейс веб-приложения -
это HTML. Этот язык описывает структуру
веб-страницы. Художественное оформление
веб страниц описывается таблицами стилей
- CSS.
Для "оживления" графического интерфейса
используются дополнительные технологии:
скрипты JavaScript, а также встроенные в
веб-страницу компоненты, созданные на Flash,
Java или Silverlight. Все эти элементы
веб-страницы могут взаимодействовать
между собой: программа, написанная на
JavaScript и выполняющаяся на веб-странице,
может управлять встроенными в страницу
компонентами, тем самым реализуя
пользовательский интерфейс с богатыми
возможностями.
Следующие шаги
Сегодня и в предыдущих выпусках я
рассказал (коротко) о технологиях и о
структуре веб приложений. Чтобы
продолжить, нам понадобится освоить
основные технологии, задействованные в
веб-приложениях, а также языки, на которых
придётся учиться программировать. А для
этого, в свою очередь, необходимо
обустроить рабочее место: установить
среду разработки, веб-сервер и
интерпретатор PHP, потому что именно на
примере PHP я предлагаю начать освоение
веб-технологий.