Что такое программа сервер ответ
Перейти к содержимому

Что такое программа сервер ответ

  • автор:

Что такое сервер приложения?

Из всего прочитанного в интернете мне удалось понять, что существуют 2 вида серверов: статические и динамические. Статические сервера включают в себя «сервер-железо» и «сервер-ПО», которое работает с HTTP и URL. Динамические сервера содержат все то, что содержат статические + сервер приложения и базу данных. Вся инфа отсюда. То есть по сути динамический сервер называется таким из-за работы сервер приложения, который может изменять файлы, передаваемые по HTTP, налету. У меня возник вопрос. Получается, что сервер приложения — это какой-то код, который позволяет обрабатывать файлы. Но судя по этой цитате, это не совсем так (вряд ли код может содержать веб-сервер): Источник

Сервер приложений может содержать веб-серверы, поэтому он считается более мощным, чем веб-сервер.

Здесь мне скорее всего не понятно само строение или структура этого сервера приложения. Для чего и каким образом он содержит этот веб-сервер? Также не понятна эта фраза:

Сервер приложений действует как набор компонентов, доступных разработчику программного обеспечения через API (интерфейс прикладного программирования), определённый самой платформой.

Получается, что если API поддерживает взаимодействие 2-ух программ, то в этом случае API может поддерживать взаимодействие между сервером приложения и какой-то любой другой программой. А всегда ли API поддерживает работу с сервером приложений, API работает только с сервером приложений?

Отслеживать
задан 1 ноя 2021 в 18:03
1,889 1 1 золотой знак 8 8 серебряных знаков 26 26 бронзовых знаков

я не хочу умничать, но, мне кажется, Вы читаете какие то не те источники. Не хочу катить бочку на авторитетную Википедию и т.п., но в общем здесь идёт «спор о терминах». Посмотрите на это с другой стороны: Сервер — это любая «штука», которая обслуживает «запросы». Вам компьютер ответил на ping? О! Это — сервер!

1 ноя 2021 в 18:28

А то, что Вы пишете про статическиие и динамические сервера — обычно, мне кажется, называется «статическим контентом» и «динамическим контентом». И — еще, если уточнить, что речь идет о HTTP — серверах, всё становится на свои места. Но я всё же советую Вам разбить вопрос на несколько вопросов, так как в текущем виде на него трудно ответить

1 ноя 2021 в 18:38

Сервер — это программа, принимающая входящие запросы от клиентов. Веб-сервер — программа, принимающая входящие запросы по протоколу http. Также сервером называют компьютер, основным назначением которого является запуск программ-серверов. Всю остальную «серверную» терминологию я считаю малополезной шелухой

1 ноя 2021 в 19:29

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

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

Мне кажется, что то непонимание, которое у Вас есть, происходит от обилия терминов и их «исторического напластования»

  1. То, что Вы называете «статическиие и динамические сервера» — обычно, мне кажется, называется «статическим контентом» и «динамическим контентом».
  2. то, что в тексте назывется серверами приложений — нужно понимать просто как «веб сервер без морды», как бы грубо это ни звучало. Это — программа, которая по HTTP принимает запросы и по HTTP же отвечает. Обычно это называют REST — протоколом (Representational state transfer)

Еще один распространённый термин для «серверов приложений» — это «веб-служба».

А всегда ли API поддерживает работу с сервером приложений?

Сам термин «сервер приложений» — это некая историческая шелуха.

Поясню свою мысль. На этапе зарождения WEB’а возможности написать файл с гиперссылками и отдавать его в примитивный браузер типа мозаики в общем всем хватало.

Но хотелось «динамики» например, счетчика числа посетителей на странице. Для этого использовался CGI (Common Gateway Interface).

Фактически, это означало, что в ответ на запрос из браузера на сервере выполнится программа, и результат её выполнения будет показан в браузере.

Чтобы «хорошо продавать» эту возможность ( а веб-сервера были не только бесплатными open source, но иногда и очень даже платными, типа Microsoft IIS и IBM WebSphere ) — был придуман маркетинговый термин «сервер приложений».

Который означал не более и не менее, чем возможность в ответ на запрос пользователя выполнить некий код, который на этот запрос ответит. В этом была разница с сервером, который умеет только «тупо хостить файлы»

