Вебзастосунок
Ця стаття містить перелік джерел, але походження окремих тверджень у ній залишається незрозумілим через практично повну відсутність виносок. |
Вебзастосу́нок або вебдода́ток (написання до 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 сторінки вебзастосунку здатні відправляти вебзапити до сервера у фоновому режимі, і не перезавантажуються цілком, а лише довантажують необхідні дані з сервера, що значно пришвидшує роботу і робить її зручнішою.
Для створення вебзастосунків використовуються різноманітні серверні технології та мови програмування.
Назва | Ліцензія | Вебсервер |
---|---|---|
ASP | власницька | спеціалізований |
ASP.NET | власницька | спеціалізований |
Java | вільна | безліч, зокрема вільних |
Groovy | вільна | практично будь-який |
Perl | вільна | практично будь-який |
PHP | вільна | практично будь-який |
Python | вільна | практично будь-який |
Ruby | вільна | практично будь-який |
Клієнтська частина може використовувати:
- Марко Беллиньясо Разработка 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 (рос.)
- ↑ Український правопис 2019 року (документ) / НАН України — Київ : Наукова думка, 2019. — 392 с. — ISBN 978-966-00-1728-3. §35.4.п.2
- ↑ Український правопис. Текст офіційного видання [Архівовано 14 серпня 2021 у Wayback Machine.] на сайті Інституту мовознавства ім. О. О. Потебні НАНУ [Архівовано 22 січня 2021 у Wayback Machine.]
- ↑ Модель рівнів зрілості вебдодатків: ключові етапи еволюції. Автоматизація та комп’ютерно-інтегровані технології у виробництві та освіті: стан, досягнення, перспективи розвитку : Матеріали Всеукр. науково-практ. Internet-конф., м. Черкаси, 11–17 берез. 2024 р. Черкаси, 2024. С. 315–317 (PDF). conference.ikto.net. Процитовано 5 червня 2024.
- ↑ Модель рівнів зрілості вебдодатків: від статичних сторінок до сучасних фреймворків. Стан, досягнення та перспективи інформаційних систем і технологій : Матеріали XXIV Всеукр. науково-техн. конф. молодих вчен., аспірантів та студентів, м. Одеса, 18–19 квіт. 2024 р. Одеса, 2024. С. 258–259 (PDF). www.ontu.edu.ua. Процитовано 5 червня 2024.
- Web Applications Working Group [Архівовано 25 листопада 2010 у Wayback Machine.] at the World Wide Web Consortium [Архівовано 11 червня 2020 у Wayback Machine.] (W3C) (англ.)