stringtranslate.com

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

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

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

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

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

История

Netscape представила реализацию JavaScript для серверных сценариев с помощью Netscape Enterprise Server , впервые выпущенного в декабре 1994 года (вскоре после выпуска JavaScript для браузеров). [1] [2]

Серверные сценарии позже использовались в начале 1995 года Фредом Дюфреном при разработке первого веб-сайта для телевизионной станции WCVB в Бостоне, штат Массачусетс . Технология описана в патенте США 5835712. Патент был выдан в 1998 году и в настоящее время принадлежит Open Invention Network (OIN). В 2010 году OIN назвал Фреда ДюФрена «Выдающимся изобретателем» за его работу над серверными сценариями.

Объяснение

На заре Интернета сценарии на стороне сервера почти исключительно выполнялись с использованием комбинации программ C , сценариев Perl и сценариев оболочки с использованием общего интерфейса шлюза (CGI). Эти сценарии выполнялись операционной системой , а результаты возвращались веб-сервером. Многие современные веб-серверы могут напрямую выполнять языки сценариев, такие как ASP , JSP , Perl , PHP и Ruby , либо непосредственно на веб-сервере, либо через модули расширения (например, mod_perl или mod_php ) на веб-сервере. Например, WebDNA включает собственную встроенную систему баз данных. Любая форма сценариев (например, CGI или прямое выполнение) может использоваться для создания сложных многостраничных сайтов, но прямое выполнение обычно приводит к меньшим накладным расходам из-за меньшего количества вызовов внешних интерпретаторов.

Динамические веб-сайты иногда используют собственные серверы веб-приложений, такие как Glassfish , Plack и Python «Base HTTP Server», хотя некоторые могут не считать это скриптами на стороне сервера. При использовании методов динамического веб-скриптинга разработчики должны хорошо понимать логическое, временное и физическое разделение между клиентом и сервером. Например, чтобы действие пользователя инициировало выполнение серверного кода, разработчик, работающий с классическим ASP, должен явно заставить браузер пользователя выполнить обратный запрос к веб-серверу.

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

Подходы

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

На заре Интернета контент создавался исключительно на серверной стороне. После широкого распространения одностраничных приложений переднего плана был представлен новый подход к созданию HTML с использованием клиентского приложения, но на внутренней стороне. Примерами фреймворков, использующих SSR, являются Next.js , Nuxt.js и Nest.js. Они используют React.js , Vue.js и Angular соответственно для генерации контента сервера.

Генерация на стороне сервера

Генерация на стороне сервера, или SSG, является альтернативой SSR. При рендеринге на стороне сервера страница обычно собирается на сервере один раз для каждого запроса. Напротив, при использовании SSG приложение генерирует все статические HTML-страницы во время сборки. Эти предварительно созданные страницы затем отправляются клиенту при каждом запросе без необходимости их повторного создания. Это приводит к сокращению времени рендеринга, поскольку не нужно создавать новую страницу при каждом запросе; сервер просто передает файл, который он уже сгенерировал ранее. Минус в том, что при изменении некоторых данных на странице их необходимо перестраивать.

Генерация файлов может происходить на совершенно другом компьютере, например, с помощью непрерывной доставки . Примерами инструментов SSG являются Jekyll , Gatsby или Eleventy. Эти сайты часто размещаются на страницах Netlify или GitHub . GitHub также поддерживает проекты Jekyll, в которых сайт автоматически создается при добавлении изменений в git .

Языки

Доступен ряд языков сценариев на стороне сервера, в том числе:

Смотрите также

Рекомендации

  1. ^ «Руководство по серверному JavaScript». Корпорация Netscape Communications. 1998 год . Проверено 25 апреля 2012 г.
  2. ^ Майк Морган (1996). «Использование Netscape™ LiveWire™, специальная версия». Que.

Внешние ссылки