





Они обе являются спецификациями для подключения веб-приложения к веб-серверу. Одно существенное отличие состоит в том, что WSGI происходит из мира Python, и я считаю, что не существует реализаций, отличных от Python.
Технические характеристики, как правило, не сопоставимы по критериям лучше / быстрее / надежнее.
Сравнимы только их реализации, и я уверен, что вы найдете хорошие реализации обеих спецификаций.
SCGI - это не зависящее от языка средство соединения интерфейсного веб-сервера и веб-приложения. WSGI - это специфичный для Python стандарт интерфейса для веб-приложений.
Хотя оба они имеют корни в CGI, они довольно разные по объему, и вы действительно можете вполне разумно использовать оба сразу, например, если mod_scgi на веб-сервере общается с приложением WSGI, запущенным как сервер SCGI. Существует несколько реализаций библиотек, которые будут запускать приложения WSGI в качестве серверов SCGI (например, wsgitools, cherrypy).
Они оба «надежны», поскольку вы можете считать спецификацию надежной в отличие от конкретной реализации. В наши дни вы, вероятно, написали бы свое приложение как вызываемое WSGI и отдельно рассмотрели бы вопрос развертывания.
Возможно, интерфейс Apache + mod_wsgi (встроенный) может быть на немного быстрее, чем Apache + mod_scgi + (библиотека-оболочка SCGI), но, по всей вероятности, он не будет отличаться от чрезвычайно. Более ценной является возможность запускать приложение на различных серверах, платформах и стандартах подключения.
SCGI (как и FastCGI) - это (сериализованный) протокол, подходящий для межпроцессного взаимодействия между веб-сервером и веб-приложением.
WSGI - это Python API, соединяющий два (или более) Python WSGI-совместимых модуля внутри одного процесса (интерпретатора Python). Один модуль представляет веб-сервер (являющийся либо внутрипроцессной реализацией веб-сервера Python, либо шлюзом к веб-серверу в другом процессе, например, через SCGI). Другой модуль представляет собой веб-приложение. Кроме того, ноль или более модулей между этими двумя модулями могут служить в качестве модулей «промежуточного программного обеспечения» WSGI, выполняя такие вещи, как управление сеансами / файлами cookie, кэширование контента, аутентификация и т. д. API WSGI использует функции языка Python, такие как итерация / генераторы и передача вызываемых объекты между взаимодействующими WSGI-совместимыми модулями.