Далее — под API, наверное, следует понимать «взаимодействие по заранее согласованному протоколу», но применительно к HTTP — серверам это в 99% случаев следует читать как REST API.

Объясню на примере. Пускай у меня есть база данных с ценной информацией.

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

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

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

Дополнение

я перечитал Ваш вопрос, и решил немного дополнить ответ вот в какой части:

Сервер приложений может содержать веб-серверы, поэтому он считается более мощным, чем веб-сервер.

Здесь мне скорее всего не понятно само строение или структура этого сервера приложения. Для чего и каким образом он содержит этот веб-сервер?

Я попытаюсь «на пальцах» рассказать, что имется в виду. Для этого посмотрим на стуктуру того, что вообще есть во всех этих серверах.

  1. Есть программа, которая реализует HTTP — протокол. Она просто умеет получать HTTP-запрос и в ней есть модуль, который пытается на это запрос ответить.
  2. Обычно эту программу просто «привязывают» к файловой системе WEB-сервера, и «модуль отвечания» работает по такому алгоритму: «К тебе пришел запрос? Посмотри, есть ли на диске файл, название которого соответствует запросу. Если есть — выдай этот файл в ответ на запрос, если нет — покажи страницу с 404-й ошибкой». Это — то что называется «статический контент», или «статический сервер» (как бы не передёргивало меня от этого термина)
  3. Что такое «динамический сервер»? Это когда «модуль отвечания» в программе, которая обслуживает запросы, учат еще одному фокусу: «. а вот если к тееб придёт запрос определенного вида — то вместо отдачи файла пользователю выполни вот эту программу, и отдай пользоваетлю результаты её выполнения».

вот именно в этом смысле «Сервер приложений может содержать веб-серверы» — они имеют в виду, что, для того, чтобы принять запрос и отправить ответ — нужен модуль работы с HTTP протоколом, и называют его «веб-сервер». В этом смысле «динамический сервер» собержит «веб-сервер» в своём составе.

Отслеживать
ответ дан 1 ноя 2021 в 18:57
11.1k 1 1 золотой знак 24 24 серебряных знака 46 46 бронзовых знаков

вот именно в этом смысле «Сервер приложений может содержать веб-серверы» — они имеют в виду, что, для того, чтобы принять запрос и отправить ответ — нужен модуль работы с HTTP протоколом, и называют его «веб-сервер» а что тогда содержит веб-сервер для работы с HTTP (ПО сервер, как говорится на MDN) при отсутствии сервера приложений (т.е. если говорить про статический контент, статический сервер)? Сервер-железо?

1 ноя 2021 в 19:53

@Eva — > а что тогда содержит веб-сервер для работы с HTTP при отсутствии сервера приложений — я думаю, при отсутствии сервера приложений модуль работы с HTTP (это штука, которая умеет принимать запрос и отдавать ответ) имеет простейшую инструкцию «приняв запрос, возьми файл, если он существует, и отправь его в качестве ответа». То есть, имеется в виду сервер — программа, но которая не умеет запускать «другие программы», а умеет только отдавать готовые файлы.

1 ноя 2021 в 19:56

вы наверное не поняли моего вопроса)) вопрос был в том, где находится программа по работе с HTTP — на железе или на сервере приложений? Хотя, наверное, и там, и там, в любом случае надо же сначала обработать запрос (обрабатывает, как я понимаю, железо), а уже потом выдать ответ (обрабатывает, как я понимаю, или железо, или сервер приложения). Я правильно понимаю?

1 ноя 2021 в 20:06

@Eva обработкой и выдачей ответов занимаются программы, а программы запускаются на железе. «Сервер приложений» это просто ещё одна программа, наличие или отсутствие которой зависит только от ваших личных предпочтений

1 ноя 2021 в 20:14

@Eva — я советую Вам критически относиться к этой фразе, потому что она 1) изначально включала в себя неоднозначности, присущие языку вообще 2) была переведена, что не добавило ей однозначности. Слова «считается более мощным» можно понимать как «позволяет выполнить больше функций». Такое трактование, скорее всего, близкО к исходному смыслу

1 ноя 2021 в 20:57

Что/кто такой(-ое) «сервер»?

англ: serve — служить; +er —> server — тот, кто обслуживает.

Простыми словами «сервер» это то, что обслуживает (исполняет) запросы. Исполнитель.

