Данный материал взят с сайта old.shatalov.su и является его зеркалом

Создаём компьютерную игру. Создание игр на C++/DirectX

Есть вопросы?
Ошибка на сайте?
рус eng esp
Внимание! Данный сайт не обновляется. Новая версия: shatalov.su

Создание сайтов. Как сделать сайт

Дата создания: 2012-10-05 16:31:03
Последний раз редактировалось: 2012-10-05 18:14:17

Данный урок открывает целый курс по теме Создание сайтов. Все уроки по созданию сайтов можно найти в разделе Web (в меню справа).

В данном курсе мы будем изучать создание сайтов с точки зрения программиста. Т.е. мы не будем рисовать дизайн - я этого всё равно не умею (вы можете убедиться в этом внимательно посмотрев на страницу, которую вы сейчас просматриваете). Мы сосредоточимся только на программировании. Но не на простом программировании, а на web-программировании...

Создать сайт? Без проблем! Web-программирование для всех!

В программировании раздел, который отвечает за создание сайтов, называется web-программированием.

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

Что в себя включает web-программирование:
1. Какой-либо серверный язык - обычно, это PHP. Также возможны варианты: Perl, Python, Ruby on Rails. Мы будем рассматривать создание сайтов на PHP. Также вы можете посмотреть уроки по Python в соответствующем разделе сайта, но там не про веб.
2. Какая-либо база данных. Мы будем работать только с MySQL. Для работы с базой данных нам понадобится выучить язык запросов SQL.
3. Язык разметки гипертекста - HTML.
4. Скриптовый язык на стороне клиента - JavaScript и различные его модификации (JQuery, например).

Сразу хочу заметить, что мы будем делать сложные сайты, реализующие парадигму ООП и различные шаблоны (прежде всего шаблон Model-View-Controller - MVC).

Для начала посмотрим на картинку, на которой показано стандартное обращение к странице в интернете и что при этом обращении происходит.

HTTP-запрос

А теперь подробнее.

Какой сделать сайт выбрать софт

Теперь, когда мы определились с технологиями, нам предстоит выбрать программное обеспечение.

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

Web-серверы: apache или nginx

Веб-сервер (или http-сервер) можно установить на любой компьютер. И тогда на этом компьютере можно разместить сайт.

Чтобы лучше понять ответ на вопрос: "Как сделать сайт", нам необходимо подробнее ознакомиться с работой веб-сервера.

Во время работы веб-сервер принимает запросы по протоколу http (именно поэтому web-сервер и называется http-сервером). В ответ он отдаёт текстовый файл, который лежит в одной из его директорий. Вот и вся работа веб-сервера. На первый взгляд не пыльная. Но на самом деле веб-серверы - неприметные рабочие лошадки сети Интернет.

Давайте рассмотрим пример. Сидите вы дома, никого не трогаете. И вдруг! Вам страшно захотелось узнать как сделать сайт! Допустим, вы знаете адрес этой страницы и хотите сразу сюда перейти. Ваш компьютер обзовём к1, а компьютер, на котором расположен shatalov.su назовём к2. Как вы уже, конечно, догадались на к2 установлен web-сервер (к2.сервер). Теперь посмотрим что происходит между двумя компьютерами:

1. к1.клиент (любой из браузеров: Opera, firefox, Chrome) посылает http-запрос на адрес: http://shatalov.su/ru/articles/web/kak_sdelat_site.php
2. По цепочке компьютеров этот http-запрос доходит до к2.
3. к2.сервер получает запрос и ищет у себя страницу: /ru/articles/web/kak_sdelat_site.php
4. к2.сервер отправляет http-ответ.
5. к1.браузер получает http-ответ. Обычно, HTML-страницу.

Теперь нам нужно разобраться что это за http-ответы и http-запросы.

HTTP - Hypertext Trasfer Protocol

HTTP - Hypertext Transfer Protocol - протокол перечади гипертекста. Дело в том, что все веб-серверы общаются со своими клиентами (браузерами) посредством HTTP. Это такой специальный "язык" для обмена текстом.

HTTP-запросы и HTTP-ответы имеют определённый вид. Когда в браузере вы вводите http://shatalov.su/ru/articles/web/kak_sdelat_site.php, то на сервер, где лежит shatalov.su отправляется примерно вот такой HTTP-запрос:

!1? GET /ru/articles/web/kak_sdelat_site.php HTTP/1.1 Host: shatalov.su User-Agent: Opera/9.20 (Windows NT 6.0; U; en) Accept: text/html Connection: close ?1!

Когда сервер получил такой запрос, он проверяет, есть ли у него файл /ru/articles/web/kak_sdelat_site.php и если есть, отправляет такой ответ:

!1? HTTP/1.1 200 OK Date: Fri, 05 Oct 2012 10:23:28 GMT Content-Type: text/html; charset=utf-8 Connection: close Content-Length: 519 Server: Apache ... HTML-содержимое страницы ?1!

Выбираем сервер для своего сайта

Веб-серверов немного. В основном выбор происходит между Apache, Nginx и Microsoft Server. Более подробно мы рассмотрим установку этих серверов в следующих уроках.

Подключение PHP

При установке веб-серверов, они ещё не умеют работать с PHP. А для чего вообще нужен PHP, спросит внимательный читатель? Сейчас расскажу.

При получении такого запроса:

!1? GET /адрес_страницы HTTP/1.1?1!

Чистый веб-сервер просто отдаст содержимое этой страницы. Если же к веб-серверу подключить PHP и разместить на сервере файлы в формате .php. То при таком запросе:

!1? GET /адрес_страницы.php HTTP/1.1?1!

произойдёт кое-что интересное. Веб-сервер найдёт этот файл у себя и передаст управление PHP-интерпретатору. Если вставить в такой файл код PHP, то PHP-интерпретатор обработает этот код. Т.е. подключение PHP-интерпретатора к веб-серверу позволяет использовать в страницах веб-сервера код на языке PHP.

Подключение PHP-интерпретатора мы рассмотрим позднее. Осталось разобраться с базами данных.

Подключение базы данных MySQL

Помимо веб-сервера при создании сложного сайта придётся установить ещё одну программу - СУБД - Система Управления Базами Данных. Одной из таких программ является MySQL. Общение с базами данных происходит посредством специального языка запросов - SQL. Запросы SQL можно посылать с помощью PHP.

Давайте ещё раз посмотрим на картинку из начала урока:

HTTP-запрос

Надеюсь, теперь здесь всё понятно.

Как создать сайт с готовыми решениями

Ну а теперь самое важное. Необязательно устанавливать все эти программы самостоятельно. Есть готовые решения. Например, WAMPSERVER или Zend server. При установке этих решений на компьютер автоматически будет установлен и веб-сервер и PHP-интерпретатор и СУБД MySQL.

Подробно установку этих решений мы рассмотрим в следующих уроках.

На сегодня всё.