Saltar para o conteúdo

Web Server Gateway Interface

Origem: Wikipédia, a enciclopédia livre.

O Web Server Gateway Interface (WSGI), em português Interface de Porta de Entrada do Servidor Web, é uma especificação para uma interface simples e universal entre servidores web e aplicações web ou frameworks para a linguagem de programação Python. Foi originalmente especificada na PEP 333, de autoria de Philip J. Eby, e publicada em 7 de dezembro de 2003.[1] Desde então foi adotada como um padrão para o desenvolvimento de aplicações web em Python. A última versão da especificação é v1.0.1, também conhecida como PEP 3333, publicada em 26 de setembro de 2010.[2]

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.[3] WSGI é um padrão Python e tem como objetivos ser simples e de fácil implementação.[4]

Referências

  1. «PEP 333, Python Web Server Gateway Interface v1.0» 
  2. «PEP 3333, Python Web Server Gateway Interface v1.0.1» 
  3. Phillip J. Eby (16 de setembro de 2010). «Python Web Server Gateway Interface v1.0». Consultado em 20 de setembro de 2010 
  4. StephanDiehl (7 de fevereiro de 2010). «What is WSGI». WSGI Wiki. Consultado em 20 de setembro de 2010 
Ícone de esboço Este artigo sobre Internet é um esboço. Você pode ajudar a Wikipédia expandindo-o.