На самом деле, с ростом Интернета и, в частности, «веб-сервисов», все современные серверы приложений также могут функционировать как веб-серверы.Например, текущая версия Tomcat включает встроенные функции веб-сервера, поэтому вам больше не нужно запускать отдельный HTTP-сервер Apache.В прошлом запуск отдельных выделенных веб-серверов, таких как Apache, был предпочтительным, поскольку обработка сервера приложений была оптимизирована для сервера приложений, а не для веб-сервера;но производительность серверов приложений как веб-серверов улучшилась, так что любая оставшаяся разница в производительности не имеет значения - и, конечно, не оправдывает затраты на работу отдельных серверов.
Сегодня основное отличие состоит в том, что сервер приложений предназначен для поддержки языков программирования, таких как Java или на платформе .net, C #, а также для обеспечения базовой инфраструктуры, включающей автоматическую отказоустойчивость,Сеанс MGMT, транзакция MGMT, многопоточность - и все остальное, необходимое для создания масштабируемых корпоративных приложений.Современные веб-серверы предназначены для поддержки таких языков, как Ruby, PHP, Python и Perl, и им не хватает встроенной инфраструктуры сервера приложений.
Однако различие между серверами приложений и веб-серверами стирается и будет продолжать расти, поскольку «веб-сервисы» становятся все более популярными, а языки, такие как Ruby, становятся все более популярными и поэтому требуют, чтобы веб-серверы обеспечивали большую частьта же базовая инфраструктура, что и у современных серверов приложений.В конце концов, основным отличием будет (пока нет): если вы хотите разработать внутренний (облачный) уровень вашего приложения, использующего Java или C #, используйте сервер приложений;если вы хотите разрабатывать свое приложение, используя Ruby, PHP или Perl, используйте веб-сервер.