В чем разница между scgi и wsgi?

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
18
0
15 399
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Они обе являются спецификациями для подключения веб-приложения к веб-серверу. Одно существенное отличие состоит в том, что 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-совместимыми модулями.

Другие вопросы по теме