Основные понятия

Веб-программирование - область программирования, служащая для разработки сайтов.

Сайт - совокупность веб-страниц, объединённых общей темой и хранящихся на одном веб-сервере.

Веб-страница - документ, хранящийся на веб-сервере, или создаваемый по запросу пользователя и имеющий уникальный адрес. Во всемирной паутине адрес называют URL (Uniform Resource Locator - унифицированный указатель ресурсов). URL главной страницы сайта называют адресом сайта.

Слово документ происходит от латинского documentum (доказательство, свидетельство). ДО середины 90-х годов прошлого века документ в словарях определяли как письменное свидетельство о чём-либо. Например исторический документ или юридический документ. Документами также являются паспорт м зачётная книжка.

С появлением Internet и, в особенности, всемирной паутины появилась необходимость в едином термине, обозначающем книгу, статью, письмо, любую совокупность информации рассматриваемую и передаваемую как единое целое. Тим Бернерс Ли использовал термин ресурс. Но ресурсы - это запасы, и часто материальные запасы, например реурсы нефти. Поэтому приходится говорить информационный ресурс, что слишком длинно. Выход нашёлся в расшитении толкования термина документ. Его стали использовать в качестве синонима информационного ресурса.

Веб-страница имеет следующие синонимы:

Веб-страницы делятся на:

Статическая страница хранится в готовом виде на веб-сервере и выдаётся по запросу пользователя. В самом простом случае статическая страница состоит из одного файла, содержащего текст, размеченный тегами языка HTML. В общем случае в состав страницы входят файлы с изображениями, аудио- и видеофайлы, файлы с каскадными таблицами стилей (CSS) и файлы, содержащие скрипты, выполняемые на стороне браузера. HTML-файл содержит ссылки на все остальные файлы страницы.

Скриптом в веб-программировании называют программу, служащую для создания или изменения страницы. Различают скрипты, выполняемые на стороне веб-сервера и на стороне браузера. Серверные скрипты обычно пишут на языках Perl или PHP, а для браузерных используют JavaScript.

Динамическая страница создаётся (генерируется) на веб-сервере скриптом по запросу пользователя. В остальном она ничем не отличается от статической.

Свойства страницы, поступившей с веб-сервера на браузер, не зависят от того, динамическая она или статическая. Страница, вид которой в окне браузера в течение всего времени просмотра остаётся неизменным, называется пассивной. Страница, меняющая свой вид под воздействием пользователя (движением или щелчком мышки, нажатием клавиши) называется активной.

Активная страница содержит в себе скрипт, выполняемый на стороне браузера в ответ на действия пользователя.

Итак, страница одновременно может быть:

Разделение страниц на статические и динамические позволяет существенно повысить производительность веб-серверов. Время выполнения запроса на выдачу статической страницы в среднем намного меньше, чем на выдачу динамической, так как для формирования последней требуется выполнить скрипт. Значительная часть времени выполнения скрипта приходится на запросы к базе данных. Веб-сервер, способный организовать создание динамических страниц, имеет сложную структуру и поэтому работает относительно медленно. Поэтому созданы более простые и быстрые лёгкие веб-серверы, предназначенные для обработки только статических страниц.

Термин веб-сервер имеет 3 различных значения:

  1. программа, посылающая по запросу пользователя гипертекстовый документ (такую программу будем называть программным веб-сервером),
  2. компьютер, на котором установлен программный веб-сервер,
  3. вычислительная система, состоящая из множества компьютеров с установленными на них программными веб-серверами (такую вычислительную систему будем называть веб-кластером).

Количество компьютеров в веб-кластере может быть очень большим. Например, веб-кластер поисковой системы Google состоит из нескольких тысяч одинаковых компьютеров.

Для повышения производительности на входе веб-кластера ставится лёгкий веб-сервер, который статическую страницу находит и отправляет пользователю сам, а заявку на динамическую страницу передаёт "тяжелым" веб-серверам.

Google служит примером одного сайта, размещённого на множестве компьютеров. Провайдеры в пределах одного веб-кластера размещают несколько маленьких сайтов на одном компьютере и один большой сайт на нескольких компьютерах.

В начале этого раздела веб-программирование отождествлялось с разработкой сайтов. В таком случае HTML-pазметка текста - тоже программирование, а HTML - язык программирования. Такой взгляд на программирование противоречит интуитивному представлению большинства программистов о программе как о последовательности операторов на одном из языков программирования. Принято все языки программирования делить на 3 уровня:

Приведём две программы (скрипта), выводящие в окно браузера приветствие

Здравствуй, Маша!

Первая программа написана на языке Perl:

#!\usr\bin\perl
use CGI qw(param);
$imja=param("imja"); #imja= Маша
print "Content-type: text/html\n\n";
print <<END_DOC;
<HTML>
<BODY>
Здравствуй, $imja
</body>
</html>
END_DOC
#

Вся программа состоит состоит из указания пути к транслятору Perl, оператора (функции) use, оператора присваивания и двух операторов print. Такая программа полностью соответствует интуитивному представлению о программе.

Вторая программа написана на языке PHP:

<HTML>
<BODY>
<?php
$imja=$_POST["imja"];
echo "Здравствуй, $imja";
?>
</body>
</html>

Является ли приведённый текст программой? Формально - это HTML-документ с тегом <?php ?>, а операторы языка PHP

$imja=$_POST["imja"];
echo "Здравствуй, $imja";

являются атрибутами этого тега. HTML - язык разметки текста, и многие специалисты не относят его к языкам программирования, то есть рассматриваемый текст - не программа. С другой стороны, PHP - язык высокого уровня, а приведённый текст - программа на PHP. Проблема возникшего противоречия в очень узком интуитивному представлении о программе.

Дадим более широкое определение программы, основанное на понятии алгоритм.

Алгоритм - предписание, определяющее преобразование исходных данных в искомый результат и обладающее следующими свойствами:
      - определённостью,
      - массовостью,
      - результативностью.

Программа - алгоритм, записанный, представленный в форме, пригодной для выполнения на компьютере.

Согласно этому определению программой является не только любой HTML-документ (статический, динамический, пассивный, активный), но и документ в фомате Word.

Пользователь и программист рассматривают сайт по-разному. Пользователь воспринимает сайт через экран монитора, просматривая в окне браузера отформатированную информацию. Программист рассматривает весь процесс от момента отправки запроса клиента на веб-сервер до момента отображения результатов запроса в окне браузера. Сайт для программиста - это совокупность программ и данных участвующих в выполнении запросов пользователя.

Все компьютерные программы делятся на системные и прикладные. Прикладные программы часто называют приложениями. Распределённым приложением называют комплекс, состоящий из взаимодействующих между собой программ, размещённых на разных компьютерах. Сайт с точки зрения программиста - это распределённое приложение, имеющее архитектуру клиент-сервер. Весь сайт хранится на веб-сервере. Скрипты, генерирующие динамические страницы, выполняются на веб-сервере. Клиентская часть сайта - страница, поступившая на браузер, который транслирует страницу и, чаще всего, отображает результаты трансляции на экране монитора.

Сайт и страницу называют также веб-приложением или Internet-приложением. Поэтому дисциплину Языки и средства разработки Internet-приложений можно назвать Разработка веб-сайтов.