Jump to content

Веб-фреймворк

(Перенаправлено с сопоставления URL-адресов )

( Веб-фреймворк WF ) или фреймворк веб-приложений ( WAF ) — это программная платформа , предназначенная для поддержки разработки веб-приложений , включая веб-сервисы, веб-ресурсы и веб-API . Веб-фреймворки предоставляют стандартный способ создания и развертывания веб-приложений во Всемирной паутине . Веб-фреймворки призваны автоматизировать накладные расходы, связанные с обычными действиями, выполняемыми при веб-разработке . Например, многие веб-платформы предоставляют библиотеки для доступа к базам данных , структуры шаблонов и управления сеансами , а также часто способствуют повторному использованию кода . [1] Хотя они часто предназначены для разработки динамических веб-сайтов , они также применимы и к статическим веб-сайтам . [2]

Поскольку дизайн Всемирной паутины по своей сути не был динамичным, ранний гипертекст , написанных вручную состоял из текстовых файлов HTML и публикуемых на веб-серверах . Любые изменения опубликованных страниц должны вноситься автором страниц. В 1993 году был представлен стандарт Common Gateway Interface (CGI) для взаимодействия внешних приложений с веб-серверами, чтобы обеспечить динамическую веб-страницу , отражающую вводимые пользователем данные. [3]

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

В 1995 году впервые появились полностью интегрированные серверные/языковые среды разработки, а также были представлены новые веб-языки, такие как ColdFusion , PHP и Active Server Pages . [ нужна ссылка ]

Хотя подавляющее большинство языков для создания динамических веб-страниц имеют библиотеки, помогающие решать общие задачи, веб-приложениям часто требуются специальные библиотеки для конкретных задач, таких как создание HTML (например, Jakarta Faces ). [ нужна ссылка ]

В конце 1990-х годов начали появляться зрелые, «полнофункциональные» фреймворки, которые часто объединяли несколько библиотек, полезных для веб-разработки , в единый связный программный стек , который могли использовать веб-разработчики. [ нужна ссылка ]

Типы фреймворковых архитектур

[ редактировать ]

Большинство веб-фреймворков основаны на модель-представление-контроллер (MVC) шаблоне . [ нужна ссылка ]

Модель-представление-контроллер (MVC)

[ редактировать ]

MVC Многие платформы следуют архитектурному шаблону , разделяя модель данных на бизнес-правила («контроллер») и пользовательский интерфейс («представление»). Обычно это считается хорошей практикой, поскольку она делает код модульным , способствует повторному использованию кода и позволяет применять несколько интерфейсов. В веб-приложениях это позволяет представлять разные представления, например, обслуживать разные веб-страницы для мобильных и настольных браузеров или предоставлять машиночитаемые веб-служб интерфейсы .

На основе push и на основе pull

[ редактировать ]

Большинство фреймворков MVC следуют архитектуре, основанной на push-уведомлениях, также называемой «основанной на действиях». Эти платформы используют действия, которые выполняют необходимую обработку, а затем «переносят» данные на уровень представления для визуализации результатов. [5] Альтернативой этому является архитектура на основе извлечения, которую иногда также называют «компонентной». Эти платформы начинаются со слоя представления, который затем может «извлекать» результаты из нескольких контроллеров по мере необходимости. В этой архитектуре несколько контроллеров могут быть задействованы в одном представлении.

Трехуровневая организация

[ редактировать ]

В трехуровневой организации приложения структурированы вокруг трех физических уровней: клиента, приложения и базы данных . [6] [7] [8] [9] База данных обычно представляет собой СУБД . Приложение содержит бизнес-логику, работает на сервере и взаимодействует с клиентом по протоколу HTTP . [10] Клиент веб-приложений — это веб-браузер, который запускает HTML, созданный на уровне приложения. [11] [12] Этот термин не следует путать с MVC, где, в отличие от трехуровневой архитектуры, считается хорошей практикой держать бизнес-логику подальше от контроллера, «среднего уровня». [13] [14]

