Web app что это
Добрый день! Поздравляю вас с прохождением предыдущей части курса по теории тестирования!
Следующая часть курса будет посвящена специфичным областям знаний. Начнем мы с части о веб-приложениях.
Существует три вида приложений, каждым из которых наверняка пользовался любой человек:
- десктопные приложения — приложения, которые установлены прямо на персональный компьютер, например Word;
- мобильные — приложения на наших смартфонах;
- веб-приложения, которые мы используем через браузер на своем компьютере.
Не будем сейчас вдаваться в подробности и истоки использования Интернета. Все мы знаем, что он стал неотъемлемой частью как повседневной жизни, так и бизнеса. Как следствие, повсюду внедряются и всё шире используются веб-приложения.
Веб-приложение — это компьютерная программа, которая для выполнения своих функций использует веб-браузеры и веб-технологии в сети Интернет. Говоря простым языком, это любая программа, которую пользователь открывает в браузере и как-то с ней взаимодействует, например совершает покупку онлайн или бронирует билет. Можно назвать всё это сайтом, и для обычного пользователя действительно нет разницы, открыл он сайт или веб-приложение, однако различия между ними всё-таки есть.
В чём они заключаются?
Веб-сайт — это одна или несколько связанных веб-страниц, которые предоставляют посетителям статическую визуальную, текстовую, аудио или видео информацию. Посетители веб-сайта могут её просматривать и читать, но не могут с ней никак взаимодействовать, разве что ввести свой электронный адрес для получения рассылки или оформления подписки. Сайты прогнозов погоды, новостные ресурсы, блоги, образовательные платформы — всё это веб-сайты.
Веб-приложение же, как мы ранее говорили, — это программа со своей архитектурой и интерактивными функциями. Пользователь совершает манипуляции с веб-приложением, оно же в свою очередь обрабатывает вводимые пользователем данные и его действия и выдаёт какой-то результат. Как правило, чтобы использовать веб-приложение, необходимо иметь к нему доступ, например создать учетную запись и входить в приложение под определённым логином и паролем.
В чём ещё может заключаться различие? Сайт, как правило, более интуитивно понятен и лёгок в использовании. Приложению же необязательно быть таковым, пользователи могут обучаться для работы в нём. Например, операторы банка прежде чем начать работу, проходят обучение в приложении.
Какие плюсы у веб-приложений? Для их использования не нужно устанавливать никаких программ на свой жёсткий диск компьютера, нужно только открыть приложение в браузере, поэтому для таких приложений неактуален вопрос о совместимости аппаратного обеспечения, и пользователи имеют доступ к приложению всюду, где есть интернет и веб-браузер. Версия приложения всегда актуальна, обновления применяются быстро и централизованно, соответственно, все пользователи имеют доступ к одной и той же версии продукта.
Клиент-серверная архитектура. ISO модель.
На этом уроке обсудим, как работают веб-приложения. Это важно понимать, чтобы при работе и тестировании уметь локализовать проблему, ну и в целом понимать, с чем ты работаешь.
На самом деле принцип работы несложен. В архитектуре веб-приложений есть три участника, и она называется клиент-серверная архитектура. Первый участник — клиент, это та часть веб-приложения, с которой непосредственно работает пользователь (пользовательский интерфейс/User Interface/ UI), открывая приложение на своем устройстве в браузере и работая с интерфейсом приложения. Как происходит взаимодействие пользователя с клиентом? Он вводит туда различные данные, нажимает различные кнопочки, тем самым формируя запросы, которые пойдут от клиента второму участнику — серверу. Сервер предназначен для обработки запросов клиента и предоставления ему необходимой информации. Откуда он достаёт эту информацию? От третьего участника процесса — базы данных или сервера базы данных. База данных — это хранилище любой информации, с которой работает приложение.
Архитектуру без третьего участника называют двухуровневой. Такая модель используется для более простых приложений, где не нужно долго хранить большие объёмы информации.
Мы ознакомились с понятием “клиент”, теперь давайте разберёмся с сервером. Сервер можно рассматривать с двух сторон: программного обеспечения (software) и аппаратного обеспечения (hardware). С точки зрения “железа”, сервер — это удалённый компьютер или несколько компьютеров, как правило, мощных и быстрых, которые хранят всю информацию приложения: его страницы, картинки, видео и прочее. С точки зрения ПО, сервер — это некая программа, которая содержит логику и обрабатывает запросы клиента. Зачем серверу быть мощным и быстрым? Для успешной и быстрой обработки клиентских запросов, а клиентов, как вы понимаете, бывает очень и очень много, вспоминаем любой онлайн-магазин.
Если приложение большое и имеет сложные бизнес процессы, а также требуется хранить большой объём важных данных, то необходима база данных. Это хранилище всей информации, необходимой для работы приложения. Это могут быть пользовательские данные — логин и пароль, клиентские данные, данные о покупках, данные кредитных карт и тому подобное.
Теперь давайте разберем простой пример работы веб-приложения, пусть это будет любой онлайн-магазин. Итак, пользователь на своем компьютере открывает браузер и в строке поиска вводит название магазина/сайта. Браузер отправляет запрос к серверу магазина, точнее, к серверу веб-приложения этого магазина. Сервер принимает запрос и проводит его обработку, после чего отправляет ответ браузеру. Браузер, приняв ответ от сервера, понимает, что пользователю необходимо отобразить страницу клиентской части приложения магазина, например домашнюю страницу или страницу авторизации. Увидев страницу магазина, пользователь продолжает работать в ней и вводит свои данные для авторизации, нажимает кнопку Войти, тем самым отправляет новый запрос на сервер. Сервер обрабатывает и этот запрос, увидев данные об авторизации, и, в свою очередь, шлёт запрос в базу данных, чтобы выяснить, действительно ли такой пользователь зарегистрирован в онлайн-магазине. База данных отвечает на этот запрос, подтверждая, что такой пользователь зарегистрирован. Дальше сервер шлёт клиенту ответ с разрешением на авторизацию, и клиент отображает страницу магазина для зарегистрированного пользователя. Вспомнив свой опыт работы в подобных приложениях, вы понимаете, что всё это происходит за секунды, или быстрее.
В чём заключается подход к тестированию веб-приложений? Как вы уже поняли, работа веб-приложения — это постоянный обмен сообщениями между клиентом и сервером, при этом клиентов могут быть тысячи. Важно быть уверенным, что приложение сможет качественно и быстро обработать запросы для всех клиентов. Должна быть обеспечена производительность приложения и безопасность использования данных. С другой стороны, мы должны быть уверены, что для любого пользователя клиентская часть будет работать и выглядеть качественно. Это значит, что пользователи смогут использовать приложение на разных устройствах: ноутбук, планшет, телефон; на ноутбуках могут быть разные операционные системы, да и браузеров уже очень много и пользователь может выбрать любой на свое усмотрение. Всё это окружение по сути не должно влиять на работу веб-приложения и на его UI часть, пользователь в любой ситуации должен получить быстрый доступ и качественную работу приложения. Отсюда появляется такой подход как кросс-браузерное тестирование, при котором необходимо проверить работу пользовательского интерфейса (например, при использовании любого браузера кнопки не должны “уезжать” куда-то за пределы страницы).
В заключение этой темы коротко познакомим вас с тем, как в целом работают приложения в интернете, как к нам в браузер на компьютере попадает картинка.
Для работы сетей разработана своя модель. Среди них популярна семиуровневая архитектура OSI (The Open Systems Interconnection model). Модель представляет собой семь уровней взаимодействия, где принимают участие компьютер-отправитель, компьютер-получатель и данные, которые передаются. Самый верхний уровень называется прикладным, нижний — физическим. Не будем подробно разбирать каждый уровень, для знакомства нам хватит посмотреть на это в общем виде. Так вот, на самом высоком уровне у нас на компьютере в браузерах, например, мы видим информацию в виде текста, картинок, видео, аудио, или же в онлайн-звонках мы видим нашего собеседника и слышим его. За это отвечает протокол HTTP — протокол передачи гипертекста. По мере того как информация, например пересылаемая картинка, спускается ниже по уровням модели, она проходит процесс инкапсуляции, т. е. картинка раскладывается по битам, понятным компьютеру, как железу. Известно, что компьютеры понимают информацию в виде нулей и единичек. Эти биты трансформируются в физические сигналы, что происходит на самом нижнем уровне — физическом. Они-то и передаются по оптоволокну или посредством wi-fi, bluetooth, 4G на другой компьютер. Сигналы, придя на компьютер-получатель, двигаются вверх по уровням, трансформируясь в человекочитаемый формат, ту самую картинку. Такой обратный процесс называется декапсуляция. Между этими уровнями, располагаются ещё пять, каждый из которых имеет свою цель, например транспортный уровень. Его задача — доставить данные, за это отвечают протоколы передачи данных TCP/IP и UDP. Часто спрашивают — в чём разница между ними? Один протокол (TCP/IP) гарантирует доставку всех данных, и если по пути часть данных потеряется, он перешлёт их ещё раз, второй же (UDP) этого не гарантирует. Поэтому второй выбирают тогда, когда необходимо быстро передавать информацию, не боясь потерь. Например, в видео- звонках или играх пара кадров может потеряться или пропадёт звук, но в целом передача состоится. Первый же используется там, где требуется надёжность и целостность данных.
Front-end и Back-end.
Вообще, существует два основных типа веб-приложений, и эти типы могут объединяться друг с другом или существовать по отдельности.
Первый тип приложения — Backend (бэкенд) — серверная часть приложения, программная и аппаратная. Здесь запрограммирована вся основная логика приложения. Backend обрабатывает и передаёт в базу данных данные от клиента и наоборот. Программная часть сервера пишется на языках программирования.
А вот второй тип приложения — Frontend (фронтенд) — клиентская часть приложения, это тот самый пользовательский интерфейс, с которым работает пользователь. Простым языком, frontend — это всё то, что вы видите, когда загружаете какой-либо сайт. Frontend реализуется с помощью а) языка разметки гипертекста — HTML, который отвечает за то, в каком месте страницы будет отображаться картинка, кнопка, текст; б) языка стилей CSS, который помогает делать страницу красивой, через него задаются цвета и стили элементов; и в) языка программирования JavaScript, который делает страницу “живой”, например при наведении на кнопку или поле отображается подсказка, или при нажатии на кнопку меняется картинка.
Чаще всего веб-приложение состоит из двух этих частей, которые общаются между собой посредством запросов. Примером такой комбинации может служить одностраничное приложение (Single page application). Это довольно новый вид приложений, который быстро стал популярным из-за своих преимуществ, таких как быстрота загрузки содержимого страницы или уменьшение нагрузки на серверную часть.
Cache, Cookies. Консоль разработчика.
Мы обсудили, как работает веб-приложение, — за счёт отправки сообщений от клиента к серверу и обратно. Хоть это происходит довольно быстро, есть некоторые способы, которые способны ускорить работу и повысить производительность веб-приложения. Для этого существуют Cache (кеш) и Cookies (куки). Вы сталкивались с ними при работе с приложениями. Это способы временного хранения информации на пользовательском устройстве.
Что такое Cache? Это временная память для хранения документов веб-приложения, например для хранения картинок сайта, видео или аудио. Наверняка вы замечали, открывая сайт с большим количеством картинок или видео, что первая его загрузка в вашем браузере занимает какое-то время. Это происходит потому, что загрузка в первый раз происходит с сервера, что увеличивает время. Однако, в следующий раз этот сайт будет загружаться быстрее, т. к. в этот раз работает кеш-память, и оттуда материалы подгружаются быстрее. Cache не очищается самостоятельно, его необходимо удалять вручную на своем устройстве.
Cookies — это файлы, которые собирают и хранят в себе пользовательскую информацию, помогающую приложению работать наиболее эффективно для пользователя. Например, они хранят в себе информацию об учётных данных и данных устройства. С помощью файлов cookies можно отслеживать, как часто пользователь посещает сайт, на какие баннеры и кнопки нажимает, что позволяет настроить информацию в приложении, соответствующую предпочтениям пользователя. У cookies довольно короткий срок службы, обычно он определяется разработчиками приложения.
В завершении этой темы мы отведём время для знакомства с таким инструментом как консоль разработчика (DevTools). Казалось бы, панель разработчика не имеет отношения к тестировщикам, однако этот инструмент очень полезен при тестировании веб-приложений, в частности, он помогает локализовать проблемы там, где их невозможно обнаружить. Например, вы заполнили форму на UI, нажали кнопку, и ничего не произошло. Как понять отправилась ли ваша заявка или нет? Умение работать в консоли поможет решить эту проблему.
Открыть консоль разработчика можно, нажав горячую клавишу F12 (на некоторых устройствах комбинацию fn + f12), или щёлкнув правой кнопкой мыши в любом месте сайта выбрать пункт Просмотреть код. Открывается панель разработчика, где мы видим, что у неё есть несколько вкладок. Наиболее часто используемые вкладки при тестировании это Elements (Элементы), Console (Консоль) и Network (Сеть).
Вкладка Элементы содержит информацию об элементах и их свойствах на странице сайта. Верхняя часть вкладки — это как раз описание страницы на языке HTML. На вкладке рядом или ниже Стили (Styles) можно видеть, как задан стиль каждого элемента страницы, например цвет и размер шрифта. Чем эти вкладки могут помочь при тестировании? Например, проверить, верно ли указаны цвета элементов и заданы ли они в принципе. Аналогично можно проверить, как будет выглядеть таблица с данными, если в ячейки поместить слишком длинное слово и будет ли ячейка заезжать на другие.
Вкладка Консоль отображает все ошибки (Errors) и предупреждения (Warnings), которые возникают при работе приложения. Важно этот момент отслеживать и фиксировать возникшие проблемы разработчикам. Плюс на этой вкладке можно писать и выполнять какие-то скрипты на javaScript.
Вкладка Сеть отображает список запросов и ответов между клиентом и сервером, а также различные ресурсы, подключённые к данной странице приложения. Всё это выводится в виде таблицы, где можно узнать отправленный клиентом тип запроса, его статус-код, размер, и время, затраченное на отправку запроса. Запросы с ошибками обычно подсвечиваются красным цветом. Эту таблицу можно фильтровать по типам ресурсов.
Ещё на вкладке devtools для работы можно использовать её расположение. В правом верхнем углу есть кнопка Три точки. Нажав на неё, увидим панель Dock side и несколько вариантов расположения панели разработчика. Выбираем ту, которая удобней для нас.
Ещё очень полезный вариант использования этой панели — это симуляция устройства. В левом верхнем углу есть кнопка Toggle device toolbar, при нажатии на которую, появляется меню, где можно выбрать любое из заданного списка устройство или задать своё, чтобы просмотреть содержимое сайта на планшете или мобильном устройстве.
Как работают веб-приложения
Для меня сайт это в первую очередь что-то информационное и статичное: визитка компании, сайт рецептов, городской портал или вики. Набор подготовленных заранее HTML-файлов, которые лежат на удаленном сервере и отдаются браузеру по запросу.
Сайты содержат различную статику, которая как и HTML-файл не генерируется на лету. Чаще всего это картинки, CSS-файлы, JS-скрипты, но могут быть и любые другие файлы: mp3, mov, csv, pdf.
Блоги, визитки с формой для контакта, лендинги с кучей эффектов я тоже отношу для простоты к сайтам. Хотя в отличие от совсем статических сайтов, они уже включают в себя какую-то бизнес-логику.
А веб-приложение — это что-то технически более сложное. Тут HTML-страницы генерируются на лету в зависимости от запроса пользователя. Почтовые клиенты, соцсети, поисковики, интернет-магазины, онлайн-программы для бизнеса, это все веб-приложения.
2. Какие бывают веб-приложения
Веб-приложения можно разделить на несколько типов, в зависимости от разных сочетаний его основных составляющих:
- Backend (бэкенд или серверная часть приложения) работает на удаленном компьютере, который может находиться где угодно. Она может быть написана на разных языках программирования: PHP, Python, Ruby, C# и других. Если создавать приложение используя только серверную часть, то в результате любых переходов между разделами, отправок форм, обновления данных, сервером будет генерироваться новый HTML-файл и страница в браузере будет перезагружаться.
- Frontend (фронтенд или клиентская часть приложения) выполняется в браузере пользователя. Эта часть написана на языке программирования Javascript. Приложение может состоять только из клиентской части, если не требуется хранить данные пользователя дольше одной сессии. Это могут быть, например, фоторедакторы или простые игрушки.
- Single page application (SPA или одностраничное приложение). Более интересный вариант, когда используются и бэкенд и фронтенд. С помощью их взаимодействия можно создать приложение, которое будет работать совсем без перезагрузок страницы в браузере. Или в упрощенном варианте, когда переходы между разделами вызывают перезагрузки, но любые действия в разделе обходятся без них.
3. Pyhon-фреймворк Django aka бэкенд

