что такое статический сайт
Статические и динамические сайты — в чем разница и что выбрать.
Любые сайты в интернете, можно разделить на два типа: статические и динамические.
Вроде всё просто, пока не начнешь глубже копать эту тему. Например, сайт может быть динамичным, но при этом содержать статические элементы, а может быть наоборот, статичный сайт с динамическими элементами.
По сути, по мере развития интернет технологий, различия между этими типами постепенно размываются. Но если вы собираетесь создать свой сайт, или у вас уже есть свой сайт, то вы должны разбираться в этом вопросе, ведь тогда, вы сможете лучше и эффективнее применять методы технической оптимизации.
Что может быть статическим или динамическим?
При обсуждении, является ли сайт статичным или динамичным, вначале нужно определить, какой аспект сайта вы обсуждаете. Эти аспекты можно разделить на три вида:
Код веб-страницы может быть статическим или динамическим. Это довольно просто: статический контент — это контент, который жестко запрограммирован на странице. Динамические страницы получаются на ходу, после запроса пользователя путем обращения к CMS или какой-либо внешней базе данных.
Доставка
Доставка веб-страницы также может быть статической или динамической. Статическая доставка — это предварительно обработанные страницы, которые обычно кэшируются и доставляются через сеть доставки контента (CDN). Динамические страницы генерируются в реальном времени после запроса к серверу.
Браузер клиента
Браузер также может повлиять на то, является ли сайт статическим или динамическим. Статические сайты остаются неизменными для всех, кто обращается к ним, независимо от браузера. Даже если сайт не использует запросы к базе данных на сервере, но он может изменять страницу на стороне клиента с помощью Javascript.
Основные различия между динамическими (серверный рендеринг) и статическими (рендеринг на стороне клиента) сайтами
Вначале использования Интернета, все веб-страницы отображали одинаковый контент для каждого пользователя. Со временем многие веб-сайты стали использовать базы данных и такие серверные языки программирования, как Python, PHP, ASP, Ruby, Java и другие. Это позволило сайтам стать динамическими и отображать контент для пользователя в зависимости от настроек или ввода определенной информации.
Прежде чем продолжить, поясню, что далее в этой статье пойдет речь в первую очередь о том, как страница доставляется пользователю. Вы можете развернуть целую игрушку на JavaScript, но до тех пор, пока эта страница не обращается к серверу, чтобы что-то подгрузить, то с точки зрения доставки, эта страница всё равно будет статичной, ведь она всего один раз загрузилась с сервера.
Что такое динамический веб-сайт?
Динамические сайты используют серверные языки для обработки запросов во время их создания страницы в режиме реального времени. Это означает, что динамические веб-сайты взаимодействуют с пользователем на сайте, и отображают контент в зависимости от действий или настроек пользователя.
Одним из примеров динамического веб-сайта являются веб-приложения. Например, социальная сеть Вконтакте, которая создает и отображает страницу, специально под вас.
Хотя динамические сайты чрезвычайно эффективны, они также более сложные. Наряду с этой сложностью у динамичных сайтов есть много своих преимуществ и недостатков.
Преимущества динамических сайтов
Работа с базой данных
Подключив динамический сайт к базе данных, вы можете легко запрашивать информацию в организованном и структурированном виде для создания и отображения контента в зависимости от потребностей пользователя.
Использование CMS
Использование базы данных означает, что вы также можете использовать CMS. Контент, хранящийся в CMS, может быть разнообразным. То есть, сюда относится основное содержимое сайта: текст, картинки, видео и аудио контент. И вспомогательное содержимое: макет и настройки сайта, возможность размещения дополнительного программного кода, например, JavaScript кода для размещения рекламы и так далее.
Всё это обеспечивает гибкость при создании сайтов, а также CMS часто позволяют работать с сайтом сразу нескольким пользователям, (SEOшники, авторы, редакторы и прочие). И что самое интересное, пользователи могут управлять сайтом, не вдаваясь в программирование.
Низкая стоимость текущего обслуживания
Это дальнейшее следствие использования CMS. На рынке представлено множество различных CMS, и многие из них имеют хороший функционал, и при этом, бесплатны. Тем самым, для создания хорошо выглядящего сайта, не понадобится много расходов денег и времени.
Недостатки динамических сайтов.
Ограничения на дизайн
Когда создается страница по запросу пользователя, то в этот момент из базы данных на сервере извлекается некоторый контент, такой как текст и изображения. И весь этот текст, должен хорошо сочетаться с другим контентом на сайте. И чтобы самый разнообразный контент хорошо сочетался на сайте, для этого вначале придется очень постараться над дизайном самого сайта.
Если взять популярную CMS WordPress, то хотя здесь представлено большое количество самых разных шаблонов оформления, но фактически, веб-мастер всё равно не получает идеальный дизайн, который он хотел-бы использовать. Выбор дизайна, даже в WordPress, это всегда компромиссы. Как самому установить шаблон читайте в этой статье.
Кроме того, этот дизайн будет применен сразу ко всем страницам сайта. Если для информационных сайтов шаблонность оформления, это скорее плюс, то вот для продающих сайтов, это уже явный минус.
В зависимости от CMS может быть сложно применить сразу несколько дизайнов на одном сайте, чтобы отобразить разный тип контента на одном сайте. К примеру, вы не сможете сделать сильно отличную страницу с информацией о заказе, со страницей оплаты товара.
Динамичный сайт, может потребовать больших затрат.
Выше я уже говорил про уменьшение затрат, но здесь скажу, что динамичный сайт, может потребовать больших затрат. Действительно, пока вы используете шаблонные решения, то готовая CMS даст их дешевле. Ведь эти решения разрабатываются сразу для большого количества сайтов.
Но как только нужно что-то уникальное, то это уже обойдется дороже. Например, вы решили внедрить какой-то уникальный виджет на сайте. Если программисты и дизайнеры будут разрабатывать его специально под вашу распространенную CMS, то им придется еще думать и о том, как внедрить его на сайте, и чтобы это не сломалось при следующем обновлении CMS.
Что такое статический сайт.
Статические веб-сайты, это предварительно собранные сайты. Страница не формируется после запроса пользователя, а хранится уже готовой к показу пользователя. Причем, зачастую такие страницы хранятся либо в кэше хостинг провайдера, либо даже поближе к пользователю на CDN сервисе.
У выбора статичного сайта также есть свои преимущества и недостатки.
Преимущества.
Гибкость
Главное преимущество статического сайта — это гибкость, которую он предлагает. Каждая страница может быть разной. Дизайн буквально каждой страницы может меняться до неузнаваемости. На одной странице, контент может отображаться по всей ширине экрана, на другой странице, может быть левая или правая дополнительная колонка. На одной странице большой логотип в шапке, на другой мелкий логотип. В общем, на таких сайтах дизайнеры могут вдоволь проявить свою фантазию. И во многих случаях, это имеет большое значение.
Стоимость
Первоначальные затраты на создание статического сайта могут быть ниже, чем при создании динамического сайта. В первую очередь, дело касается технической составляющей. Разместить статический сайт на хостинге, в большинстве случаев, намного проще, чем настраивать полноценную CMS с подключенной базой данных.
Обслуживание такого сайта, также намного проще, а значит и дешевле. Причем, если например, WordPress тоже легко разместить на хостинге, то вот в случае возникновения различных проблем, таких как резко возросшая нагрузка на хостинг, справится будет сложно, а значит, скорее всего придется нанимать специалистов, что будет стоить дорого.
Время загрузки
Это второе важнейшее преимущество статического сайта. Поскольку статические сайты предварительно отрисовываются, то время загрузки у них очень быстрое. Они работают без выполнения сложных программ, без использования баз данных и тому подобного. Благодаря всему этому, такие сайты загружаются намного быстрее.
Недостатки.
Более сложное обновление.
Создать статический сайт можно с помощью различных инструментов, наподобие Adobe XD, но вот редактировать такой сайт, будет уже намного сложнее. И если вы не знакомы с HTML, CSS и с веб программированием, то весьма вероятно, вам придется просить других специалистов, чтобы они внесли даже простые изменения.
Более сложное масштабирование.
Изменение контента, это еще не самая большая проблема. Проблема будет тогда, когда вам нужно добавить новую страницу, будь это новая статья на блоге, или страница с описанием товара. В этом случае, придется менять не одну страницу, а сразу все прямо или даже косвенно связанных страниц. Поэтому обычно, статическими делаются сайты с небольшим количеством страниц.
Стоимость.
Когда нужны изменения на сайте, то в этом случае, либо сам вебмастер должен хорошо разбираться в коде, либо придется нанимать программистов. И в этом случае, затраты на обновление сайта, будут значительно выше.
Так что выбрать?
Если говорить про весь интернет в целом, то уже давно динамические сайты в большинстве. Сейчас уже почти не осталось статических сайтов.
Особенно это актуально для технически сложных сайтов, таких блоги или интернет магазины.
Но и статические сайты по прежнему востребованы. Но востребованы они в основном для создания небольших сайтов лендингов, где желателен продвинутый дизайн каждой из страниц и быстрая скорость загрузки.
В общем, выбирайте динамический или статический сайт, исходя из слабых и сильных сторон каждого из этих типов сайтов, а также исходя из ваших потребностей.
Статический веб: возврат к истокам?
Мы обратимся к ранним годам интернета, чтобы понять нынешнюю популярность динамических сайтов. Затем рассмотрим преимущества статических сайтов с точки зрения производительности, скорости редактирования и поисковой оптимизации.
Сначала была статика.
В первые дни интернет был обществом энтузиастов, разработчиков и инженеров. Несмотря на частые сравнения между MySpace и Facebook, эти два сервиса принципиально отличаются. Они также хорошо демонстрируют разницу в «интернет-парадигме» соответствующего времени.
И то, и другое — социальные сети, но создание страницы на MySpace требовало базового понимания HTML и CSS. В конце концов, сайт открылся в 2003 году. С другой стороны, простой в использовании интерфейс Facebook помог расширить аудиторию до двух с лишним миллиардов пользователей.
Восход WordPress
WordPress быстро захватил интернет: в настоящее время у него около 60% рынка CMS. Он настолько распространён, что его можно рассматривать как глобальную веб-платформу: около трети всех сайтов в интернете используют WordPress.
Успех не означает релевантность. На самом деле опытные пользователи отказываются от WordPress по разным причинам:
Сделаем его статичным!
Когда WordPress вышел в 2003 году, у него почти не было конкурентов. Но это было 15 лет назад. Позже появились интересные инструменты и фреймворки для форматирования текстов, а также для публикации и рендеринга. Развитие шло параллельно, что проложило путь для статического веба.
Начнём с редактирования и сосредоточимся на Markdown.
Восход Markdown
В то время как WordPress становился всё жирнее и жирнее, росла популярность альтернатив как для публикации сайтов, так и для форматирования контента.
Новые облегчённые языки разметки, такие как Markdown, предлагают надёжную альтернативу для редактирования контента. Они подходят даже пользователям нетехнического профиля. Достаточно потратить час на изучение шпаргалки — и вы сократите время форматирования текстов практически до нуля.
Действительно, Markdown достаточно прост, быстр в освоении, при этом невероятно мощен. При использовании Markdown и некоторых сочетаний клавиш автор может одновременно писать и форматировать свой контент. Кроме того, Markdown предлагает множество вариантов экспорта (HTML, PDF, LaTex, doc. ) и гарантирует, что форматирование сохранится независимо от формата.
Наконец, Markdown позволяет работать с текстовыми объектами (сноски, теги, ссылки на разделы, оглавление, графики и диаграммы) на уровне документа вместо внедрения ещё одного слоя абстракции. Это значительно улучшает поддерживаемость и переносимость контента.
Пример архитектуры JAMstack
Управление версиями нравится не только программистам, но и писателям!
Управление версиями и разработка на Git быстро распространились в мире программного обеспечения — и по веским причинам. Это повышение надёжности и безопасности всего процесса разработки. Кроме того, система управления разрешениями пользователей, логика ветвей и доступ к полной истории файлов, а также возможность сравнивать файлы между версиями — невероятно полезные функции, чтобы избежать неправильных изменений или исправить их.
В то время как разработчики получили все эти причудливые инструменты, писатели по-прежнему редактировали свои статьи в Word, чтобы скопировать их в WYSIWYG-редактор WordPress, а затем начать борьбу с форматированием. Почему бы не поделиться вкусностями?
В конце концов, как это ни парадоксально, но репозитории Github представляют собой весьма убедительную CMS:
Жирные страницы отсекают аудиторию
До сих пор мы рассматривали преимущества статических веб-сайтов очень прагматично: с точки зрения производительности или повышения эффективности. Давайте вернёмся немного назад и оценим общую картину.
Средний размер сайта сейчас намного превышает 3 МБ, по состоянию на 2017 год. Но намного важнее изменение структуры веб-страницы. Для справки, вот эволюция средней страницы с 2011 года:
Раздувание средней веб-страницы. Источник: Speed Matters
Для сравнения, в нашем блоге главная страница весит 10 КБ, а средняя страница (включая изображения) — около 400 КБ.
У нас с вами, вероятно, современные ноутбуки и смартфоны с приличной скоростью доступа. Как насчёт тех, кто живет в странах с плохим интернетом? Большая часть интернета состоит из текста: он должен быть лёгким.
Зачем мне загружать всю раздутую страницу на три с лишним мегабайта, чтобы прочитать только текст, где может быть всего несколько слов?
Помните о пользователях
Это может показаться проблемой первого мира; но на самом деле это ужасная проблема бедных стран. Плохо спроектированные сайты ограничивают доступ людей к полезным сервисам. Кроме того, ненужный трафик перегружает сети, а более высокие требования подталкивают вверх стоимость услуги.
В конечном счёте мы приходим к такому выводу: создание ненужного динамического веб-сайта в 2019 году наносит вред обществу. Интернет — это общий ресурс. Почему бы нам не попытаться избежать ещё одной трагедии общин, ведь для этого не нужно ничего, кроме здравого смысла?
Пользователи уходят с медленных сайтов
Давайте просто спросим у разработчиков сайтов, которые в 12 раз массивнее, чем должны быть: откуда у вас столько ненависти? В идеальных условиях среднестатистическому пользователю со средним подключением 7,2 Мбит/с требуется более трёх секунд, чтобы загрузить одну страницу.
Каков эффект? Нил Патель, известная фигура в SEO-сообществе, сделал очень подробную инфографику на эту тему. По его оценкам, 40% (на мобильных устройствах 53%) пользователей уходят со страницы, загрузка которой превышает три секунды. Таким образом, возникает абсурдная ситуация:
Новостные, медийные и другие сайты теряют до 40% аудитории из-за низкой производительности, обусловленной необоснованным выбором динамического рендеринга. Эта цифра не включает трафик с поисковых систем из-за ухудшения SEO.
Так что давайте снимем жир. Зачем столько скриптов? Неужели в 2019 году так сложно реализовать правильную обработку изображений (изменение размера, сжатие, порядок загрузки)?
«Как вообще динамический движок, который постоянно заново генерирует один и тот же статический контент, стал стандартом Интернета?» — Флоран Шово
Переходим на статику
Мы убеждены, что скоро статические сайты станут обычным явлением. В то же время статический сайт легко побеждает раздутого динамического конкурента в SEO-игре: настало время поиграть!
Для своего блога мы выбрали фреймворк Hugo, он помог оптимизировать процесс редактирования контента и добиться впечатляющих результатов органического поиска:
Переходы с поисковых систем (органика)
К счастью, с момента выпуска Jekyll в 2008 году появилось гораздо больше статических генераторов веб-сайтов и других сопутствующих сервисов.
Если вы рассматриваете статический движок для своего сайта, читайте нашу следующую статью с описанием основных фреймворков и инструментов, а также некоторыми советами и рекомендациями по разработке отличных статических сайтов.
Делаем неубиваемый сайт: статика и динамика
Немного об устройстве сайтов.
Это статья об устройстве сайтов и интернета. Она будет полезна тем, кто хочет заниматься веб-разработкой, строить сверхбыстрые сайты и неубиваемую инфраструктуру.
Что значит «зайти на сайт»
Когда вы заходите на сайт, на самом деле вы никуда не заходите. Вы делаете запрос на некий удалённый сервер, а он вам присылает в ответ документ. Документ прилетает в ваш браузер, браузер его анализирует и рисует вам веб-страничку. Вам кажется, что вы пришли в интернет, но на самом деле это кусочек интернета пришёл к вам.
Когда вы кликаете по ссылке, вам кажется, что вы переместились с одной страницы на другую. На самом деле вы отправили новый запрос на сервер, получили ответ, браузер снова нарисовал страницу. Вы никуда не переместились, вы лишь получили новый кусочек интернета.
Теперь вопрос — откуда появились эти кусочки интернета, которые вам прислали?
Статичные сайты
Изначально сайты в интернете хранились и отдавались так:
Если вам на сайте нужно было иметь 30 страниц, вам нужно было иметь 30 документов, которые физически будут лежать на сервере.
Например, вот так выглядят документы сайта, на котором мы пилим наши проектики — mihailmaximov.ru. В «корне» нам доступен только документ index.html — это главная страница. Ещё слева видны папки с проектами. Чтобы завести новый проект, мы делаем новую папку и складываем в неё нужные документы.
Что нам даёт статичный сайт (и в чём мешает)
✅ Сайт работает молниеносно — отдавать заранее заготовленные документы очень легко, с этим справится даже маломощный компьютер типа Arduino. А мощные веб-сервера — и подавно: странички будут прилетать мгновенно.
✅ Сайт очень трудно взломать: единственный способ навредить сайту — это получить прямой доступ в файловую систему сервера и вручную напакостить в каждом файле (или стереть их). Это не невозможно, но в современных реалиях довольно трудно.
✅ Сайт элементарно переносить: если сломался один сервер, просто копируете файлы из резервной копии на новый сервер, и сайт работает как раньше. Никакой дополнительной настройки, кроме перенаправления адреса для запросов. Никаких баз данных, версий движка и глобальных переменных.
✅ Дёшево хостить: услуга хостинга файлов — самая дешёвая из всех, потому что хранение и раздача файлов расходуют мало ресурсов.
❌ Сайт неудобно обновлять: чтобы обновить информацию на какой-то странице, нужно отредактировать нужный файл и загрузить его на сервер. Если нужно внести изменения в 30 страниц, эту операцию придётся повторить 30 раз. Например, если вы хотите добавить новый пункт меню.
❌ Сайт не подстраивается под пользователя: статичный сайт может только выдавать вам заранее заготовленную информацию. Если нужно сформировать корзину покупок или поискать что-то конкретно под ваш запрос, статики недостаточно. Исключение — скрипты, которые можно выполнить прямо в браузере.
👉 Статичные сайты идеальны для сайтов-визиток или сайтов-книг, где один раз написал информацию и она там долго лежит.
Динамические сайты
Чтобы обойти ограничения статичных сайтов, придумали такую схему:
Если в статичных сайтах сервер выполнял роль работника архива, то в динамических — это такой официант: он принимает у вас запрос, относит на кухню, даёт задание повару, а когда блюдо готово, приносит вам.
На самом сервере больше не хранятся как таковые документы — теперь они собираются под индивидуальный запрос из существующих заготовок.
Например, в базе данных лежит тысяча товаров, а вы просите показать 10 самых популярных. Не проблема: шеф-повар делает запрос в базу данных, получает ответ, собирает под вас страничку и отдаёт.
Когда сайт динамический, его фактические файлы никак не связаны с его содержимым. Например, на скриншоте — папка системы динамических сайтов WordPress. Каждый из 14 файлов — это, условно говоря, повар, который делает свою часть работы. Но эти 14 поваров вместе могут подать нам бесконечное количество динамических документов. То, что здесь 14 файлов, никак не связано с тем, сколько и каких страниц может выдать наш сайт.
Что даёт динамический сайт (и в чём мешает)
✅ Содержимое сайта можно адаптировать под пользователя: страницы заказов, личные кабинеты, результаты поиска, соцсети, форумы, комментарии — всё это динамические продукты. В статике реализовать всё это невозможно.
✅ Простое обновление и дополнение: при желании разработчик может сделать удобный интерфейс добавления материалов на сайт — как в тех же соцсетях. Вам не нужно загружать файлик в «Фейсбук» или VK.com, вы просто набираете текст прямо в браузере.
✅ Интеграции: сайт может сам обращаться к базам данных, спрашивать данные у других сервисов, на лету подгружать ваши данные из разных источников.
❌ Сайт работает медленнее: сборка страниц на лету требует больше времени, чем отдача документа. Счёт идёт на десятые доли секунды, но когда у тебя очень много пользователей, это может быть проблемой.
❌ Есть пространство для взлома: хакер может завернуть в свой запрос какой-нибудь вредоносный код (в духе «повар, приготовь мне торт с ключами от твоей квартиры»). Если специально не предусматривать такие атаки, можно получить дыру в безопасности.
❌ Непросто обслуживать и переносить. Динамические сайты требуют установки на сервер особенного сборочного софта (например, PHP или Python). Этот софт должен быть определённой версии, с определённым набором модулей. Их нужно правильно между собой увязать. Это не так просто, как скопировать файлики и перекинуть на другой сервер.
Гибридный вариант: кеширование
Допустим, нам нужно совместить плюсы двух подходов. Мы хотим, чтобы сайт был предельно быстрый и взломостойкий, но при этом его было легко обновлять. На этот случай придумали кеширование.
Кэширование похоже на отдел кулинарии в супермаркете: повара заранее наготовили салатов и нажарили курицы, а мы берём эту еду с прилавка. С одной стороны, не нужно ждать, что повар приготовит курицу конкретно под нас. С другой стороны, эта курица может быть не самой свежей.
Кэширование работает похожим образом: берётся движок сайта, на его основе генерируется куча документов. И дальше эта куча ведёт себя как статичный сайт. Когда это может быть полезно:
Что дальше
На основе идеи кеширования придумали технологию генерации статичных сайтов. Это когда у вас есть куча исходного текста (например, инструкция от сложной системы). Вы говорите: «Оформи мне эту кучу текста по такому-то шаблону». Специальный генератор оформляет эту кучу, а вы получаете пачку статичных документов, которые работают как молниеносный статичный сайт.
В следующем выпуске поговорим про такие генераторы статических сайтов.