Каркасные приложения

[ редактировать ]

Платформы созданы для поддержки создания интернет-приложений на основе одного языка программирования, начиная от инструментов общего назначения, таких как Zend Framework и Ruby on Rails , которые расширяют возможности определенного языка, до программируемых пакетов на родном языке, созданных на основе конкретное пользовательское приложение, такое как системы управления контентом (CMS), некоторые инструменты мобильной разработки и некоторые инструменты портала. [15]

Фреймворки веб-сайтов общего назначения

[ редактировать ]

Веб-фреймворки должны функционировать в соответствии с архитектурными правилами браузеров и протоколов, таких как HTTP , который не имеет состояния . Веб-страницы обслуживаются сервером , а затем могут быть изменены браузером с помощью JavaScript . Любой подход имеет свои преимущества и недостатки. [ нужна ссылка ]

Изменения страниц на стороне сервера обычно требуют обновления страницы, но позволяют использовать любой язык и задействовать больше вычислительной мощности. Изменения на стороне клиента позволяют обновлять страницу небольшими порциями, что похоже на настольное приложение, но ограничено JavaScript и запускается в браузере пользователя, который может иметь ограниченную вычислительную мощность. Обычно используется некоторая смесь этих двух. [16] Приложения, которые интенсивно используют JavaScript и обновляют только части страницы, называются одностраничными приложениями и обычно используют клиентскую веб-инфраструктуру JavaScript для организации кода. [ нужна ссылка ]

Серверная часть

[ редактировать ]

Клиентская сторона

[ редактировать ]

включают Backbone.js , AngularJS , Angular , Ember.js , ReactJS , jQuery UI , Svelte и Vue.js. Примеры [17]

Дискуссионные форумы, вики и блоги

[ редактировать ]

Платформы обычно устанавливают поток управления программой и позволяют пользователю платформы «подключаться» к этому потоку, предоставляя различные события. [18] Этот шаблон проектирования « инверсия управления » считается определяющим принципом структуры и приносит пользу коду, обеспечивая общий поток для команды, который каждый может настроить одинаковым образом. [18] Например, некоторые популярные «микрофреймворки», такие как Sinatra от Ruby (который вдохновил Express.js ), допускают перехваты «промежуточного программного обеспечения» до и после HTTP-запросов. Эти функции промежуточного программного обеспечения могут быть любыми и позволяют пользователю определять ведение журнала, аутентификацию и управление сеансами, а также перенаправление. [19]

Система веб-шаблонов

[ редактировать ]

Кэширование

[ редактировать ]

Веб-кэширование — это кэширование веб - документов с целью снижения полосы пропускания использования на сервер , нагрузки и предполагаемой « задержки ». Веб-кеш хранит копии проходящих через него документов; последующие запросы могут быть удовлетворены из кэша, если выполняются определенные условия. Некоторые платформы приложений предоставляют механизмы для кэширования документов и обхода различных этапов подготовки страницы, таких как доступ к базе данных или интерпретация шаблона. [ нужна ссылка ]

Безопасность

[ редактировать ]

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

Доступ к базе данных, сопоставление и настройка

[ редактировать ]

Многие веб-фреймворки создают унифицированный API для серверной части базы данных, что позволяет веб-приложениям работать с различными базами данных без изменения кода и позволяет программистам работать с концепциями более высокого уровня. Кроме того, некоторые объектно-ориентированные платформы содержат инструменты сопоставления, обеспечивающие объектно-реляционное сопоставление , которое сопоставляет объекты с кортежами . [20]

Некоторые платформы сводят к минимуму настройку веб-приложений за счет использования самоанализа и/или следования хорошо известным соглашениям. Например, многие платформы Java используют Hibernate в качестве уровня сохранения, который может генерировать схему базы данных во время выполнения, способную сохранять необходимую информацию. Это позволяет разработчику приложения проектировать бизнес-объекты без необходимости явного определения схемы базы данных. Такие платформы, как Ruby on Rails, также могут работать в обратном порядке, то есть определять свойства объектов модели во время выполнения на основе схемы базы данных. [20]

