Вебзастосу́нок або вебдода́ток (написання до 2019 р.[1][2] — веб-застосу́нок, веб-дода́ток) — розподілений застосунок, в якому клієнтом виступає браузер, а сервером — вебсервер. Браузер може бути реалізацією так званих тонких клієнтів — логіка застосунку зосереджується на сервері, а функція браузера полягає переважно у зображенні інформації, завантаженої мережею з сервера, і передачі назад даних користувача. Однією з переваг такого підходу є той факт, що клієнти не залежать від конкретної операційної системи користувача, тому вебзастосунки є міжплатформовими сервісами. Унаслідок цієї універсальності й відносної простоти розробки вебзастосунки стали широко популярними в кінці 1990-х — початку 2000-х років.
Ця стаття містить перелік джерел, але походження окремих тверджень у ній залишається незрозумілим через практично повну відсутність виносок. |
Технічні особливості
Істотною перевагою побудови вебзастосунків для підтримки стандартних функцій браузера є те, що функції повинні виконуватися незалежно від операційної системи клієнта. Замість того, щоб писати різні версії для Microsoft Windows, Mac OS X, GNU/Linux й інших операційних систем, застосунок створюється один раз для довільно обраної платформи та на ній розгортається. Проте різна реалізація HTML, CSS, DOM й інших специфікацій в браузерах може викликати проблеми при розробці вебзастосунків і подальшої підтримки. Крім того, можливість користувача налаштовувати багато параметрів браузера (наприклад, розмір шрифту, кольори, відключення підтримки сценаріїв) може перешкоджати коректній роботі застосунку.
На початку 2000-х років був популярним[джерело?] інший (менш універсальний) підхід з використанням Adobe Flash або Java-аплетів для повної або часткової реалізації призначеного для користувача інтерфейсу. Ці технології надавали програмістові більший контроль над інтерфейсом, і були здатні обходити багато несумісностей у конфігураціях браузерів (хоча несумісність між Java або Flash реалізаціями клієнта спричиняла різні[які?] ускладнення). Станом на 2020 рік Java-аплети та Flash-технологія практично вийшли з ужитку.
Через архітектурну схожість з традиційними клієнт-серверними застосунками, певним чином «товстими» клієнтами, існують суперечки щодо коректності зарахування подібних систем до вебзастосунків; альтернативний термін «Насичений інтернет-застосунок» (англ. Rich Internet Application).
Існує модель[3][4], яка дозволяє розрізняти вебсайти та вебзастосунки за рівнем їх технологічної зрілості. Згідно з цією моделлю, вебсайти та вебзастосунки поділяються на декілька рівнів:
- Нульовий рівень включає статичні сторінки, створені лише за допомогою HTML. Їх пропонується називати "вебсайтами" або вебзастосунками нульового рівня зрілості.
- Перший рівень представляє вебзастосунки, які використовують серверні бекенд технології для обробки запитів з браузера та динамічної генерації сторінок, але передають браузеру статичний HTML код.
- Другий рівень характеризується наявністю динаміки на стороні браузера, з можливістю маніпулювати DOM-деревом та виконувати запити до сервера з клієнтської сторони.
- На третьому рівні розміщені вебдодатки, що тим чи іншим способом використовують в роботі браузера такі технології як XMLHttpRequest, Fetch API, AJAX, або сучасні бібліотеки та фреймворки, що допомагають в створенні вебдодатків.
Відповідність конкретного вебдодатка рівню зрілості визначається за максимальним рівнем використаної в ньому технології.
Типи мобільних вебзастосунків
Існує декілька підходів для створення вебзастосунків для мобільних пристроїв:
- Адаптивний вебдизайн може бути використаний для створення як від звичайного вебсайту, так й для односторінкового застосунку, який зручний у використанні на пристроях з невеликими екранами.
- Прогресивний вебзастосунок поєднання звичайних вебсторінок із мобільним застосунком.
- Мобільний застосунок або «рідний застосунок» запускається на виконання безпосередньо на мобільному пристрою без веббраузера й зазвичай не потребують наявності інтернет з'єднання. Типово пишуться мовою Java для Android-пристроїв або на Objective-C чи Swift для iOS. Останнім часом, такі програмні каркаси, як React Native, Flutter, Xamarin дозволяють розробляти мобільні застосунки відразу для декількох мобільних платформ використовуючи одну мову програмування (як правило, одну із поширеніших, на зразок JavaScript), замість стандартних для мобільних застосунків.
- Гібридні застосунки вбудовують вебсайт всередину мобільного застосунку. Можуть бути побудовані за допомогою гібридних програмних каркасів (framework) таких як: Apache Cordova, Ionic або Appcelerator Titanium. Цей підхід дозволяє розробникам використовувати сучасні вебтехнології, разом зі збереженням певних переваг саме мобільних застосунків: застосування апаратного прискорення, офлайн операції, доступ до магазину застосунків тощо.
Архітектура вебзастосунків
Вебзастосунок отримує запит від клієнта і виконує обчислення, після цього формує вебсторінку і відправляє її клієнтові мережею з використанням протоколу HTTP. Саме вебзастосунок може бути клієнтом інших служб, наприклад, бази даних або стороннього вебзастосунку, розташованого на іншому сервері. Яскравим прикладом вебзастосунку є система управління вмістом статей Вікіпедії: безліч її учасників можуть брати участь у створенні мережевої енциклопедії, використовуючи для цього браузери своїх операційних систем (Microsoft Windows, GNU/Linux або будь-якої іншої операційної системи) без завантаження додаткових виконуваних модулів для роботи з базою даних статей.
Для більшої інтерактивності й продуктивності розроблений новий підхід до розробки вебзастосунків, названий AJAX, і який нині є стандартним де-факто. При використанні Ajax сторінки вебзастосунку здатні відправляти вебзапити до сервера у фоновому режимі, і не перезавантажуються цілком, а лише довантажують необхідні дані з сервера, що значно пришвидшує роботу і робить її зручнішою.
Для створення вебзастосунків використовуються різноманітні серверні технології та мови програмування.
Клієнтська частина може використовувати:
Література
- Марко Беллиньясо Разработка Web-приложений в среде ASP.NET 2.0: задача — проект — решение = ASP.NET 2.0 Website Programming: Problem — Design — Solution. — М.: «Диалектика», 2007. — С. 640. — ISBN 0-7645-8464-2 (рос.)
- Олищук Андрей Владимирович Разработка Web-приложений на PHP 5. Профессиональная работа. — М.: «Вильямс», 2006. — С. 352. — ISBN 5-8459-0944-9 (рос.)
Посилання
Ресурси Інтернету
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.