Obsah

WSGI (Web Server Gateway Interface)

WSGI (Web Server Gateway Interface) není software, ale standard (specifikace), který definuje, jak spolu komunikuje webový server (např. Apache nebo Nginx) a webová aplikace napsaná v jazyce Python.

Byl vytvořen v roce 2003 (PEP 333), aby se vyřešil problém nekompatibility mezi různými webovými servery a aplikačními frameworky.

Proč WSGI vznikl?

Před existencí WSGI museli tvůrci frameworků (jako Django nebo Flask) psát specifické verze svých nástrojů pro každý webový server zvlášť. Pokud jste chtěli změnit server, museli jste přepsat kus aplikace.

WSGI vytvořilo univerzální rozhraní:

Jak to funguje?

WSGI definuje jednoduchý vzor: aplikace musí být „volatelný objekt“ (callable), který přijímá dva parametry:

1. environ: Slovník obsahující proměnné prostředí (metoda, URL, hlavičky).
2. start_response: Funkce, která odesílá HTTP status a hlavičky.

Architektura Middleware

Jednou z největších výhod WSGI je možnost vkládat tzv. Middleware. To jsou komponenty, které stojí mezi serverem a aplikací a mohou:

Rozdíl mezi WSGI a ASGI

V moderním IT se stále častěji setkáváme i s nástupcem:

Standard Charakteristika
WSGI Synchronní rozhraní. Vhodné pro klasické aplikace (Django, Flask). Jeden požadavek = jedno vlákno.
ASGI Asynchronní rozhraní. Podporuje WebSockety a dlouhotrvající spojení (FastAPI, Django Channels).

Související pojmy: uWSGI, Python, HTTP