Статические и динамические сайты

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

Для начала следует определиться с понятиями, что же собой представляют статические и динамические сайты.

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

Статическим называется сайт, все страницы которого являются статическими. Таких сайтов довольно много, с них, можно сказать, начинался интернет. Статические сайты создаются, в основном, на "чистом HTML" (ну, допустимо использование CSS).

Преимущества систем на базе языка HTML:

  1. Легко изменить внешний вид любой конкретной страницы, не повлияв на вид других страниц.
  2. Несложно добавить на сайт новую страницу, скопировав и исправив файл с существующей страницей.
  3. Человеку, занимающемуся поддержкой сайта, достаточно знать только язык HTML.
  4. Сайт будет работать на любом сервере хостинга, даже с самыми ограниченными возможностями.
  5. Сайт можно просматривать локально, не устанавливая дополнительное программное обеспечение. Веб-мастеру удобно отлаживать страницы, не выходя в Интернет.
  6. Малое число используемых программных компонентов делает затруднительным взлом такой системы.

Однако, при всех своих преимуществах такие системы обладают значительными недостатками:

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

За годы использования таких систем были разработаны решения, частично компенсирующие перечисленные выше недостатки статических сайтов. Первый недостаток может быть частично устранен путем вынесения меню и общих элементов навигации в отдельные файлы, что может быть сделано с помощью технологии серверных включений SSI - Server Side Includes или путем использования фреймов. Второй недостаток устраняется тем же путем за счет заполнения шаблона страницы какой-либо информацией, хранящейся отдельно или получаемой в результате работы алгоритма (например, в результате вычислений). Третий недостаток может быть исключен с помощью добавления отдельных программ, написанных на языке PHP. Четвертый недостаток может быть частично компенсирован путем размещения страниц в различные папки и назначением различных прав доступа к этим папкам. Естественно, что самым распространенным является случай, когда названные и другие варианты формирования странички используются в различных сочетаниях.

Системы на базе HTML с использованием дополнительных решений до сих пор широко используются. Однако поскольку в эти системы добавляются в том или ином виде элементы программирования, постепенно происходит переход к современным "динамическим" системам управления сайтом.

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

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

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

В последнее время в сети часто упоминаются веб-два-нольные сайты и Web 2.0 как отдельную часть Интернета. Я недавно услышал простое определение что такое веб-2-нольный сайт - это сайт, контент которого создается его пользователями. Естественно, что такой сайт тоже должен быть динамическим.

Очевидно, что чтобы сделать сайт динамическим, то есть чтобы у вебмастера появилась возможность создавать динамические страницы, на стороне сервера должны работать какие-то программы, которые формируют выдаваемую страничку из различных частей (создаваемых, возможно, другими программами) и обрабатывают данные, присылаемые пользователями. Следовательно, вебмастер должен при создании такого сайта использовать какие-то средства программирования. К таким средствам относятся CGI, PHP, Perl, ASP, ... Их мы рассмотрим в следующих разделах, а пока давайте перейдем к разбору плюсов и минусов двух основных подходов создания страниц. Точнее говоря, просто поговорим о преимуществах и недостатках динамических сайтов по сравнению со статическими.

Преимущества динамических сайтов

Главное достоинство динамических сайтов - это возможность быстрого внесения изменений сразу во все страницы сайта. Предположим, что в связи с приближением нового года, вы хотите поместить подходящий рисунок в верхней части ваших страничек. Или появилась потребность заменить код баннера, добавить баннер, или установить форму подписки на рассылку. В случае статического сайта вам нужно вручную произвести изменения на всех страницах сайта, не сделав нигде ни одной ошибки. Хорошо еще, если это небольшая домашняя страничка, состоящая из десятка страниц. А если объем сайта уже превысил тысячу страниц, причем все без исключения они представляют из себя самостоятельные html-документы?

Упрощение модификации и обновления страниц на сайте. Это преимущество непосредственно вытекает из первого. Любой сайт требует постоянной модификации, особенно это касается его контента. Информация должна быть свежей, иначе посетители быстро потеряют интерес к сайту. Даже на небольшом сайте при добавлении новой страницы придется делать несколько изменений, причем прямо в html-коде, что отнимает довольно много времени у веб-мастеров и не гарантирует отсутствия ошибок.

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

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

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

Недостатки динамических сайтов

Как и у всего остального в нашем неидеальном мире, у динамических сайтов есть свои недостатки.

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

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

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

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

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

Несмотря на эти недостатки, динамических сайтов в сети становится все больше и больше, видимо, перечисленные выше преимущества перекрывают все недостатки.

Загляните на досуге

Счетчики

Рейтинг@Mail.ru

LiveInternet

Rambler's Top100