Что такое «генератор статических сайтов»?

30 Июля 2014
Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения
Достаточно часто можно услышать про существование определенного «дуализма» при планировании будущего сайта – или делаем «руками» статический сайт, т.е. php/html, или берем динамическую CMS – WordPress, Joomla и т.д. и делаем в ней.

Но есть как минимум еще один путь – статические сайты, созданные с использованием специального генератора. Про это и расскажем сегодня.

В чем основная проблема с использованием динамических платформ? В их нагрузке на систему. Само слово «динамическая» означает, что конкретная страница сайта, которую видит пользователь, генерируется на стороне сервера. И это происходит каждый раз, когда кто-то обращается к данной странице. То есть в недрах системы CMS существует специальная запись, которая говорит о том, что при обращении на страницу блога нужно:
а) показать меню, состоящее из неких пунктов (их перечень и ссылки – взять из базы)
б) найти в базе десять самых свежих записей из категории «блог» и вывести их заголовки и первые абзацы
в) вывести завершающую часть сайта – футер (его содержимое, что туда попадает, текст, ссылки, также достать из базы)

Это конечно очень упрощенно, чтобы была понятна суть. Таким образом CMS система при обращении к определенной странице сайта, сначала «дергает» из базы различные компоненты содержимого страницы – что там должно быть показано – какие тексты, ссылки, картинки и т.д., затем с использованием действующей темы оформления, которая содержит информацию о том, что каким стилем показывать, формирует уже собственно ту страничку в виде реального html, которую показывает веб-сервер пользователю.

В статическом же сайте все намного проще. На сервере лежат сами страницы html, которые веб-сервер и показывает пользователю. Проблема же здесь заключается в том, что при необходимости что-то поправить в html – нужно залезть «руками» в этот файл. И простейшая операция типа добавления новой записи блога (1 минута в динамической CMS при наличии готового контента) – в обычном html – это достаточно простая, но рутинная и раздражающая работа минут на 30. Надо сверстать новую страничку с этой записью. В списке статей блога надо вставить дополнительную строчку с заголовком и ссылкой, ведущей на новую запись, и возможно удалить что-то старое или перенести на другую страницу архива.

На помощь приходит эта технология – генераторы статических сайтов. Что это такое – это тоже в какой-то мере CMS, только работает она следующим образом:
На сервере лежат специально размеченные файлы с контентом, а также шаблон сайта и различные файлы с настройками или плагинами
Каждый раз при «генерации» сайта, эта CMS создает уже готовые, статические страницы html, которые показываются пользователю. То есть – она «ищет» файлы с контентом, «собирает» из них структуру сайта и сами страницы, применяя к ним шаблон дизайна.

Разница в том, что генератор статических сайтов создает сайт один раз, и этот сайт будет работать (и лежать на сервере в неизменном html-виде) до тех пор, пока вы не внесете в него каких-то изменений – например, не добавите новую статью, новый товар, или просто какую-то новую страницу, пункт меню, и т.д. Запускать очередную генерацию сайта можно либо вручную, после внесения изменений, либо по времени – система определит сама наличие нового контента или других изменений в исходных файлах и пересоздаст сайт.

Главным преимуществом здесь является низкая требовательность к ресурсам за счет того, что сайт лежит в статическом виде, готовый к тому, чтобы показываться веб-сервером. Очевидно, что заDDOSить статический сайт, это радикально более сложная задача, чем динамический – который при каждом обращении лезет к базе данных и собирает странички для показа пользователю «на лету».

Даже если исходные компоненты для сборки статического сайта хранятся в базе данных, а не в текстовом виде (бывают и такие решения) – то в любом случае, пользователю показывает статический, собранный вариант. Даже падение SQL-сервера (катастрофа для динамических CMS типа WordPress) не нарушит работоспособности сайта.

Какие есть недостатки у генераторов статических сайтов? Возможно сюда следует отнести недостаточную (пока!) дружественность к пользователю. В какой-то мере у этой технологии сохраняется налет «гиковости», и научиться работать с такой системой «обычному человеку» все-таки сложнее, чем с WordPress.

Другой возможный недостаток – это недостаточное количество разработанных плагинов. Если для той же WordPress плагины есть на все случаи жизни да еще и выбрать можно среди нескольких, решающих одну и ту же задачу, то с генераторами статических сайтов не все так просто.