~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 59C5D578AD7A6780974363351F676C45__1718856600 ✰
Заголовок документа оригинал.:
✰ Web framework - Wikipedia ✰
Заголовок документа перевод.:
✰ Веб-фреймворк — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Web_framework ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/59/45/59c5d578ad7a6780974363351f676c45.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/59/45/59c5d578ad7a6780974363351f676c45__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 11:15:50 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 20 June 2024, at 07:10 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Веб-фреймворк — Википедия Jump to content

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

Из Википедии, бесплатной энциклопедии

Веб -платформа ( 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 [ править ]

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 г.). «Архитектура веб-приложений: клиентская и серверная стороны» . Атомный спин . Проверено 6 марта 2016 г.
  17. ^ «AngularJS против Backbone.js против Ember.js» . www.airpair.com . Проверено 4 июня 2016 г.
  18. ^ Перейти обратно: а б Фаулер, Мартин. «блики: InversionOfControl» . martinfowler.com . Проверено 6 марта 2016 г.
  19. ^ Сюэ, Цян. «Capital One Engineering – Философия, которая сформировала успешные структуры» . www.capitalone.io . Проверено 6 марта 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
Номер скриншота №: 59C5D578AD7A6780974363351F676C45__1718856600
URL1:https://en.wikipedia.org/wiki/Web_framework
Заголовок, (Title) документа по адресу, URL1:
Web framework - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)