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

Я хотел также сказать, что предлагаю систему управления содержимым сайта, адаптирую ее под каждого заказчика, чтобы было макимально удобно… Но понял, что между нами происходит какая-то нестыковка. От меня совсем не этого ждали. Дама имела в виду «подвижные» страницы, анимированные. В ее понимании только они являются динамическими. Я не стал спорить. Просто сказал, что и это нам по зубам.

Так нужно ли на самом деле знать разницу между статическими и динамическими сайтами и какие стороны жизни может улучшить это знание? Я полагаю, что если вы задумались о разработке или заказе сайта, готовитесь сами закатать рукава или обратиться к сайтостроителям, вам было бы полезно разбираться в этом вопросе.

Две большие разницы

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

Застыли реки, и земля остыла

Статические страницы могут появиться на свет разными, радикально отличными друго от друга способами. Старательный и педантичный web-конструктор напишет весь код буковками в «Блокноте». Эмоциональный и эксцентричный дизайнер создаст в графической программе — Photoshop, Xara WebDesigner или одной из сотен других. Опытный разработчик совместит эти два способа. Финиш должен быть одинаковым — написанный руками или сгенерированный автоматичсеки, на свет должен появиться html-код web-страницы, который будет послан на сервер и впоследствии вызываться посетителями. И если на странице такого сайта вам дают 5 полезных советов на какую-то тему, то на ней всегда будет именно 5 именно этих советов, по крайней мере пока страницу не исправят и не заменят ее версию на сервере.

    С одной стороны, у статических сайтов есть целый ряд достоинств:

  1. Для создания страницы не нужно знать языки веб программирования . Статические web-страницы можно создавать целой армией визуальных редакторов, в которых вы будете компоновать нужные вам тексты, изображения, кнопочки, линеечки и прочие элементы, перемещая их мышкой по экрану, задавая размеры, выстраивая в группы. Конечно, код таких страниц, автоматически сгенерированный вашей программой-компоновщиком будет далек от идеала, зато на освоение процесса уйдут не месяцы, а минуты.
  2. Хорошая кэшируемость страницы. Имеется в виду, что, поскольку страница неизменна, после первого просмотра ваш браузер может (в зависимости от настроек) создать где-нибудь на диске ее образ и при последующих просмотрах даже не выходить в интернет, выдавая вам сохраненный вариант. Это повышает скорость и уменьшает интернет-трафик.
  3. Быстрая скорость загрузки страниц. Следствие предыдущего пункта.
  4. Минимальные требования к веб-серверу и минимальная нагрузка на него. Вашим страница не нужно никакое вспомогательное программное обеспечение. Задача сервера — по вашему запросу отправить вам код страницы и сопутствующие изображения, не компилируя программный код, не обращаясь к базе данных и не выполняя многих других сложных действий.
  5. Простота переноса на другой сервер или локальный компьютер. Можно для аналогии сравнить книгу в бумажнов варианте и электронную версию на флешке. Для чтения бумажной книги нужны только ваши глаза. Для электронной версии нужно какое-нибудь подходящее электронное устройство. Статическая страница аналогична бумажной книге — все на виду.
  6. Возможность прямого просмотра файла в браузере, без использования промежуточного программного обеспечения. Это касается периода разработки. Если вы садитесь за разработку динамического сайта, вам понадобится программное обеспечение сервера, чтобы видеть результаты своей работы. Статические страницы просматриваются стандартными браузерами, потому что почти всегда содержат только HTML и CSS. В редких случаях добавляются модули на JavaScript (для улучшения внешнего вида за счет, например, кнопочек, которые при наведении мышки меняют цвет), но это никак не усложняет просмотр статических страниц.
    Конечно, у статических страниц есть и недостатки. Сегодня, когда сайты обрели невероятные возможности представления информации, эти недостатки стали очевидны:

  1. Невозможность динамической генерации содержимого. Если у вас есть какой-то список, например, современных художников, вы можете захотеть выбрать из него или представителей определенной страны, или приверженцев какого-то жанра, или участников одной из последних выставок… Создать набор статических страниц, на которых приведены все перечисленные варианты невозможно. А ведь в этом примере рассматривается довольно простой случай.
  2. Невозможность полноценной поддержки посетителей (выбор внешнего вида, поддержка браузеров, cookie).
  3. Для наполнения сайта информацией необходимо получать доступ к файлам-страницам посредством FTP, или сторонним веб-скриптам, позволяющим редактировать страницы. Получается, что если вы хотите кому-то поручить добавлять новости, вы должны предоставить ему или ей полный доступ ко всем страницам и графическим материалам. Кроме того, при создании новых страниц нужно следить за сохранением общего стиля сайта, а в страницы, сделанные ранее, возможно, придется добавлять ссылки на новые страницы.
  4. При большом количестве страниц (файлов), если возникает необходимость внести однотипные изменения (дизайн, оформление, добавление новых разделов) необходимо использовать стороннее ПО (утилиты). Действительно, уже при 30 страницах сайта внесение однотипного изменения во все страницы утомляет и чревато ошибками. Что уж говорить о современных сайтах с сотнями и тысячами страниц… Справедливости ради замечу, что современные приемы web-верстки с применением css снизили остроту проблемы, но не решили ее окончательно.

