Anar al contingut

WSGI

De L'Enciclopèdia, la wikipedia en valencià

l'Interfaç de Passarela del Servidor Web, o Web Server Gateway Interface en anglés (WSGI) és un estàndart que facilita la conexió entre el servidor web i les aplicacions web desenrollades en Python. Gràcies a este interfaç estandardisat, resulta més senzill utilisar una aplicació que siga compatible en WSGI en diversos servidors web.

WSGI actua com un interfaç entre el servidor web i l'aplicació web, permetent que abdós es comuniquen de manera eficient:

  • Solicitut del Client: Un usuari realisa una solicitut a través de la seua navegador web per a accedir a una pàgina web.
  • Servidor Web: La solicitut del client aplega al servidor web, que és responsable de manejar les solicituts entrantes.
  • Entorn WSGI: Quan es rep una solicitut que deu ser manejada per una aplicació web en Python, el servidor web crea un entorn WSGI. Este entorn conté informació sobre la solicitut, com el método HTTP, l'URL solicitada i atres detalls rellevants.
  • Aplicació WSGI: L'aplicació web escrita en Python, que seguix l'especificació de WSGI, rep l'entorn WSGI i produïx una resposta. L'aplicació pot ser un marc web com Flask o Django.
  • Resposta WSGI: L'aplicació WSGI genera una resposta, que inclou el contingut de la pàgina web, els encapçalats HTTP i qualsevol atra informació necessària.
  • Devolució al Servidor Web: La resposta de l'aplicació WSGI es torna al servidor web a través de l'entorn WSGI.
  • Enviament al Client: El servidor web pren la resposta WSGI i l'envia de regrés al client, que la rep i mostra en el navegador.

Orígens del WSGI

Abans de l'existència de WSGI, cada marc web en Python tenia la seua pròpia forma d'interactuar en els servidors web. Esta falta d'estandardisació dificultava la portabilitat de les aplicacions web entre diferents servidors.

El primer estàndart WSGI, conegut com WSGI va ser propost en 2003 per Phillip J. Eby i Ian Bicking. L'intenció era crear un interfaç comú que permetera als desenrolladors d'aplicacions web treballar en diferents servidors web sense tindre que realisar canvis significatius en el seu còdic.

En l'any 2010, el PEP 333 (Python Enhancement Proposal) va formalisar l'especificació de WSGI, este PEP va proporcionar la documentació necessària per a l'implementació i l'us de WSGI.

En la Documentació introductòria de Python sobre el WSGI

WSGI no constituïx un servidor, un mòdul de Python, un framework, una API, ni qualsevol tipo de software en sí mateixa. Més be, es tracta d'una especificació d'interfaç que establix cóm deuen comunicar-se el servidor web i l'aplicació web.

L'especificació WSGI definix tant el costat del servidor com l'interfaç de l'aplicació, com es detalla en el PEP 3333 (Python Enhancement Proposal). Quan una aplicació, framework o conjunt de ferramentes es desenrolla seguint l'especificació WSGI, té la capacitat d'eixecutar-se en qualsevol servidor que també estiga implementat segons esta especificació.

Les aplicacions WSGI, aquelles que complixen en l'especificació WSGI, tenen la capacitat de ser apilades. Aquelles que ocupen una posició intermija en esta pila es denominen middleware i deuen implementar tant el costat de l'aplicació com el del servidor en l'interfaç WSGI.

L'aplicació que es troba en la part superior de la pila actuarà com un servidor per a l'aplicació (o servidor) ubicada davall, mentres que per a l'aplicació (o servidor) que està davall, funcionarà com una aplicació. Este model permet la composició i la creació de cadenes de middleware, lo que proporciona flexibilitat i extensibilidad en el maneig de les solicituts web en entorns WSGI.

WSGI funciona com un conducte simple que rep la solicitut del client, la transmet a l'aplicació i després envia la resposta generada per l'aplicació de regrés al client. La seua funció es llimita a este procés i no realisa accions adicionals. Tots els detalls específics sobre cóm manejar la solicitut i generar la resposta deuen ser gestionats per l'aplicació o middleware.

Erro al crear miniatura:
framework Flask

És important destacar que no és necessari tindre un coneiximent profunt de l'especificació WSGI per a desenrollar aplicacions utilisant frameworks o kits de ferramentes que siguen compatibles en WSGI. En el cas d'usar middleware, es requerix una comprensió bàsica de cóm apilar-els junt en l'aplicació o el marc, a menos que el framework ya els integre de manera nativa o proporcione algun mecanisme per a incorporar aquells que no estiguen integrats de forma predeterminada.

Referències

https://www.toptal.com/python/pythons-wsgi-server-application-interface

Documentació de Python: https://docs.python.org/es/3/library/wsgiref.html#:~:text=La%20Interfaz%20de%20Pasarela%20del,WSGI%20con%20diferentes%20servidores%20web.

Introducció al WSGI:https://entrenamiento-frameworks-web-python.readthedocs.io/es/latest/leccion4/introduccion_wsgi.html#servidor-wsgi

"Hello Word" en WSGI:https://entrenamiento-frameworks-web-python.readthedocs.io/es/latest/leccion4/hello_world.html