В разработке фреймворк — это набор готовых библиотек и инструментов, которые помогают создавать веб-приложения. Для примера опишу принцип работы фреймворка Django, написанного на языке программирования Python.
Первым этапом запрос от пользователя попадает в роутер (URL dispatcher), который решает какую функцию для обработки запроса надо вызвать. Решение принимается на основе списка правил, состоящих из регулярного выражения и названия функции: если такой-то урл, то вот такая функция.
Функция, которая вызывается роутером, называется вью (view). Внутри может содержаться любая бизнес-логика, но чаще всего это одно из двух: либо из базы берутся данные, подготавливаются и возвращаются на фронт; либо пришел запрос с данными из какой-то формы, эти данные проверяются и сохраняются в базу.
Данные приложения хранятся в базе данных (БД). Чаще всего используются реляционные БД. Это когда есть таблицы с заранее заданными колонками и эти таблицы связаны между собой через одну из колонок.
Данные в БД можно создавать, читать, изменять и удалять. Иногда для обозначения этих действий можно встретить аббревиатуру CRUD (Create Read Update Delete). Для запроса к данным в БД используется специальный язык SQL (structured query language).
В Джанго для работы с БД используются модели (model). Они позволяют описывать таблицы и делать запросы на привычном разработчику питоне, что гораздо удобнее. За это удобство приходится платить: такие запросы медленнее и ограничены в возможностях по сравнению с использованием чистого SQL.
Полученные из БД данные подготавливаются во вью к отправке на фронт. Они могут быть подставлены в шаблон (template) и отправлены в виде HTML-файла. Но в случае одностраничного приложения это происходит всего один раз, когда генерируется HTML-страница, на который подключаются все JS-скрипты. В остальных случаях данные сериализуются и отправляются в JSON-формате.
4. Javascript-фреймворки aka фронтенд

