Статья
Статический сайт: что это и чем отличается от динамического
Статический сайт — это готовые страницы-файлы, которые сервер отдаёт всем посетителям одинаковыми. Динамический собирает страницу в момент запроса: берёт данные из базы, учитывает, кто зашёл и что лежит в корзине. Разбираем, чем они отличаются на деле, где хватит статического и почему «статический» не значит «неподвижный».
Что это такое
Статический сайт — это набор готовых HTML-файлов. Сервер хранит их и на каждый запрос отдаёт один и тот же файл, ничего не вычисляя: что увидел один посетитель, то увидят и все остальные.
Динамический сайт собирает страницу в момент запроса. Программа на сервере берёт данные из базы, подставляет их в шаблон и только потом отправляет результат. Поэтому у каждого посетителя страница может быть своей: с его именем, корзиной, ценами для его города.
Чем они отличаются
| Что сравниваем | Статический | Динамический |
|---|---|---|
| Как появляется страница | Собрана заранее и хранится файлом | Собирается при каждом запросе |
| Где лежит содержимое | В файлах сайта | Чаще всего в базе данных |
| Скорость | Высокая: серверу нечего вычислять | Зависит от кода, базы и сервера |
| Безопасность | Меньше точек для взлома: нет базы и панели входа | База, админка и плагины — больше мест, где ищут уязвимости |
| Хостинг | Подойдёт самый простой | Нужен сервер с поддержкой языка программирования и базы |
| Обновление | После правки сайт собирают заново | Правка в панели сразу появляется на сайте |
«Статический» не значит «неподвижный»
Слово касается только того, как сервер отдаёт страницу. В браузере статический сайт может быть каким угодно живым: анимация, видео, карта, калькулятор — всё это работает на стороне посетителя.
Сложнее с тем, что требует сервера: принять заявку, оплату, найти что-то по сайту. Для этого к статическим страницам подключают отдельный обработчик или внешний сервис — форма заявки даже на самом простом лендинге куда-то отправляет данные.
Примеры
- Статические: лендинг, сайт-визитка, портфолио, документация, небольшой блог — страницы меняются редко и одинаковы для всех. О визитках — статья «Сайт-визитка».
- Динамические: интернет-магазин с корзиной и остатками, личный кабинет, онлайн-бронирование, новостной портал, где материалы выходят каждый час, соцсети.
Генераторы статических сайтов
Писать каждую страницу вручную не нужно. Генератор статических сайтов собирает HTML-файлы из шаблонов и текстов — обычно в формате Markdown. Самые известные — Hugo, Jekyll, Eleventy и Astro; статическую сборку умеют и большие фреймворки вроде Next.js. Разработчик меняет текст, запускает сборку и выкладывает готовые файлы на хостинг.
Чтобы правки могли вносить не программисты, к генератору подключают «безголовую» CMS: редактор пишет текст в привычной панели, а сайт пересобирается сам. Что такое CMS — в статье «Что такое CMS».
Плюсы и минусы
Плюсы:
- скорость — сервер отдаёт готовый файл, а страницы легко раздавать через CDN, сеть серверов поближе к посетителям;
- меньше уязвимостей — нет базы данных и панели входа, которые пытаются взломать;
- выдерживает наплыв посетителей — отдать файл проще, чем собрать страницу;
- дешёвый и простой хостинг.
Минусы:
- каждое изменение — пересборка сайта;
- нет того, что зависит от посетителя: личного кабинета, корзины, персональных цен;
- формы, поиск и оплату подключают отдельно.
Чаще всего — смесь
Современные сайты редко бывают чисто статическими или чисто динамическими. Страницы, одинаковые для всех, собирают заранее, а корзину, кабинет и остатки — на лету. В интернет-магазине карточка товара может быть готовой страницей, а наличие и корзина подгружаются отдельно.
Как устроено у нас
Наш собственный сайт — динамический, хотя по содержанию мог бы быть статическим. Сервер собирает каждую страницу при запросе, потому что добавляет в неё одноразовый ключ для политики безопасности: она не даёт выполниться скриптам, которые кто-то попытался бы подложить на страницу. А статьи блога, включая эту, хранятся простыми текстовыми файлами в коде сайта, без базы данных: после новой статьи сайт собирается и выкладывается заново.
Лендинг по своей природе ближе к статическому сайту: одна страница, которая меняется нечасто. Мы верстаем его на коде, чтобы он быстро загружался на телефоне и медленном интернете, а форму заявки и кнопки мессенджеров подключаем сразу — заявки приходят в Telegram или на почту. После запуска тексты, цены и фото меняем мы — разово или в рамках поддержки.