Другие функции, которые могут предоставлять веб-фреймворки, включают поддержку транзакций. [21] и инструменты миграции баз данных . [20]

Сопоставление URL-адресов

[ редактировать ]

платформы Средство сопоставления или маршрутизации URL-адресов — это механизм, с помощью которого платформа интерпретирует URL-адреса. Некоторые платформы, такие как Drupal и Django, сопоставляют предоставленный URL-адрес с заранее определенными шаблонами с помощью регулярных выражений , в то время как другие используют методы перезаписи для преобразования предоставленного URL-адреса в тот, который будет распознаваться базовым механизмом. Другой метод — это обход графа, такой как используемый Zope , где URL-адрес разбивается на этапы, которые проходят по графу объекта (моделей и представлений). [ нужна ссылка ]

Система сопоставления URL-адресов, которая использует сопоставление или перезапись шаблонов для маршрутизации и обработки запросов, позволяет использовать более короткие и более « дружественные » URL-адреса, увеличивая простоту сайта и обеспечивая лучшую индексацию поисковыми системами. Например, URL-адрес, который заканчивается на «/page.cgi?cat=science&topic=physical», можно изменить на просто «/page/science/physical». Это облегчает людям запоминание, чтение и запись URL-адреса, а также предоставляет поисковым системам лучшую информацию о структурной структуре сайта. Подход с обходом графа также имеет тенденцию приводить к созданию дружественных URL-адресов. Более короткий URL-адрес, такой как «/page/science», как правило, существует по умолчанию, поскольку это просто более короткая форма более длинного перехода к «/page/science/physical». [ нужна ссылка ]

Ajax , сокращение от « Асинхронный JavaScript и XML », представляет собой метод веб-разработки для создания веб-приложений. Цель состоит в том, чтобы сделать веб-страницы более отзывчивыми за счет незаметного обмена небольшими объемами данных с сервером, чтобы не приходилось перезагружать всю веб-страницу каждый раз, когда пользователь запрашивает изменение. Это предназначено для повышения интерактивности, скорости, удобства обслуживания и использования веб-страницы . [22]

Из-за сложности Ajax-программирования на JavaScript существует множество Ajax-фреймворков , которые поддерживают исключительно Ajax. Некоторые фреймворки Ajax даже встроены в более крупные фреймворки. Например, библиотека jQuery JavaScript включена в Ruby on Rails. [ нужна ссылка ]

С возросшим интересом к разработке « Web 2.0 » насыщенных веб-приложений сложность программирования непосредственно на Ajax и JavaScript стала настолько очевидной, что в дело вмешалась технология компиляции, позволяющая разработчикам писать код на языках высокого уровня, таких как Java, Python и Руби. Первым из этих компиляторов был Morfik, за которым последовал Google Web Toolkit порты на Python и Ruby в форме Pyjs , а через некоторое время последовали и RubyJS. Эти компиляторы и связанные с ними библиотеки наборов виджетов делают разработку мультимедийных приложений Ajax гораздо более похожей на разработку настольных приложений. [ нужна ссылка ]

Веб-сервисы

[ редактировать ]

Некоторые платформы предоставляют инструменты для создания и предоставления веб-сервисов. Эти утилиты могут предлагать те же инструменты, что и остальная часть веб-приложения. [23]

Веб-ресурсы

[ редактировать ]

Ряд новых Web 2.0 инфраструктур RESTful теперь предоставляют инфраструктуру ресурсно-ориентированной архитектуры (ROA) для создания коллекций ресурсов в своего рода семантической сети онтологии , основанной на концепциях Resource Description Framework (RDF). [ нужна ссылка ]