Клиентская часть приложения — это скрипты, написанные на языке программирования Javascript (JS) и исполняемые в браузере пользователя. Раньше вся клиентская логика основывалась на использовании библиотеки JQuery, которая позволяет работать с DOM, анимацией на странице и делать AJAX запросы.
DOM (document object model) — это структура HTML-страницы. Работа с DOM — это поиск, добавление, изменение, перемещеие и удаление HTML-тегов.
AJAX (asynchronous javascript and XML) — это общее название для технологий, которые позволяют делать асинхронные (без перезагрузки страницы) запросы к серверу и обмениваться данными. Так как клиентская и серверная части веб-приложения написаны на разных языках программирования, то для обмена информацией необходимо преобразовывать структуры данных (например, списки и словари), в которых она хранится, в JSON-формат.
JSON (JavaScript Object Notation) — это универсальный формат для обмена данными между клиентом и сервером. Он представляет собой простую строку, которая может быть использована в любом языке программирования.
Сериализация — это преобразование списка или словаря в JSON-строку. Для примера:
Десериализация — это обратное преобразование строки в список или словарь.
С помощью манипуляций с DOM можно полностью управлять содержимым страниц. С помощью AJAX можно обмениваться данными между клиентом и сервером. С этими технологиями уже можно создать SPA. Но при создании сложного приложения код фронтенда, основанного на JQuery, быстро становится запутанным и трудно поддерживаемым.
К счастью, на смену JQuery пришли Javascript-фреймворки: Backbone Marionette, Angular, React, Vue и другие. У них разная философия и синтаксис, но все они позволяют с гораздо большим удобством управлять данными на фронтенде, имеют шаблонизаторы и инструменты для создания навигации между страницами.
HTML-шаблон — это «умная» HTML-страница, в которой вместо конкретных значений используются переменные и доступны различные операторы: if, цикл for и другие. Процесс получения HTML-страницы из шаблона, когда подставляются переменные и применяются операторы, называется рендерингом шаблона.
Полученная в результате рендеринга страница показывается пользователю. Переход в другой раздел в SPA это применение другого шаблона. Если необходимо использовать в шаблоне другие данные, то они запрашиваются у сервера. Все отправки форм с данными это AJAX запросы на сервер.
5. Как клиент и сервер общаются между собой

