LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

Сейчас компилируемые в натив языки снова в моде, как и JIT, а на си писать без libuv и аналогов никто не будет в здравом уме, для этих целей сейчас есть Go

Просто, libuv/libevent это для случая, если мы хотим запилить ещё и свой веб-сервер до кучи. А так-то, если использовать nginx (равно как и любой другой веб-сервер), то с начала 2000-х (или конца 90-х, уже не помню), когда разработали FastCGI и спеку на них, на С или С++ можно было создавать persistent web-applications. Основных отличий от CGI-приложений было два. Это то, что приблуды с fastcgi взаимодействовали с сервером не через stdin/stdout/stderr как CGI, а через сокеты и можно было не запускать-останавливать приблуду на каждый CGI-запрос, а запустил (в т.ч. и на удалённом хосте) и пусть работает. Это было дешевле чем запускать-останавливать при каждом запросе, т.к. существовали проблемы с производительностью например при логине в СУБД и работе с нею. В персистент это решается проще. Ну и получалось поставить nginx, apache, lighttpd как фронтенд и отправить всю обработку на бэкэнд в виде своих приложений.

Фронтэндом в данном случае выступает тот же nginx (в принципе, почти все серваки поддерживают эту технологию). Он получает запросы от браузера как обычно и возвращает клиенту то, что ему выплюнуло fastcgi-приложение, которое работает как бэкэнд и где происходит обработка пользовательского запроса. А уж что именно там за запросы, это дело вообще десятое. С микросервисами там тоже проще было. Одно приложение в бэкэнде по сути и есть именно такой «микросервис».

Это потом уже прикрутили fastcgi к php. Ровным счётом ничего нового кроме громадного оверхеда по отношению к С. Но людям нравится, почему бы и нет? =)

Для С++ всё было несколько хуже, т.к. изначально FastCGI это «чистый» С, там внутри были редифайны того же printf(), потоков не было в принципе, но сейчас вот Yandex намутил вариант FastCGI Daemon для С++. Не мой вариант, т.к. я по-проще как-то справляюсь, но есть, можно пользоваться.

Ненужно писать сервер, можно упростить себе жизнь. Точнее, не всегда нужно писать сервер. =)

Вот я и улыбнулся когда прочёл Ваше описание того, что сейчас снова в моду входит. Уж больно знакомо. Колесо совершило очередной оборот. =)))

Исходная версия Moisha_Liberman, :

Да, на С не все.

Сейчас компилируемые в натив языки снова в моде, как и JIT, а на си писать без libuv и аналогов никто не будет в здравом уме, для этих целей сейчас есть Go

Просто, libuv/libevent это для случая, если мы хотим запилить ещё и свой веб-сервер до кучи. А так-то, если использовать nginx (равно как и любой другой веб-сервер), то с начала 2000-х (или конца 90-х, уже не помню), когда разработали FastCGI и спеку на них, на С или С++ можно было создавать persistent web-applications. Основных отличий от CGI-приложений было два. Это то, что приблуды с fastcgi взаимодействовали с сервером не через stdin/stdout/stderr как CGI, а через сокеты и можно было не запускать-останавливать приблуду на каждый CGI-запрос, а запустил (в т.ч. и на удалённом хосте) и пусть работает. Это было дешевле чем запускать-останавливать при каждом запросе, т.к. существовали проблемы с производительностью например при логине в СУБД и работе с нею. В персистент это решается проще. Ну и получалось поставить nginx, apache, lighttpd как фронтенд и отправить всю обработку на бэкэнд в виде своих приложений.

Фронтэндом в данном случае выступает тот же nginx (в принципе, почти все серваки поддерживают эту технологию). Он получает запросы от браузера как обычно и возвращает клиенту то, что ему выплюнуло fastcgi-приложение, которое работает как бэкэнд и где происходит обработка пользовательского запроса. А уж что именно там за запросы, это дело вообще десятое. С микросервисами там тоже проще было. Одно приложение в бэкэнде по сути и есть именно такой «микросервис».

Это потом уже прикрутили fastcgi к php. Ровным счётом ничего нового кроме громадного оверхеда по отношению к С. Но людям нравится, почему бы и нет? =)

Для С++ всё было несколько хуже, т.к. изначально FastCGI это «чистый» С, там внутри были редифайны того же print(), потоков не было в принципе, но сейчас вот Yandex намутил вариант FastCGI Daemon для С++. Не мой вариант, т.к. я по-проще как-то справляюсь, но есть, можно пользоваться.

Ненужно писать сервер, можно упростить себе жизнь. Точнее, не всегда нужно писать сервер. =)

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