Введение
Приложение, использующее веб-браузер в качестве клиента.
Веб-приложение (или веб-приложение) — это программное обеспечение, к которому осуществляется доступ через веб-браузер. Веб-приложения предоставляются пользователям через Всемирную паутину при наличии активного сетевого подключения. Одностраничные и прогрессивные приложения — это два подхода, позволяющих веб-сайту казаться более похожим на нативное приложение.
История
В более ранних вычислительных моделях, таких как клиент-сервер, нагрузка обработки приложения распределялась между кодом на сервере и кодом, установленным локально на каждом клиенте. Иными словами, приложение имело собственную предварительно скомпилированную клиентскую программу, которая служила пользовательским интерфейсом и требовала отдельной установки на персональном компьютере каждого пользователя. Обновление серверной части приложения обычно также требовало обновления клиентской части, установленной на каждой рабочей станции пользователя, что увеличивало стоимость поддержки и снижало производительность. Кроме того, клиентские и серверные компоненты приложения обычно были тесно связаны с конкретной компьютерной архитектурой и операционной системой, и их перенос на другие часто был непомерно дорог для всех, кроме самых крупных приложений (в настоящее время нативные приложения для мобильных устройств также сталкиваются с некоторыми или всеми вышеуказанными проблемами). В 1995 году Netscape представила скриптовый язык клиентской стороны под названием JavaScript, позволяющий программистам добавлять динамические элементы в пользовательский интерфейс, выполняемые на стороне клиента. Таким образом, вместо отправки данных на сервер для генерации целой веб-страницы, встроенные скрипты загруженной страницы могли выполнять различные задачи, такие как проверка ввода или отображение/скрытие частей страницы. В 1999 году концепция «веб-приложения» была представлена в языке Java в версии 2.2 спецификации Servlet. [2.1?]. К тому времени JavaScript и XML уже были разработаны, но Ajax еще не был придуман, а объект XMLHttpRequest был недавно представлен в Internet Explorer 5 как объект ActiveX. Приложения, такие как Gmail, начали делать свои клиентские части все более интерактивными с начала 2000-х годов. Скрипт веб-страницы может связываться с сервером для хранения/извлечения данных без перезагрузки всей веб-страницы. Эта практика получила название Ajax в 2005 году. «Прогрессивные веб-приложения», термин, введенный дизайнером Фрэнсис Берриман и инженером Google Chrome Алексом Расселом в 2015 году, относится к приложениям, использующим новые функции, поддерживаемые современными браузерами, которые изначально работают в вкладке веб-браузера, но впоследствии могут работать полностью в автономном режиме и запускаться без ввода URL-адреса приложения в браузере.
Структура
Традиционные приложения для ПК обычно имеют одноуровневую структуру и размещаются исключительно на клиентском компьютере. В отличие от них, веб-приложения изначально поддерживают многоуровневую архитектуру.
Безопасность
Нарушения безопасности в подобных приложениях вызывают серьезную обеспокоенность, поскольку они могут затрагивать как корпоративную информацию, так и персональные данные клиентов. Защита этих активов – важная составляющая любого веб-приложения, и в процесс разработки необходимо включить ряд ключевых операционных областей. К ним относятся процессы аутентификации, авторизации, управления активами, обработки входных данных, а также ведение журналов и аудит. Интеграция мер безопасности в приложения с самого начала разработки может оказаться более эффективной и менее проблемной в долгосрочной перспективе.
are some key operational areas that must be included in the development process. This includes processes for authentication, authorization, asset handling, input, and logging and auditing. Building security into the applications from the beginning can be more effective and less disruptive in the long run.
Разработка
Создание веб-приложений упрощается благодаря использованию веб-фреймворков. Эти фреймворки облегчают быструю разработку приложений, позволяя команде разработчиков сосредоточиться на уникальных частях своего приложения, не решая общие задачи разработки, такие как управление пользователями. Многие из используемых фреймворков представляют собой программное обеспечение с открытым исходным кодом. Кроме того, существует возможность разработки приложений для сетевых операционных систем, хотя в настоящее время не существует большого количества жизнеспособных платформ, соответствующих этой модели.