Исполнитель (сервер) — это приложение. Однако этим же «словом» также называют железо на котором работает это приложение(-я). Да, на одном железе (сервере) могут быть запущены несколько приложений (серверов).

Деды от «айти» не перевели, в своё время, теперь вот такие вопросы.

Далее по наследию от дедов.

«Статичный, статический»

англ (прил): static — неподвижный.

«Динамичный, динамический и прочее динамо-«

англ (прил): dynamic — действующий, работающий, живой.

«Веб»

англ: web — паутина, сеть.

Соединяем всё до кучи.

Веб-сервер — исполнитель, который обрабатывает сетевые запросы, созданные по тем или иным правилам (договорённостям) (англ: protocol): TCP/IP, HTTP и т.д.

Сервер-приложений — исполнитель, на котором выполняется какое-либо прикладное приложение.

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

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

Ну и несколько слов про API исполнителя приложений.

К примеру, возьмём самовоз (англ: auto- (само-); mobile (подвижный)). У него есть рычаг переключения передач. Так вот допустимые положения для этого рычага являются API, т.е. способами для переключения передач, которые предоставлены разработчиками самовоза для этих нужд.

Наглядно положения передач можно описать так:

  • 1-я: /влево/вверх
  • 2-я: /влево/вниз
  • ..
  • 5-я: /вправо/вверх
  • Задняя: /вправо/вниз

Для исполнителя приложений всё тоже самое. Есть набор мест (положений) при обращении к которым (с указанием дополнительных данных, если это необходимо) будет выполнено то или иное действие этим самым приложением. Например:

создать заметку: /createArticle, /create-article, /создатьЗаметку, /заметку-создать (выбор названия всецело зависит от разработчиков приложений).

Что такое сервер приложений?

Исходя из того что смог найти в интернете у меня получилось:
Веб приложение — клиент-серверное приложение, в котором клиентом выступает браузер а сервером веб сервер.(вики)
Веб сервер — приложение(в общем смысле) которое обрабатывает запросы по HTTP протоколу. Выполняет полный перечень процедур: аутентификация, генерация страниц с помощью использования различных интерпретаторов и сервером приложений.
сервер приложений — приложение(в общем виде) которое предоставляет фреймворк для создания приложений.

И я теперь пытаюсь на это наложить существующие продукты:
Apache httpd + php интерпретатор — веб сервер. PHP интерпретатор — сервер приложений( или не верно, т.к. отдельно он апаче он не работает?)
Apache httpd + perl интерпретатор — веб сервер. Perl интерпретатор не является сервером периложений, т.к не предоставялет фреймворк.
Apache httpd + jetty — веб сервер.Jetty — сервер приложений
Apache Tomcat — одновременно и веб сервер и сервер приложений.

Где грань между сервером приложений и веб сервером? можно ли назвать модули веб сервера, отвечающие за генераци страниц сервером приложений? Правильно ли говорить что веб сервер состоит из обработчика запросов и сервера приложений или это разные сущности?

Спасибо всем за ликбез =)

  • Вопрос задан более трёх лет назад
  • 39025 просмотров

3 комментария

Оценить 3 комментария

В чем разница между веб-сервером и сервером приложений?

В чем разница между веб-сервером и сервером приложений?

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

Как они работают: веб-сервер или сервер приложений

Веб-серверы и серверы приложений имеют разные независимые процессы. Однако они невидимы для конечного пользователя.

Как работает веб-сервер

Веб-сервер – это технология, на которой размещаются код и данные веб-сайта. Когда вы вводите URL-адрес в браузере, этот URL-адрес фактически является идентификатором адреса веб-сервера.

Ваш браузер и веб-сервер взаимодействуют указанным ниже образом.

  1. Браузер использует URL-адрес для поиска IP-адреса сервера
  2. Браузер отправляет HTTP-запрос на получение информации
  3. Веб-сервер связывается с сервером баз данных для поиска соответствующих данных
  4. Веб-сервер возвращает браузеру статический контент, такой как HTML-страницы, изображения, видео или файлы, в HTTP-ответе
  5. Затем браузер отображает вам информацию

Веб-сайт, на котором размещен статический контент, такой как блоги, изображения заголовков или статьи, может работать на веб-сервере. Однако большинство веб-сайтов и веб-приложений гораздо более интерактивны и требуют сервера приложений.

Как работает сервер приложений

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

