Web Server Gateway Interface
O Web Server Gateway Interface (WSGI) define uma interface simples e universal entre servidores web e aplicações web ou frameworks para a linguagem de programação Python.
Ideia
Frameworks de aplicação web em Python têm sido um problema para novos usuários de Python pois a escolha do framework web pode limitar a escolha de servidores web úteis, e vice-versa.
Aplicações em Python eram frequentemente projetadas para apenas um dos servidores web específicos para CGI, FastCGI, mod_python ou alguma outra interface de API personalizada de um servidor web específico.
O WSGI foi criado como uma interface de baixo-nível entre servidores web e aplicações web ou frameworks para promover uma base comum para o desenvolvimento de aplicações web portáteis.
Visão geral da especificação
O WSGI possui dois lados: o lado "servidor" ou "gateway" e o lado "aplicação" ou "framework". Para processar uma requisição WSGI, o lado servidor fornece informações de ambiente e uma função de callback para o lado aplicação. A aplicação processa a requisição e retorna a resposta para o lado servidor usando a função de callback que o lado servidor forneceu.
O chamado middleware WSGI implementa os dois lados da API, desta forma ele pode intermediar entre um servidor WSGI e uma aplicação WSGI: o middleware age como uma aplicação de algum ponto de vista do servidor WSGI e como um servidor de algum ponto de vista da aplicação WSGI. Um componente "middleware" pode realizar funções como:
- Rotear uma requisição para objetos de aplicação diferentes baseado na URL alvo, após mudar as variáveis de ambiente adequadamente.
- Permitir várias aplicações ou frameworks para executarem lado a lado no mesmo processo
- Balanceamento de carga e processamento remoto, enviando requisições e respostas sobre uma rede
- Realizar pós-processamento de conteúdo, como aplicar folhas de estilo XSLT
WSGI uma especificação para comunicação entre servidores de aplicação, ou servidores web, e aplicações web como definida na PEP 333.[1] WSGI é um padrão Python e tem como objetivos ser simples e de fácil implementação.[2]
Referências
- ↑ Phillip J. Eby (16 de setembro de 2010). «Python Web Server Gateway Interface v1.0». Consultado em 20 de setembro de 2010
- ↑ StephanDiehl (7 de fevereiro de 2010). «What is WSGI». WSGI Wiki. Consultado em 20 de setembro de 2010