Общение клиента с сервером происходит по протоколу HTTP. Основа этого протокола — это запрос от клиента к серверу и ответ сервера клиенту.
Для запросов обычно используют методы GET, если мы хотим получить данные, и POST, если мы хотим изменить данные. Еще в запросе указывается Host (домен сайта), тело запроса (если это POST-запрос) и много дополнительной технической информации.
Современные веб-приложения используют протокол HTTPS, расширенную версию HTTP с поддержкой шифрования SSL/TLS. Использование шифрованного канала передачи данных, независимо от важности этих данных, стало хорошим тоном в интернете.
Есть еще один запрос, который делается перед HTTP. Это DNS (domain name system) запроc. Он нужен для получения ip-адреса, к которому привязан запрашиваемый домен. Эта информация сохраняется в браузере и мы больше не тратим на это время.
Когда запрос от браузера доходит до сервера, он не сразу попадает в Джанго. Сначала его обрабатывает веб-сервер Nginx. Если запрашивается статический файл (например, картинка), то сам Nginx его отправляет в ответ клиенту. Если запрос не к статике, то Nginx должен проксировать (передать) его в Джанго.
К сожалению, он этого не умеет. Поэтому используется еще одна программа-прослойка — сервер приложений. Например для приложений на питоне, это могут быть uWSGI или Gunicorn. И вот уже они передают запрос в Джанго.
После того как Джанго обработал запрос, он возвращает ответ c HTML-страницей или данными, и код ответа. Если все хорошо, то код ответа — 200; если страница не найдена, то — 404; если произошла ошибка и сервер не смог обработать запрос, то — 500. Это самые часто встречающиеся коды.
6. Кэширование в веб-приложениях