См. также

[ редактировать ]
  1. ^ Несколько (вики). «Среда веб-приложения» . Докфорж . Архивировано из оригинала 23 июля 2015 г.
  2. ^ «Лучшие генераторы статических сайтов с открытым исходным кодом» . СтатикГен .
  3. ^ «CGI: Общий интерфейс шлюза» . Архивировано из оригинала 9 апреля 2009 г.
  4. ^ «Компьютерная графика» . www.ibm.com . Проверено 7 мая 2021 г.
  5. ^ Томсон, Крис (29 октября 2003 г.). «Разъяснение по поводу MVC = Pull и MVC Push» . Проверено 29 июля 2007 г.
  6. ^ Майкрософт. «Трёхуровневое распределение» . Проверено 19 сентября 2011 г.
  7. ^ Оракул. «clustering_concepts_10en» (PDF) . Проверено 19 сентября 2011 г.
  8. ^ Роберт Р. Перкоски. «Введение в веб-разработку» . Архивировано из оригинала 07.11.2013.
  9. ^ ИБМ. «Использование Client Access Express в трехуровневой среде» . Проверено 19 сентября 2011 г.
  10. ^ Оракул. «Понимание трехуровневой архитектуры» . Проверено 19 сентября 2011 г.
  11. ^ Майкрософт. «Прагматическая архитектура: многослойность» . Проверено 19 сентября 2011 г.
  12. ^ Арокия. «Трёхуровневая веб-архитектура» . Проверено 19 сентября 2011 г.
  13. ^ «Рекомендации по использованию контроллера ASP.NET MVC» . Архивировано из оригинала 11 октября 2011 г. Проверено 19 сентября 2011 г.
  14. ^ Джеймис Бак. «Тощий контролер, толстая модель» . Архивировано из оригинала 16 мая 2015 г.
  15. ^ «Начало работы с веб-фреймворками» . Проводной журнал . Проверено 2 апреля 2018 г.
  16. ^ КЛИМУШИН Мел (6 апреля 2015 г.). «Архитектура веб-приложений: клиентская и серверная стороны» . Атомный спин . Проверено 06 марта 2016 г.
  17. ^ «AngularJS против Backbone.js против Ember.js» . www.airpair.com . Проверено 4 июня 2016 г.
  18. ^ Перейти обратно: а б Фаулер, Мартин. «блики: InversionOfControl» . martinfowler.com . Проверено 06 марта 2016 г.
  19. ^ Сюэ, Цян. «Capital One Engineering – Философия, которая сформировала успешные структуры» . www.capitalone.io . Проверено 06 марта 2016 г.
  20. ^ Перейти обратно: а б с «Основы активной записи» . Рубин на рельсах . Проверено 20 марта 2021 г. Реляционное сопоставление объектов, обычно называемое аббревиатурой ORM, представляет собой метод, который соединяет богатые объекты приложения с таблицами в системе управления реляционной базой данных... Active Record автоматически создает методы, позволяющие приложению читать и манипулировать данными, хранящимися внутри. свои таблицы.
  21. ^ «Активные записи транзакций» . Рубин на рельсах . Проверено 20 марта 2021 г.
  22. ^ «Что такое AJAX» . www.dlsweb.rmit.edu.au . Проверено 7 мая 2021 г.
  23. ^ Максимилиан, EM (2006). «Урок 4: Веб-сервисы на Rails: использование Ruby и Rails для разработки веб-сервисов и коллажей». 2006 Международная конференция IEEE по веб-сервисам (ICWS'06) . стр. xliii. дои : 10.1109/ICWS.2006.139 . ISBN  0-7695-2669-1 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2ade75622643f2d63d820d6bf7fd2844__1719294600
URL1:https://arc.ask3.ru/arc/aa/2a/44/2ade75622643f2d63d820d6bf7fd2844.html
Заголовок, (Title) документа по адресу, URL1:
Web framework - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)