Возникает вопрос, а нужны ли сегодня статические страницы и где они могут использоваться? Пока еще встречаются. Это всевозможные сайты-визитки, сайты-буклеты, домашние страницы (но не блоги). На больших и сложных сайтах, где основное количество страниц динамическое, могут быть и статические вкрапления. Обычно они появляются, когда к отдельной странице предъявляют особые визуальные требования, вследствие чего ее верстают в визуальном редакторе, кодируют в HTML в неизменном виде ставят на сайт.

Все течет, все изменяется

Динамические страницы, как нетрудно догадаться после прочтения предыдущего материала, коренным образом отличаются тем, что в готовом виде на web-сервере их нет и быть не может. Динамическая страница создается «на лету» из нескольких информационных блоков. Этим созданием управляют скрипты, написанные на одном из языков программирования, например, PHP, Java, C++.

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

    Какие же плюсы мы имеем, используя динамические web-страницы?

  1. Прежде всего, соблюдается священный сегодня принцип отделения формы от содержания. За счет раздельного создания и хранения шаблонов страниц, отвечающих за внешний вид и непосредственно информационного содержимого, мы можем как угодно широко развивать объем данных и/или видоизменять форму отображения, и эти два процесса никак не повлияют друг на друга.
  2. Если мы правильно организовали базу данных и заполнили ее списочной, табличной, другой структурированной информацией, мы можем предоставить пользователю на страницах сайта любые выборки, любые комбинации, любой анализ своих записей. Эти записи могут регулярно пополняться, обновляться, и всегда мы в лучшем виде будем получать именно то, что мы запросили.
  3. Мы получаем возможность подстраивать сайт под каждого посетителя, давая ему возможность выбирать оттенки, размер шрифта, помогая вернуться к просмотренным страница, да им просто предоставив личный виртуальный кабинет, где он будет отбирать и помечать необходимую информацию.
  4. Мы получаем возможность получать на сайт информацию от посетителя, от нашего удаленного партнера, журналиста, фотографа и использовать ее разными способами, в том числе публиковать — сразу или после утверждения администратором. Все социальные сети и публичные системы блогов работают именно так.
  5. Для наполнения сайта информацией его разработчик может предусмотреть удобные страницы-формы для публикации текстов и изображений, с ограниченным или общим доступом. Можно распределить доступ к разным разделам сайта между разными людьми и они, если все реализовано правильно, никаким образом не смогут повлиять на ту информацию, доступ к которой им не разрешен.
  6. Если необходимо изменить что-то в визуальном представлении, изменения чаще всего вносятся в одно место — шаблон и/или таблицу стилей динамического сайта. При последующих обращениях к страницам все страницы будут отображаться уже с учетом внесенных изменений

О недостатках динамических страниц говорить трудно. Для большинства web-разработчиков это просто объективная реальность, данная нам в ощущениях. Наверное, единственное, что омрачает мысли человека, который совершает переход от самостоятельной разработки и установки в сеть статического сайта к динамическому будет необходимость иметь соответствующее программное обеспечение. Как минимум, оно должно быть на сервере, на который вы собираетесь разместить файлы и базу данных своего сайта, для наибольшего комфорта оно должно быть и в домашнем компьютере. Но если речь идет о действительно серьезных интернет-проектах, альтернативы динамическим сайтам нет.

Выбирайте обоснованно

На финише хотелось бы дать совет тем, кто собирается заказывать разработку сайта. Если ваша задача строго определена и ограничена, если вы представляете свой сайт как набор 5-7 практически неизменных во времени страничек, просите сделать статический сайт. Эта работа выполняется быстрее, стоит дешевле, в общем случае требует гораздо меньшего опыта и квалификации разработчика. Выполнить вам ее поможет почти любой студент, живущий на «ты» с интернетом.

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

Что дальше?

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

При написании использованы материалы wikipedia.org