Еще одна технология, с которой мы постоянно сталкиваемся, которая присутствует как веб-приложениях и программном обеспечении, так и на уровне процессора в наших компьютерах и смартфонах.
Cache — это концепция в разработке, когда часто используемые данные, вместо того чтобы их каждый раз доставать из БД, вычислять или подготавливать иным способом, сохраняются в быстро доступном месте. Несколько примеров использования кэша:
Что такое интернет-приложение?

Веб-приложение — это программное обеспечение, которое запускается в веб-браузере. Компании должны обмениваться информацией и оказывать услуги удаленно. Они используют веб-приложения для удобной и безопасной связи с клиентами. Наиболее распространенные функции веб-сайта, такие как корзины, поиск и фильтрация товаров, обмен мгновенными сообщениями и ленты новостей социальных сетей, по своей структуре являются веб-приложениями. Они позволяют получить доступ к сложным функциональным возможностям без установки или настройки программного обеспечения.
В чем заключаются основные преимущества веб-приложений?
Веб-приложения имеют ряд достоинств, и почти все крупные компании используют их как часть своих пользовательских предложений. Вот некоторые из наиболее распространенных преимуществ, связанных с веб-приложениями.
Доступность
Доступ к веб-приложениям возможен из всех веб-браузеров и с различных личных и рабочих устройств. Команды в разных местах могут получить доступ к общим документам, системам управления контентом и другим бизнес-сервисам через веб-приложения по подписке.
Эффективная разработка
Как уже было сказано, процесс разработки веб-приложений относительно прост и экономически эффективен для компаний. Небольшие команды могут добиться коротких циклов разработки, что делает веб-приложения эффективным и доступным методом создания компьютерных программ. Кроме того, поскольку одна и та же версия работает во всех современных браузерах и устройствах, вам не придется создавать несколько разных вариантов для разных платформ.
Простота для пользователя
Веб-приложения не требуют от пользователей загрузки, что делает их легкодоступными и избавляет от необходимости в обслуживании конечных пользователей и ограничении емкости жесткого диска. Веб-приложения автоматически получают обновления программного обеспечения и безопасности, что означает, что они всегда актуальны и меньше подвержены риску нарушения безопасности.
Масштабируемость
Компании, использующие веб-приложения, могут добавлять пользователей по мере необходимости, без дополнительной инфраструктуры и дорогостоящего оборудования. Кроме того, подавляющее большинство данных веб-приложений хранится в облаке, а значит, вашей компании не придется инвестировать в дополнительные объемы хранения для работы веб-приложений.
Каковы некоторые распространенные веб-приложения?
Существует множество типов веб-приложений. Ниже перечислены некоторые наиболее известные из них.
Веб-приложения для совместной работы
Веб-приложения для совместной работы позволяют членам команды получать доступ к документам, общим календарям, службам мгновенного обмена сообщениями и другим корпоративным инструментам.
Веб-приложения для интернет‑коммерции
Веб-приложения для интернет-коммерции, такие как Amazon.com, позволяют пользователям просматривать, искать и оплачивать товары в Интернете.
Веб-приложения электронной почты
Приложения веб-почты широко используются корпоративными и персональными пользователями для доступа к своей электронной почте. Они часто включают другие средства коммуникации, такие как обмен мгновенными сообщениями и видеовстречи.
Веб-приложения для онлайн-банков
Бизнес- и индивидуальные пользователи широко используют веб-приложения онлайн-банков для доступа к своим счетам и другим финансовым продуктам, таким как кредиты и ипотека.
Техническая документация
Вы можете использовать веб-приложения для создания и обмена технической документацией, такой как руководства пользователя, руководства по эксплуатации и спецификации устройств
Как работают веб-приложения?
Веб-приложения имеют архитектуру клиент-сервер. Их код разделен на два компонента: скрипты на стороне клиента и скрипты на стороне сервера.
Архитектура на стороне клиента
Скрипт на стороне клиента отвечает за функциональность пользовательского интерфейса, например, кнопки и выпадающие поля. Когда конечный пользователь нажимает на ссылку веб-приложения, веб-браузер загружает скрипт на стороне клиента и отображает графические элементы и текст для взаимодействия с пользователем. Например, пользователь может читать контент, смотреть видео или заполнять данные в форме контакта. Такие действия, как нажатие кнопки отправки, передаются на сервер в виде клиентского запроса.
Архитектура на стороне сервера
Скрипт на стороне сервера обрабатывает данные. Сервер веб-приложений обрабатывает запросы клиентов и отправляет ответ. Обычно запросы касаются получения дополнительных данных или изменения или сохранения новых данных. Например, если пользователь нажимает на кнопку Подробнее, сервер веб-приложений отправляет контент обратно пользователю. Если пользователь нажмет кнопку Отправить, сервер приложений сохранит данные пользователя в базе данных. В некоторых случаях сервер завершает запрос данных и отправляет полную HTML-страницу обратно клиенту. Это называется рендерингом на стороне сервера.
В чем разница между веб-приложением и веб-сайтом?
Когда Интернет только появился, веб-сайты обладали значительно меньшей функциональностью, чем веб-приложения. Они были способны доставлять информацию пользователям только посредством статического контента. Нужно было устанавливать и запускать программное обеспечение со сложной функциональностью. Веб-приложения были созданы для того, чтобы преодолеть разрыв между программным обеспечением и статичными сайтами. Они обладали функциональностью и интерактивными пользовательскими элементами, подобно программному обеспечению, но предоставлялись с помощью URL-адреса веб-браузера.
Однако с тех пор веб-технологии значительно эволюционировали. Большинство современных веб-сайтов по своей структуре являются сложными веб-приложениями.
В чем разница между веб-приложением и встроенным приложением?
Встроенное приложение — это компьютерная программа, специально разработанная для конкретной пользовательской среды. Одним из наиболее распространенных типов встроенных приложений являются мобильные приложения, которые разрабатываются с использованием специального программного кода. В отличие от веб-приложений, встроенные или мобильные приложения загружаются пользователем на его мобильное устройство, обычно через магазины приложений. Доступ к встроенным приложениям возможен только на том устройстве, на которое они были загружены, и пользователи несут ответственность за загрузку любых обновлений.
Разработчикам приходится создавать различные версии своих мобильных приложений, если они хотят сделать их доступными для разных операционных систем, таких как iOS или Android, обеспечивая максимально широкий охват. Разработчики также должны убедиться, что их мобильные приложения соответствуют стандартам магазинов приложений, иначе их заявки могут быть отклонены.
Как AWS может помочь с веб-приложениями?
AWS Amplify — это комплексное решение, позволяющее разработчикам легко создавать, отправлять и размещать комплексные приложения на AWS. Веб-разработчики могут использовать широкий спектр услуг AWS без глубоких знаний в области облачных вычислений по мере расширения примеров использования. Например, с помощью AWS Amplify можно:
Создать и подключить серверную часть вашего приложения
Создать и протестировать интерфейс с оптимизированным пользовательским интерфейсом
Управлять пользователями и контентом
Настроить параметры сборки
Хостинг AWS Amplify – это полностью управляемый сервис CI/CD и хостинга для быстрого, безопасного и надежного размещения статических и серверных приложений, которые масштабируются вместе с вашим бизнесом. Поддерживает современные веб-платформы, такие как React, Angular, Vue, Next.js, Gatsby, Hugo, Jekyll и другие. С помощью хостинга Amplify вы можете:
Непрерывно разворачивать статическое веб-приложение или приложение с обработкой на сервере при каждом коммите кода.
Получите надежный хостинг, расположенный близко к вашим пользователям
Создавайте динамические возможности для создания высококачественных комплексных приложений.
Начните работу с разработки веб-приложений на AWS, создав бесплатный аккаунт уже сегодня.
Что такое веб-приложения и как их продвигать

Каждый день мы используем мобильные приложения, чтобы заказать такси, еду, купить билет на самолет или поезд, даже, чтобы получить паспорт (привет, Госуслуги).
По данным аналитического центра Statista, количество скачиваемых приложений растет каждый год. С 2016 по 2022 год эта цифра выросла со 140 до 255 миллиардов.

Мобильные приложения — помощники, без которых уже сложно представить свою жизнь. Но что вы слышали о веб-приложениях? Давайте разбираться, что это такое и кому может понадобиться. Спойлер: в России образца 2023 года — очень нужная вещь.
Что такое web-приложение
Если очень кратко, то это любой сайт в интернете, с которым пользователь может взаимодействовать, то есть получить «ответ» на свой запрос.
Давайте сравним, станет понятнее:
- Веб-сайт — это блог, новостная лента, что-то очень простое. Там вы получаете информацию, которая уже «лежит» на сервере в готовом виде. Чаще всего на сайте две функции: поиск информации и подписка.
- Веб-приложение – более сложная система. Тут есть взаимодействие с ресурсом: через заказ товара (всевозможные маркетплейсы), бронирование билетов (Aviasales), работу с изображениями (Canva), текстом (Google Docs).
Веб-приложение работает так: клиент через браузер связывается с веб-сервером. Сервер «выдает» сформированный под запрос пользователя контент.
Обратим внимание: веб-приложение работает только через браузер. Ему нужно постоянное подключение к интернету.
Для обывателя всё, что есть в интернете — это сайты, но многие «сайты» как раз являются веб-приложениями.
Виды веб-приложений
- Социальные сети.
- E-commerce (маркетплейсы, интернет-магазины).
- Платформы для бизнеса (корпоративные порталы).
- Игры.
- Системы бронирования билетов и отелей.
- Образовательные платформы.
- Программы и инструменты для работы с данными (документы, таблицы, презентации, CMS).
Преимущества веб-приложений перед мобильными
- Веб-приложение не нужно скачивать, оно доступно в браузере.
- Разработка веб-приложения дешевле.
- Более простая и недорогая технология продвижения.
- Доступно на любом устройстве и одинаково работает во всех браузерах.
- Автоматическое обновление интерфейса у всех пользователей.
Web-приложение как альтернативный способ монетизации
Почему в России нужно подумать о создании веб-приложения? Причина — монетизация. В Google Play и App Store монетизация для российских приложений отключена. Когда это изменится — неизвестно. Но монетизировать приложение можно, если создать его веб-версию.
Монетизировать веб-приложение можно через:
- Донаты/пожертвования. Предложите пользователям поддержать ваш продукт. Уверены, что многие захотят это сделать.
- Подписку на премиальный/дополнительный контент. Это заинтересует тех, кто хочет получить больше возможностей в работе или игре. Например, если продукт — редактор фотографий, то с платной подпиской пользователь получит новые инструменты.
- Прямую продажу. Продавать можно не только материальные товары, но и образовательный курс, гайд, дополнительную энергию в игре.
- Спонсорский контент. Такой контент внедряют в контекст веб-приложения максимально нативно. Например, в блоге можно разместить статью со ссылкой на спонсора.
- Контекстно-медийную рекламу. Это небольшие объявления, которые показываются на страницах веб-приложения. Чтобы получать доход от кликов по контекстной рекламе, необходимо зарегистрироваться в рекламном сервисе, например в РСЯ (Рекламная сеть Яндекса). Монетизация с помощью Google AdSense в России недоступна.
- Баннерную рекламу. Баннер — это небольшое изображение, которое размещается на страницах веб-приложения. Доход можно получать по нескольким метрикам: CPC (за количество кликов) или CPM (за 1000 показов). Необходимо зарегистрироваться в баннерной сети, например Rotaban и Advmaker.
- CPA-сети. Вы, как владелец веб-приложения, можете получать оплату за совершение целевого действия (регистрация, покупка товара и так далее). CPA-сеть выступает посредником между рекламодателем (который предлагает свой оффер) и владельцем веб-приложения (вами).
- Продажу места под рекламу. Этот способ монетизации самый удобный, если у ресурса есть стабильная посещаемость. Вы самостоятельно устанавливаете стоимость рекламы (за клики, показы или целевое действие) и выбираете тематику.
Основные способы продвижения web-приложений
Стратегия продвижения и веб-сайтов, и веб-приложений схожа.
- SEO-продвижение
Главная задача — вывести веб-приложение в топ выдачи Яндекс и Google. Для этого специалисты подбирают ключевые слова, собирают семантическое ядро и на их основе прописывают метатеги. Также используют наращивание ссылочной массы, оптимизацию текстового и графического контента на сайте, работу с юзабилити веб-приложения.
- Контекстная реклама
Показ объявлений в поисковиках (сейчас — только Яндекс) и на сайтах. Показ рекламных объявлений осуществляется только выбранной аудитории.
- SMM
Построение бренда веб-приложения, рекламные посевы в соцсетях, повышение узнаваемости веб-приложения через соцмедиа.
- Покупка рекламы на специальных ресурсах
Покупка рекламного места на ресурсе, где находятся ваши потенциальные клиенты.
- Таргетированная реклама
Рекламные объявления показываются только выбранной аудитории социальной сети (Настройка таргета в Инстаграм* и Фейсбук* недоступна в РФ).
*Meta признана судом экстремистской организацией, её деятельность запрещена в Российской Федерации.
- Покупка рекламы у блогеров
Один из самых популярных методов продвижения вашего веб-приложения. Главное — подобрать блогера с необходимой для вас аудиторией.
- Контент-маркетинг
Публикация материалов в СМИ, на форумах, авторитетных порталах (vc.ru, habr и так далее).
- Вирусный маркетинг
Сложный, но очень эффективный метод продвижения. Здесь правил нет: чем более запоминающийся контент (мем, статья, видео, инфоповод) запустите, тем больше аудитория будет говорить о вашем продукте.
- Реклама в видео формате
Сейчас доступна во Вконтакте, Одноклассниках, на Rutube, в онлайн-кинотеатрах, сервисах Яндекса (Видео и Дзен).
Может ли существовать две версии приложения: обычная в сторе и web-приложение
Да! В вашем смартфоне точно установлен какой-нибудь маркетплейс, например Яндекс.Маркет. Приложение существует и в мобильной, и в веб-версии.

