Динамическая веб-страница — это веб-страница, созданная во время выполнения (во время выполнения программного обеспечения ), в отличие от статической веб-страницы , которая доставляется по мере ее хранения. Динамическая веб-страница на стороне сервера — это веб-страница , создание которой контролируется сервером приложений, обрабатывающим серверные скрипты. [1] В серверных скриптах параметры определяют , как происходит сборка каждой новой веб-страницы , включая настройку дополнительной обработки на стороне клиента. Динамическая веб-страница на стороне клиента обрабатывает веб-страницу с помощью JavaScript , работающего в браузере по мере ее загрузки. JavaScript может взаимодействовать со страницей через объектную модель документа (DOM), чтобы запрашивать состояние страницы и изменять его. Несмотря на то, что веб-страница может быть динамической на стороне клиента, ее все равно можно размещать на статической службе хостинга, такой как GitHub Pages или Amazon S3, если в нее не включен какой-либо серверный код.
Затем пользователь или компьютерная программа перезагружает динамическую веб-страницу , чтобы изменить некоторый переменный контент. Информация об обновлении может поступать с сервера или из изменений, внесенных в DOM этой страницы. Это может или не может обрезать историю просмотров или создать сохраненную версию для возврата, но динамическое обновление веб-страницы с использованием технологий AJAX не создаст страницу для возврата и не обрежет историю просмотров веб-страниц перед отображаемой страницей. Используя AJAX, конечный пользователь получает одну динамическую страницу, управляемую как единая страница в веб-браузере, в то время как фактический веб-контент, отображаемый на этой странице, может меняться. Механизм AJAX находится только в браузере, запрашивая части своего DOM, DOM , для своего клиента, с сервера приложений. Конкретный сервер приложений может предлагать стандартизированный интерфейс в стиле REST для предоставления услуг веб-приложению. [2]
DHTML — это общий термин для технологий и методов, используемых для создания веб-страниц, которые не являются статическими веб-страницами , хотя он вышел из употребления с популяризацией AJAX, термина, который теперь сам по себе используется редко. Клиентские скрипты, серверные скрипты или их комбинация обеспечивают динамический веб-опыт в браузере.
Классическая гипертекстовая навигация, использующая только HTML или XHTML , предоставляет «статический» контент, что означает, что пользователь запрашивает веб-страницу и просто просматривает страницу и информацию на ней.
Однако веб-страница может также предоставлять «живой», «динамический» или «интерактивный» пользовательский опыт. Содержимое (текст, изображения, поля форм и т. д.) на веб-странице может меняться в ответ на различные контексты или условия.
Создать такой эффект можно двумя способами:
Веб-страницы, использующие клиентские скрипты, должны использовать технологию представления, широко называемую страницами с богатым интерфейсом . Клиентские языки сценариев , такие как JavaScript или ActionScript , используемые для технологий Dynamic HTML (DHTML) и Flash соответственно, часто используются для оркестровки типов медиа (звук, анимация, изменяющийся текст и т. д.) представления. Скрипты также позволяют использовать удаленные скрипты , технику, с помощью которой страница DHTML запрашивает дополнительную информацию с сервера, используя скрытый Frame , XMLHttpRequests или веб-службу .
Веб-страницы, использующие серверные скрипты, часто создаются с помощью серверных языков, таких как PHP , Perl , ASP , JSP , ColdFusion и других. Эти серверные языки обычно используют Common Gateway Interface (CGI) для создания динамических веб-страниц . Такие типы страниц также могут использовать на стороне клиента первый тип (DHTML и т. д.).
Трудно быть точным относительно «динамических истоков веб-страниц» или хронологии, поскольку точная концепция имеет смысл только после «широкомасштабного развития веб-страниц». HTTP существует с 1989 года, HTML публично стандартизирован с 1996 года. Рост популярности веб-браузеров начался с Mosaic в 1993 году. Между 1995 и 1996 годами на рынок было представлено несколько динамических веб-продуктов, включая Coldfusion , WebObjects , PHP и Active Server Pages .
Внедрение JavaScript (тогда известного как LiveScript) позволило создавать динамические веб-страницы на стороне клиента, с кодом JavaScript, выполняемым в браузере клиента. [4] Буква «J» в термине AJAX изначально указывала на использование JavaScript, а также XML . С ростом обработки JavaScript на стороне сервера, например, Node.js , первоначально разработанного в 2009 году, JavaScript также используется для динамического создания страниц на сервере, которые отправляются клиентам в полностью сформированном виде.
MediaWiki , система управления контентом , на которой работает Wikipedia, является примером изначально динамической веб-страницы на стороне сервера, с которой взаимодействовали посредством отправки форм и параметров URL. Со временем постепенно улучшающиеся расширения, такие как визуальный редактор, также добавляли элементы, которые являются динамическими на стороне клиента, в то время как исходные динамические элементы на стороне сервера, такие как классическая форма редактирования, остаются доступными для возврата ( изящная деградация ) в случае ошибки или несовместимости.
Программа, работающая на веб-сервере ( серверный скриптинг ), используется для генерации веб-контента на различных веб-страницах, управления сеансами пользователей и контроля рабочего процесса. Ответы сервера могут определяться такими условиями, как данные в опубликованной HTML-форме , параметры в URL , тип используемого браузера, течение времени или состояние базы данных или сервера .
Такие веб-страницы часто создаются с помощью серверных языков, таких как ASP , ColdFusion , Go , JavaScript , Perl , PHP , Ruby , Python , WebDNA и других языков, сервером поддержки , который может работать на том же оборудовании, что и веб-сервер. Эти серверные языки часто используют Common Gateway Interface (CGI) для создания динамических веб-страниц. Двумя заметными исключениями являются ASP.NET и JSP , которые повторно используют концепции CGI в своих API, но фактически отправляют все веб-запросы в общую виртуальную машину.
Серверные языки используются для встраивания тегов или маркеров в исходный файл веб-страницы на веб-сервере. [5] Когда пользователь на клиентском компьютере запрашивает эту веб-страницу, веб-сервер интерпретирует эти теги или маркеры для выполнения действий на сервере. Например, серверу может быть поручено вставить информацию из базы данных или такую информацию, как текущая дата.
Динамические веб-страницы часто кэшируются, когда не ожидается никаких изменений или ожидается, что страница будет получать значительный объем веб-трафика, который будет напрасно нагружать сервер и замедлять загрузку страниц, если ему придется генерировать страницы «на лету» для каждого запроса.
Клиентский скриптинг изменяет поведение интерфейса на определенной веб-странице в ответ на действия устройства ввода или при определенных временных событиях. В этом случае динамическое поведение происходит в презентации . Клиентский контент генерируется на локальной компьютерной системе пользователя. [6]
Такие веб-страницы используют технологию представления, называемую страницами с богатым интерфейсом . Клиентские языки сценариев, такие как JavaScript или ActionScript , используемые для технологий Dynamic HTML (DHTML) и Flash соответственно, часто используются для оркестровки типов медиа (звук, анимация, изменяющийся текст и т. д.) представления. Клиентские сценарии также позволяют использовать удаленные сценарии , технику, с помощью которой страница DHTML запрашивает дополнительную информацию с сервера, используя скрытый фрейм , XMLHttpRequests или веб-службу .
Первое публичное использование JavaScript состоялось в 1995 году, когда язык был реализован в Netscape Navigator 2 , стандартизированном как ECMAScript два года спустя. [7]
Клиентский контент генерируется на клиентском компьютере. Веб-браузер извлекает страницу с сервера, затем обрабатывает встроенный в страницу код (обычно написанный на JavaScript ) и отображает извлеченный контент страницы пользователю. [8]
Свойство innerHTML
(или команда записи) может иллюстрировать динамическую генерацию страниц на стороне клиента: две отдельные страницы, A и B, могут быть повторно сгенерированы (с помощью «динамики ответа на событие») как document.innerHTML = A
и document.innerHTML = B
; или «динамики при загрузке» с помощью document.write(A)
и document.write(B)
.
Все компоненты клиента и сервера, которые совместно создают динамическую веб-страницу, называются веб-приложением . Веб-приложения управляют взаимодействием с пользователем, состоянием, безопасностью и производительностью. [9]
Ajax использует комбинацию клиентских скриптов и серверных запросов. Это метод разработки веб-приложений для динамического обмена контентом, и он отправляет запросы на сервер для получения данных, чтобы сделать это. Сервер возвращает запрошенные данные, которые затем обрабатываются клиентским скриптом. Этот метод может сократить время загрузки сервера, поскольку клиент не запрашивает повторную генерацию всей веб-страницы с помощью языкового анализатора сервера; передается только содержимое, которое будет изменено. Google Maps — пример веб-приложения, использующего методы Ajax.
Веб -клиент , такой как веб-браузер, может действовать как свой собственный сервер, получая доступ к данным с множества различных серверов, таких как Gopher, FTP, NNTP (Usenet) и HTTP, для создания страницы. HTTP поддерживает загрузку документов с клиента обратно на сервер. Для этого существует несколько методов HTTP .
{{cite web}}
: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )