Страницы

Поиск по вопросам

четверг, 28 ноября 2019 г.

Существует ли разница между веб сайтом и веб приложением? [закрыт]

#java #веб_программирование


Ранее я задал вопрос Что такое Java EE ?.

Так вот. Из ответов я понял, что Java EE отлично подходит для веб-приложений и слишком
сложен для сайтов. Загуглив слова "веб-приложение", я узнал, что:


  Веб-приложение — клиент-серверное приложение, в котором клиентом
  выступает браузер, а сервером — веб-сервер. Логика веб-приложения
  распределена между сервером и клиентом, хранение данных
  осуществляется, преимущественно, на сервере, обмен информацией
  происходит по сети.


Но разве сайт не является веб-приложением ? На первый взгляд кажется, что это такой
же обмен документами между клиентом и сервером по определенному протоколу. Разве нет
? Особенно, если учитывать технологию AJAX.
    


Ответы

Ответ 1



Это очень тонкий момент и рассматривать его надо скорее с точки зрения "понятий". Сейчас конечно начнется холивар, но все же приведу свое имхо. Сайт - это скорее некий информационный ресурс, не предполагающий какой либо сложной логики и больше ориентирован на отдачу контента. Сайты преимущественно находятся в публичном доступе в Internet. Веб приложение наоборот, предполагает плотное взаимодействие с пользователем, получение от него "бизнес данных", их сложную обработку и хранение, возможно даже без предоставления результата пользователю. Веб приложения зачастую работают в Intranet. Пример первого - тот же стек, хабр или фишки в конце концов. Пример второго - гуглдокс, SAP и т.д. Веб приложение для работы, сайт для развлечения/поиска информации. Англоязычная статья на вики дает нам такое пояснение: The general distinction between an interactive web site of any kind and a "web application" is unclear. Web sites most likely to be referred to as "web applications" are those which have similar functionality to a desktop software application, or to a mobile app. HTML5 introduced explicit language support for making applications that are loaded as web pages, but can store data locally and continue to function while offline. UPD С точки зрения шарообразного коня в вакууме любой веб-сайт можно назвать веб-приложением и наоборот. Но в реальной жизни под эти определения обычно разделяют по субъективным признакам, описанным выше.

Ответ 2



Сайты - это подмножество веб-приложений. В общении так часто называют любую страничку, которая отображается в браузере. Но на практике, эта страничка может быть частью "сложной" системы (например какой-нибудь документооборот или со "странички" можно управлять каким нибудь устройством (запрос пойдет на сервер, а сервер реализует управление, к примеру, "умным домом")). Когда гворят, что Java EE отлично подходит для веб-приложений и слишком сложен для сайтов. из контекста я бы решил, что сайт - это информационный ресурс с набором страничек, админкой. И для его создания лучше действительно взять готовый фреймворк, где все технические вопросы уже решены. Но скорей всего в этот фреймворк было вложено приличное кол-во времени, и это тоже сложное веб-приложение внутри. В общем по моему мнению отличия эти субъективны и сильно зависят от вашей точки зрения.

Ответ 3



Пойдём по определению: Веб-приложение — клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети. Клиент - браузер, сервер - веб-сервер. Ну тут в целом всё понятно. Действительно и у сайта и у приложения клиентом будет некий браузер, а сервером - некий веб-сервер. Сервер предоставит разметку странички сайта или приложения, статичную или сгенерированную на лету, возможно по шаблону. У сайта это будет скорее всего (не всегда, но чаще всего) некая статика - картинки, видео, текст на страничке; сама страничка может быть сгенерирована какой-нибудь системой управления контентом, но от этого статика не перестанет быть статикой, то, что её предоставит некоторая логика - это уже повод понимать, что мы общаемся с некоторым сервисом, предоставляющим эту статику - т.е. с веб приложением. Для "чистого" веб приложения мы будем иметь некий набор форм для ввода данных и для их представления пользователю (сгенерированные HTML стьранички, JSON текст, XML и т.д.) - для вывода. Логика веб-приложения распределена между сервером и клиентом У сайтов старого образца логика если и присутствовала - то максимум в виде различных JavaScript "улучшений" - анимация, отправка форм и т.д. То, что эти JS элементы (да и просто HTML формы) позволяют отправить данные куда-то ещё не делает их полноценным веб-приложением. Без принимающей стороны, оперирующей с данными, обладающей некоторой логикой - эти JS скрипты и формы - просто статика, которая "оживляется" браузером - веб клиентом, исполняющим свою функцию - общение с веб-сервером и представление полученных данных в виде разметки и мультимедиа. На веб странице могут быть элементы веб-приложения, но сама страница будет просто разметкой, представленной в графическом виде. Сайт - это ресурс, данные без логики. У приложения мы можем наблюдать активное манипулирование данными, которое может и не сказываться на виде самой страницы (вспомним всевозможные метрики, мониторы пользовательской активности и т.д.), а может и существенно менять внешний вид отображаемой страницы (вспомним игры, сервисы заказа билетов и т.д.). Данные перемещаются между клиентской и серверной стороной. Если просто: сайт с онлайн просмотром видео в плеере - это сервис, веб-приложение с помощью своей части-плеера подгружает данные и отображает их, реагирует на действия над органами управления - проигрывает видео с выбранного ползунком момента, приостанавливает видео и т.д. Сайт, на котором есть набор текстовых страниц и ссылки на видеофайлы, при клике на которые начинается скачивание видеофайла на диск компьютера - это "просто сайты". Да, тут браузер-клиент закачивает с веб-сервера данные, но эти данные просто предоставляются серверной стороной согласно стандартной логике именно веб-сервера и веб-браузера, без участия каких-либо дополнительных логических операций (проверка возраста пользователя, учёта "лайков", отслеживания проигрываемого участка мультимедиа и т.д). С приходом веб 2.0+ "смешались в кучу кони, люди", но границы между "сайтом" и "веб-приложением" всё ещё лежат в области "добавочной логики". Хранение данных осуществляется, преимущественно, на сервере Да, хранение данных ложится на сервер. Но в случае сайта - это именно "расположение данных в каталоге abc", а в случае приложения доступ к этим данным может предоставляться клиенту, работающему с сервером А1, который в рамках предоставления сервиса, обращается к кластеру серверов Б2, получает данные, сопоставляет их с данными с другого сервера В3 и только после этого отдаёт в некоторой форме клиенту. У "простого сайта" - ресурс либо есть, либо его нет. но на обычном сайте может быть размещён "виджет" веб-приложения (JS скрипт с встраиваемой формой), который будет проедоставлять функциональность некоего сервиса (веб приложения) на "обычном сайте". Последнее не будет делать сайт веб приложением. Ну с сетевым обменом данными, думаю, дополнительных пояснений не требуется.

Комментариев нет:

Отправить комментарий