Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

История [ править ]

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

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

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

Объяснение [ править ]

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

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

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

Языки [ править ]

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

  • ActiveVFP (* .avfp)
  • ASP (* .asp)
  • Веб-формы ASP.NET (* .aspx)
  • Веб-страницы ASP.NET (* .cshtml, * .vbhtml)
  • Bigwig (* .wig)
  • Язык разметки ColdFusion (* .cfm)
  • Перейти (* .go)
  • Скрипт Google Apps (* .gs)
  • Взломать (* .php)
  • Haskell (* .hs) (пример: Yesod )
  • Java (* .jsp, * .do) через JavaServer Pages
  • JavaScript с использованием серверного JavaScript (* .ssjs, * .js) (пример: Node.js )
  • Лассо (* .lasso)
  • Lua (* .lp * .op * .lua)
  • Парсер (* .p)
  • Perl через модуль CGI.pm (* .cgi, * .ipl, * .pl)
  • PHP (* .php, * .php3, * .php4, * .phtml)
  • Python (* .py) (примеры: Pyramid , Flask , Django )
  • R (* .rhtml) - (пример: rApache )
  • Ruby (* .rb, * .rbw) (пример: Ruby on Rails )
  • SMX (* .smx)
  • Tcl (* .tcl)
  • WebDNA (* .dna, *. Tpl)
  • Прогресс WebSpeed (* .r, *. W)

См. Также [ править ]

  • Клиентские сценарии
  • Система управления контентом (CMS)
  • Боковая сторона включает
  • JSP
  • Node.js
  • Очерк веб-дизайна и веб-разработки
  • Perl / Plack
  • PHP
  • Серверные компоненты (SSI)
  • веб-разработка

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

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

Внешние ссылки [ править ]

  • Серверные сценарии в Curlie ;