Вебзастосунок
Ця стаття містить перелікджерел,алепоходження окремих тверджень у нійзалишається незрозумілимчерез практично повну відсутністьвиносок. |
Вебзастосу́нокабовебдода́ток(написання до 2019 р.[1][2]—веб-застосу́нок,веб-дода́ток) — розподіленийзастосунок,в якомуклієнтомвиступаєбраузер,асервером—вебсервер.Браузер може бути реалізацією так званихтонких клієнтів— логіка застосунку зосереджується на сервері, а функція браузера полягає переважно у зображенні інформації, завантаженої мережею з сервера, і передачі назад даних користувача. Однією з переваг такого підходу є той факт, що клієнти не залежать від конкретної операційної системи користувача, тому вебзастосунки є міжплатформовими сервісами. Унаслідок цієї універсальності й відносної простоти розробки вебзастосунки стали широко популярними в кінці1990-х— початку2000-хроків.
Істотною перевагою побудови вебзастосунків для підтримки стандартних функцій браузера є те, що функції повинні виконуватися незалежно від операційної системи клієнта. Замість того, щоб писати різні версії дляMicrosoft Windows,Mac OSX,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).ontu.edu.ua.Процитовано 5 червня 2024.
- Web Applications Working Group[Архівовано25 листопада 2010 уWayback Machine.]at theWorld Wide Web Consortium[Архівовано11 червня 2020 уWayback Machine.](W3C)(англ.)