Какая разница между scgi и wsgi?

Какая разница между этими двумя? Что лучше/быстрее/надежнее?

Ответ 1

SCGI - это нейтральное по языку средство для подключения внешнего веб-сервера и веб-приложения. WSGI является стандартным для Python интерфейсом для веб-приложений.

Несмотря на то, что у обоих есть корни в CGI, они довольно разные по объему, и вы действительно могли бы разумно использовать оба сразу, например, имея mod_scgi на веб-сервере, чтобы поговорить с WSGI-приложением, запущенным как SCGI-сервер. Существует несколько реализаций библиотек, которые будут запускать приложения WSGI в качестве серверов SCGI для вас (например, wsgitools, cherrypy).

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

Возможно, интерфейс Apache + mod_wsgi (embedded) может быть немного быстрее, чем Apache + mod_scgi + (SCGI wrapper lib), но, по всей вероятности, он не будет сильно отличаться. Более ценным является возможность запуска приложения на различных серверах, платформах и стандартах подключения.

Ответ 2

SCGI (например, FastCGI) - это (сериализованный) протокол, подходящий для межпроцессного взаимодействия между веб-сервером и веб-приложением.

WSGI - это API Python, соединяющий два (или более) Python WSGI-совместимых модуля внутри одного и того же процесса (интерпретатор Python). Один модуль представляет собой веб-сервер (являющийся либо реализацией Python в процессе веб-сервера, либо шлюзом для веб-сервера в другом процессе, например, SCGI). Другой модуль представляет или представляет веб-приложение. Кроме того, ноль или более модулей между этими двумя модулями могут выступать в качестве модулей "промежуточного программного обеспечения" WSGI, что делает такие действия, как управление сеансом/файлами cookie, кэширование содержимого, аутентификация и т.д. API WSGI использует языковые функции Python, такие как итерация/генераторы и передача вызываемых объектов между совместимыми модулями, совместимыми с WSGI.

Ответ 3

Они оба являются спецификациями для подключения веб-приложения к веб-серверу. Одно из очевидных различий заключается в том, что WSGI происходит из мира Python, и я считаю, что нет реализаций, отличных от python.

Технические характеристики, как правило, не сопоставимы на основе лучшего/быстрого/надежного.

Только их реализации сопоставимы, и я уверен, что вы найдете хорошие реализации обеих спецификаций.

Возможно читать и читать.