What is WSGI? - Deepstash
What is WSGI?

What is WSGI?

en.wikipedia.org

5 ideas

·

175 reads

4

Explore the World's Best Ideas

Join today and uncover 100+ curated journeys from 50+ topics. Unlock access to our mobile app with extensive features.

WSGI stands for Web Server Gateway Interface and represents a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

5

134 reads

Overview

The WSGI has two sides:

  • the server/gateway side. This is often running full web server software such as Apache or Nginx.
  • the application/framework side. This is a Python callable, supplied by the Python program or framework.

Between the server and the application, there may be one or more WSGI middleware components, which implement both sides of the API, typically in Python code.

WSGI does not specify how the Python interpreter should be started, nor how the application object should be loaded or configured, and different frameworks and webservers achieve this in different ways.

4

11 reads

WSGI Middleware

A WSGI middleware component is a Python callable that is itself a WSGI application, but may handle requests by delegating to other WSGI applications. These applications can themselves be WSGI middleware components.

A middleware component can perform such functions as:

  • Routing a request to different application objects based on the target URL, after changing the environment variables accordingly.
  • Allowing multiple applications or frameworks to run side-by-side in the same process.
  • Load balancing and remote processing, by forwarding requests and responses over a network.

4

9 reads

Why is WSGI necessary?

Why is WSGI necessary?

A traditional web server does not understand or have any way to run Python applications. 

Therefore the Python community came up with WSGI as a standard interface that modules and containers could implement. WSGI is now the accepted approach for running Python web applications.

As shown in the above diagram, a WSGI server simply invokes a callable object on the WSGI application as defined by the PEP 3333 standard.

Some examples of WSGI servers are: Green Unicorn, uWSGI, mod_wsgi and CherryPy.

4

10 reads

WSGI's Purpose

Why use WSGI and not just point a web server directly at an application?

  • WSGI gives you flexibility. Application developers can swap out web stack components for others. For example, a developer can switch from Green Unicorn to uWSGI without modifying the application or framework that implements WSGI.
  • WSGI servers promote scaling. Serving thousands of requests for dynamic content at once is the domain of WSGI servers. WSGI servers handle processing requests from the web server and deciding how to communicate those requests to an application framework's process.

4

11 reads

More like this

Read & Learn

20x Faster

without
deepstash

with
deepstash

with

deepstash

Access to 200,000+ ideas

Access to the mobile app

Unlimited idea saving & library

Unlimited history

Unlimited listening to ideas

Downloading & offline access

Personalized recommendations

Supercharge your mind with one idea per day

Enter your email and spend 1 minute every day to learn something new.

Email

I agree to receive email updates