Перевести приложение в веб-версию можно, а кому это пригодится?
Кому стоит перейти на web-версии приложений
- ЦА пользуется десктопами
Проанализируйте аудиторию мобильного приложения, сценарии поведения пользователей. Приложение в веб-версии позволит увеличить охват аудитории, а еще веб-версию проще продвигать. Например, если ваш продукт — task-менеджер, то, скорее всего, люди ставят задачи не только со смартфона, но и с десктопа. Чтобы не потерять аудиторию, необходимо подумать и о веб-приложении.
- Последняя версия приложения в приоритете
Вам важно, чтобы у пользователей в доступе было обновленное приложение. Веб-версия обновляется у всех автоматически.
- Разные каналы монетизации
Проблемы с монетизацией связаны с отключением платных приложений в сторах, невозможностью покупки внутри мобильных приложений. А вот в веб-версии приложения можно использовать различные модели монетизации.
- Постоянное онлайн взаимодействие с пользователем
Бизнес сервисы чаще всего так и работают, только через онлайн. По этой причине десктопная версия становится основной.

Marketing Manager, Appbooster
Популярные

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

Sales Team Lead, Appbooster
Последние

В статье разбираем бототрафик, его особенности, возможные санкции, которые можно получить за использование этого инструмента в сторах.

Content Marketing Manager, Appbooster

В статье рассказываем о принципах построения и типах Customer Journey Map, а также делимся шагами, с помощью которых можно составить хорошую CJM.

Content Marketing Manager, Appbooster

В этой статье мы собрали для вас ключи и практические рекомендации для продвижения приложений по вертикали «Казино» в Google Play и App Store.