Веб -приложение (или веб-приложение ) — это прикладное программное обеспечение , доступ к которому осуществляется с помощью веб-браузера . Веб-приложения предоставляются во Всемирной паутине пользователям с активным сетевым подключением. [1]
Одностраничный и прогрессивный — два подхода к веб-сайту , которые делают его более похожим на нативное приложение.
В более ранних вычислительных моделях, таких как клиент-сервер, вычислительная нагрузка для приложения делилась между кодом на сервере и кодом, установленным на каждом клиенте локально. Другими словами, приложение имело свою собственную предварительно скомпилированную клиентскую программу, которая служила его пользовательским интерфейсом и должна была быть отдельно установлена на персональном компьютере каждого пользователя . Обновление серверного кода приложения обычно также требовало обновления клиентского кода, установленного на каждой рабочей станции пользователя, что увеличивало стоимость поддержки и снижало производительность . Кроме того, как клиентские, так и серверные компоненты приложения обычно были тесно привязаны к определенной архитектуре компьютера и операционной системе , и перенос их на другие часто был непомерно дорогим для всех приложений, кроме самых крупных (В настоящее время [ когда? ] собственные приложения для мобильных устройств также страдают от некоторых или всех из вышеперечисленных проблем). [ сомнительно – обсудить ]
В 1995 году Netscape представил клиентский язык сценариев под названием JavaScript , позволяющий программистам добавлять некоторые динамические элементы в пользовательский интерфейс, работающий на стороне клиента. Таким образом, вместо отправки данных на сервер для генерации целой веб-страницы, встроенные скрипты загруженной страницы могут выполнять различные задачи, такие как проверка ввода или отображение/скрытие частей страницы. [2]
В 1999 году концепция «веб-приложения» была введена в языке Java в спецификации сервлетов версии 2.2. [2.1?]. [3] [ необходим неосновной источник ] В то время JavaScript и XML уже были разработаны, но Ajax еще не был придуман, а объект XMLHttpRequest был только недавно представлен в Internet Explorer 5 как объект ActiveX . [ необходима ссылка ]
Такие приложения, как Gmail, начали делать свои клиентские части все более и более интерактивными с начала 2000-х годов. Скрипт веб-страницы может связаться с сервером для сохранения/извлечения данных без загрузки всей веб-страницы. Эта практика стала известна как Ajax в 2005 году. [4]
« Прогрессивные веб-приложения » — термин, придуманный дизайнером Фрэнсис Берриман и инженером Google Chrome Алексом Расселом в 2015 году [5], относится к приложениям, использующим новые функции, поддерживаемые современными браузерами, которые изначально работают внутри вкладки веб-браузера, но позже могут работать полностью в автономном режиме и могут быть запущены без ввода URL-адреса приложения в браузере.
Традиционные приложения для ПК обычно одноуровневые и размещаются исключительно на клиентской машине. Напротив, веб-приложения по своей сути способствуют многоуровневой архитектуре. [6] Хотя возможны многие вариации, наиболее распространенной структурой является трехуровневое приложение. [6] В своей наиболее распространенной форме три уровня называются представлением , приложением и хранилищем . Веб-браузер — это первый уровень (представление), движок, использующий некоторую динамическую технологию веб-контента (такую как ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python или Ruby on Rails ), — это средний уровень (логика приложения), а база данных — это третий уровень (хранилище). [6] Веб-браузер отправляет запросы на средний уровень, который обслуживает их, выполняя запросы и обновления в базе данных и генерируя пользовательский интерфейс.
Для более сложных приложений 3-уровневое решение может оказаться недостаточным, и может быть выгодно использовать n-уровневый подход, где наибольшим преимуществом является разбиение бизнес-логики, которая находится на уровне приложения, на более мелкозернистую модель. [6] Другим преимуществом может быть добавление уровня интеграции, который отделяет уровень данных от остальных уровней, предоставляя простой в использовании интерфейс для доступа к данным. [6] Например, доступ к клиентским данным будет осуществляться путем вызова функции «list_clients()» вместо выполнения SQL- запроса непосредственно к клиентской таблице в базе данных. Это позволяет заменить базовую базу данных без внесения каких-либо изменений в другие уровни. [6]
Некоторые рассматривают веб-приложение как двухуровневую архитектуру. Это может быть «умный» клиент, который выполняет всю работу и запрашивает «тупой» сервер, или «тупой» клиент, который полагается на «умный» сервер. [6] Клиент будет обрабатывать уровень представления, сервер будет иметь базу данных (уровень хранения), а бизнес-логика (уровень приложения) будет находиться на одном из них или на обоих. [6] Хотя это увеличивает масштабируемость приложений и разделяет отображение и базу данных, это все еще не позволяет обеспечить настоящую специализацию слоев, поэтому большинство приложений перерастут эту модель. [6]
Нарушения безопасности в таких приложениях вызывают серьезную озабоченность, поскольку они могут затрагивать как корпоративную информацию, так и личные данные клиентов. Защита этих активов является важной частью любого веб-приложения, и есть некоторые ключевые операционные области, которые должны быть включены в процесс разработки. [7] Сюда входят процессы аутентификации, авторизации, обработки активов, ввода, регистрации и аудита. Встраивание безопасности в приложения с самого начала может быть более эффективным и менее разрушительным в долгосрочной перспективе.
Написание веб-приложений упрощается с использованием фреймворков веб-приложений . Эти фреймворки способствуют быстрой разработке приложений , позволяя команде разработчиков сосредоточиться на тех частях своего приложения, которые являются уникальными для их целей, без необходимости решать общие проблемы разработки, такие как управление пользователями. [8] Многие из используемых фреймворков являются программным обеспечением с открытым исходным кодом .
Кроме того, существует потенциал для разработки приложений на основе интернет-операционных систем , хотя в настоящее время существует не так много жизнеспособных платформ, соответствующих этой модели. [ необходима цитата ]
Веб-приложение — это компьютерная программа, которая использует веб-браузеры и веб-технологии для выполнения задач через Интернет.