Когда вы пытаетесь получить доступ к интерактивному контенту на веб-сайте, процесс происходит указанным ниже образом.

  1. Браузер использует URL-адрес для поиска IP-адреса сервера
  2. Браузер отправляет HTTP-запрос на получение информации
  3. Веб-сервер передает запрос на сервер приложений
  4. Сервер приложений применяет бизнес-логику и взаимодействует с другими серверами и сторонними системами для выполнения запроса
  5. Сервер приложений отображает новую HTML-страницу и возвращает ее в ответ веб-серверу
  6. Веб-сервер возвращает ответ браузеру
  7. Браузер отображает информацию для вас

На примере веб-сайта электронной коммерции, когда вы добавляете товары в корзину или оформляете заказ, вы взаимодействуете с сервером приложений.

Ключевые отличия: веб-сервер и сервер приложений

У веб-серверов и серверов приложений есть несколько ключевых отличий.

Охваченные задачи

Веб-сервер размещает веб-сайты и предоставляет ответы на простые запросы. Веб-серверы также регистрируют активность сервера и позволяют создавать сценарии на стороне сервера.

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

Используемые протоколы

Основным протоколом, который используют веб-серверы, является протокол HTTP. Однако различные веб-серверы также поддерживают FTP и простой протокол передачи почты (SMTP). Эти два протокола облегчают хранение и передачу файлов, а также электронную почту.

Помимо протоколов, используемых веб-серверами, серверы приложений используют дополнительные протоколы для связи с другими программными компонентами. Например, они могут использовать удаленный вызов метода (RMI) и удаленный вызов процедур (RPC).

Типы контента

Веб-серверы в основном предоставляют статический контент. Статический контент – это контент, который серверу не нужно изменять или обрабатывать перед отправкой. Например, файлы изображений (например, PNG, GIF и JPEG), загружаемые документы (PDF-файлы), видео и HTML-файлы представляют собой статический контент.

Серверы приложений в основном предоставляют динамический контент. Динамический контент – это контент, который меняется в зависимости от того, как пользователь взаимодействует с ним. Например, динамически создаваемые отчеты, настраиваемые представления данных, персонализированные пользовательские интерфейсы, результаты базы данных и обработанный HTML-код – все это динамический контент.

Многопоточность

Потоки на сервере – это отдельные пути работы, обеспечивающие параллельную обработку задач. В многопоточном режиме сервер создает и запускает несколько потоков одновременно, и каждый из них обрабатывает отдельную задачу или часть задачи. Поддержка многопоточности помогает быстрее доставлять веб-контент при одновременном управлении большим веб-трафиком.

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

Серверы приложений используют многопоточность для обеспечения высокой масштабируемости и эффективности. Если для запроса требуются внешние ресурсы, сервер приложений использует отдельные потоки для покрытия этих взаимодействий. Он может обрабатывать несколько потоков одновременно, параллельно обслуживая множество взаимодействий с клиентами.

Как взаимодействуют серверы приложений и веб-серверы?

Серверы приложений и веб-серверы совместно обрабатывают запросы клиентов и доставляют пользователю нужное содержимое. Веб-сервер всегда получает новый запрос первым. Если он может сам генерировать информацию, он делает это и отправляет ответ HTTP. Также проверяется, нет ли в кэше данных, которые запросил пользователь.

Если веб-сервер не может получить доступ к нужному пользователю содержимому, он перенаправляет запрос на сервер приложений. Сервер приложений обрабатывает данные и использует бизнес-логику для предоставления правильной информации. Затем запрос передается обратно на веб-сервер, который передает его пользователю. В некоторых архитектурах можно также настроить серверы приложений для самостоятельной обработки HTTP-запросов.

что такое программа сервер?

Архитектура Клиент Сервер — С одной стороны есть машины, поддерживающие стандартные протоколы, на которых поддерживается ряд программ, ожидающих запросов на соединение. С другой стороны есть машины, которые связываются с этими программами, чтобы воспользоваться их сервисами. Сервер — компьютерная программа, которая поддерживает разделенный доступ к общему ресурсу или сервису в сети. (Если ресурсом считать файлы, а севисом программы) . В сетевом сообществе Компьютерный Пользователь обращается к серверу и через него получает доступ к ресурсу, которым является База Данных. Для работы с базой данных Программа Сервер использует CGI-Скрипты

Похожие вопросы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *