Введение
Тип веб-страницы
Динамическая веб-страница – это веб-страница, формируемая во время выполнения (в процессе работы программного обеспечения), в отличие от статической веб-страницы, которая доставляется в том виде, в котором она сохранена. Динамическая веб-страница на стороне сервера – это веб-страница, формирование которой контролируется сервером приложений, обрабатывающим серверные скрипты. В серверных скриптах параметры определяют, как происходит сборка каждой новой веб-страницы, включая настройку дополнительной обработки на стороне клиента. Динамическая веб-страница на стороне клиента обрабатывает веб-страницу с помощью JavaScript, выполняемого в браузере при загрузке. JavaScript может взаимодействовать со страницей через объектную модель документа (DOM), запрашивая состояние страницы и изменяя его. Даже если веб-страница динамична на стороне клиента, она все равно может быть размещена на статическом хостинге, таком как GitHub Pages или Amazon S3, при условии, что в ней отсутствует серверный код. Динамическая веб-страница затем перезагружается пользователем или компьютерной программой для изменения некоторого переменного содержимого. Информация для обновления может поступать с сервера или в результате изменений, внесенных в DOM этой страницы. Это может или не может приводить к обрезке истории просмотров или созданию сохраненной версии для возврата, но динамическое обновление веб-страницы с использованием технологий AJAX не создаст страницу для возврата и не обрежет историю просмотров после отображаемой страницы. Используя AJAX, конечный пользователь получает одну динамическую страницу, управляемую как единая страница в веб-браузере, в то время как фактическое веб-содержимое, отображаемое на этой странице, может меняться. AJAX-движок находится только в браузере, запрашивающем части своего DOM, DOM для своего клиента, с сервера приложений. Конкретный сервер приложений может предлагать стандартизированный REST-подобный интерфейс для предоставления услуг веб-приложению. DHTML – это общий термин для технологий и методов, используемых для создания веб-страниц, которые не являются статическими, хотя он вышел из широкого употребления после популяризации AJAX, термин, который сам сейчас редко используется. Клиентские скрипты, серверные скрипты или их комбинация обеспечивают динамический веб-опыт в браузере.
История
Трудно точно определить "начало динамических веб-страниц" или хронологию их развития, поскольку сама концепция обретает смысл только после "широкого распространения веб-страниц". HTTP существует с 1989 года, HTML был публично стандартизирован в 1996 году. Рост популярности веб-браузеров начался с Mosaic в 1993 году. В период с 1995 по 1996 год на рынок было представлено несколько продуктов для создания динамических веб-страниц, включая Coldfusion, WebObjects, PHP и Active Server Pages. Появление JavaScript (тогда известного как LiveScript) позволило создавать динамические веб-страницы на стороне клиента, с исполнением JavaScript-кода в браузере пользователя. Буква "J" в термине AJAX изначально обозначала использование JavaScript, а также XML. С развитием серверной обработки JavaScript, например, Node.js, разработанного в 2009 году, JavaScript также используется для динамического создания страниц на сервере, которые затем полностью сформированными отправляются клиентам. MediaWiki, система управления контентом, на которой работает Википедия, является примером динамической веб-страницы, изначально реализованной на стороне сервера, взаимодействие с которой происходит через отправку форм и параметры URL. Со временем, благодаря прогрессивным расширениям, таким как визуальный редактор, добавлялись элементы, динамичные на стороне клиента, при этом оригинальные динамические элементы на стороне сервера, такие как классическая форма редактирования, остаются доступными для резервного использования (постепенная деградация) в случае ошибок или несовместимости.
Скриптовая программа на стороне сервера
Программа, работающая на веб-сервере (серверный скрипт), используется для генерации веб-контента на различных веб-страницах, управления пользовательскими сессиями и контроля рабочего процесса. Ответы сервера могут определяться такими условиями, как данные в отправленной HTML-форме, параметры в URL, тип используемого браузера, прошедшее время или состояние базы данных или сервера. Такие веб-страницы часто создаются с помощью серверных языков, таких как ASP, ColdFusion, Go, JavaScript, Perl, PHP, Ruby, Python, WebDNA и других языков, с помощью поддерживающего сервера, который может работать на том же оборудовании, что и веб-сервер. Эти языки серверной стороны часто используют интерфейс Common Gateway Interface (CGI) для создания динамических веб-страниц. Два заметных исключения – ASP.NET и JSP, которые повторно используют концепции CGI в своих API, но фактически направляют все веб-запросы в общую виртуальную машину. Серверные языки используются для встраивания тегов или маркеров в исходный файл веб-страницы на веб-сервере. Когда пользователь на клиентском компьютере запрашивает эту веб-страницу, веб-сервер интерпретирует эти теги или маркеры для выполнения действий на сервере. Например, сервер может быть инструктирован вставить информацию из базы данных или информацию, такую как текущая дата. Динамические веб-страницы часто кэшируются, когда ожидается мало или отсутствие изменений, и предполагается, что страница получит значительный объем веб-трафика, что нерационально нагрузит сервер и замедлит загрузку страницы, если бы ей приходилось генерировать страницы «на лету» для каждого запроса.
Комбинированные технологии
Все компоненты клиента и сервера, которые в совокупности формируют динамическую веб-страницу, называются веб-приложением. Веб-приложения управляют взаимодействием с пользователем, состоянием, безопасностью и производительностью. Ajax использует сочетание клиентского скриптинга и серверных запросов. Это техника разработки веб-приложений для динамического обмена данными, отправляющая запросы на сервер для получения необходимых данных. Сервер возвращает запрошенные данные, которые затем обрабатываются клиентским скриптом. Эта техника может снизить нагрузку на сервер, поскольку клиенту не требуется запрашивать полную перегенерацию веб-страницы языковым парсером сервера – передается только контент, который должен быть изменен. Google Maps является примером веб-приложения, использующего технологии Ajax. Веб-клиент, такой как веб-браузер, может функционировать как самостоятельный сервер, получая данные с различных серверов, таких как Gopher, FTP, NNTP (Usenet) и HTTP, для построения страницы. HTTP поддерживает загрузку документов с клиента на сервер. Для этого существует несколько HTTP-методов.