Перейти к содержанию

Серверные сценарии

Статья из Авикипедии. Энциклопедии

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

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

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

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

    1. История

В декабре 1994 года компания Netscape представила реализацию JavaScript для серверных сценариев в составе Netscape Enterprise Server. В начале 1996 года Фред Дюфрен применил эту технологию при создании первого веб-сайта для бостонской телевизионной станции WCVB-TV. Соответствующий патент был выдан в 1998 году и в настоящее время принадлежит Open Invention Network (OIN). В 2010 году OIN признала заслуги Дюфрена, назвав его ключевым участником проекта за вклад в развитие серверных сценариев.

    1. Принципы работы

На ранних этапах развития веба серверные сценарии реализовывались преимущественно с помощью программ на языке Си, скриптов Perl и командной оболочки через интерфейс CGI. Эти скрипты выполнялись операционной системой, а результаты возвращались веб-сервером. Современные веб-серверы часто поддерживают прямое выполнение скриптовых языков, таких как Active Server Pages, JavaServer Pages, Perl, PHP и Ruby, либо собственными средствами, либо через модули расширения (например, mod_perl или mod_php). Некоторые платформы, like WebDNA, включают встроенные системы баз данных. Прямое выполнение скриптов обычно снижает накладные расходы по сравнению с CGI, так как исключает необходимость вызова внешних интерпретаторов.

Для построения динамических веб-сайтов могут использоваться специализированные серверы приложений, такие как GlassFish, Plack или библиотека BaseHTTPServer в Python. Разработчикам важно понимать логическое и физическое разделение между клиентом и сервером. Например, для выполнения кода на сервере в ответ на действие пользователя необходимо организовать отправку запроса от браузера обратно на сервер.

Обработка серверных сценариев полностью осуществляется на сервере. Когда клиент запрашивает страницу, содержащую такие сценарии, сервер приложений выполняет их и возвращает готовую HTML-страницу.

    1. Серверный рендеринг

С распространением одностраничных приложений получил развитие подход, известный как серверный рендеринг. При этом сервер отправляет клиенту статический HTML, который затем становится динамическим благодаря выполнению клиентского JavaScript, связывающего обработчики событий с элементами страницы (процесс называется гидратацией). Примеры фреймворков, поддерживающих серверный рендеринг: Next.js, Nuxt.js и Angular.

Альтернативой серверному рендерингу является генерация статических сайтов. В этом случае все HTML-страницы создаются на этапе сборки приложения и при запросе передаются клиенту без дополнительной обработки. Это ускоряет время отрисовки, но требует пересборки страниц при изменении данных. Инструменты для генерации статических сайтов включают Jekyll и Gatsby, а для их хостинга часто используются платформы like Netlify, Vercel или GitHub Pages.

    1. См. также
  • Сценарии на стороне клиента
  • Система управления содержимым (CMS)
  • Edge Side Includes
  • JavaServer Pages
  • Node.js
  • Next.js
  • PHP
  • Server Side Includes (SSI)
  • Веб-разработка
    1. Примечания

Категория:Скриптовые языки

Ссылки[править | править код]