Web Server Gateway Interface: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
+{{Interfacce web}} |
||
(30 versioni intermedie di 20 utenti non mostrate) | |||
Riga 1:
Il '''Web Server Gateway Interface''' ('''WSGI''') è un [[Protocollo (informatica)|protocollo di trasmissione]] che stabilisce e descrive comunicazioni ed interazioni tra [[server]] ed [[Programma|applicazioni]] [[web]] scritte nel [[Linguaggio di programmazione|linguaggio]] [[Python]].<ref>[https://www.python.org/dev/peps/pep-0333/ Il WSGI]</ref> È quindi l'[[Interfaccia (informatica)|interfaccia]] standard del [[web service]] per la programmazione in Python.<ref>[http://redomino.com/it/labs/documentazione/tutorial/python-in-architetture-soa/tutorial-all-pages Info]</ref>
In parole povere, il protocollo specifica come i server si facciano carico delle richieste provenienti dai browser/client ed inoltrino le informazioni richieste alle relative applicazioni, oltre a come utilizzare le informazioni di cui si sono fatti carico e a come rispondere.<ref name=wsgiref >[https://docs.python.org/library/wsgiref.html Info sulle caratteristiche]</ref><ref>[https://docs.python.org/py3k/whatsnew/3.2.html#pep-3333-python-web-server-gateway-interface-v1-0-1 Info sulle caratteristiche - 2]</ref>
== Storia e sviluppo ==
Storicamente, gli applicativi per il web scritti in Python risultavano problematici per i nuovi utenti che si affacciavano a questo linguaggio, in quanto la scelta della struttura da utilizzare in ambito web limitava di conseguenza quella sui server web usufruibili, e viceversa. I programmi in Python erano spesso concepiti per [[Common Gateway Interface|CGI]], [[FastCGI]], [[mod python]] od anche per interfacce API specifiche di web-server.
WSGI è stato creato come un'[[Interfaccia (informatica)|interfaccia]] di [[Linguaggio di programmazione a basso livello|basso livello]] tra i server web e le applicazioni web finalizzata a fornire uno standard base per le reciproche interazioni.<ref name=wsgiref />
== Caratteristiche ==
{{portale|informatica}}▼
{{...|internet}}
== Esempio ==
[[Categoria:Python]]▼
Un “[[Hello world]]” compatibile con WSGI scritta in [[Python]]:
[[Categoria:Standard]]▼
<syntaxhighlight lang="python">
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
yield 'Hello World\n'
</syntaxhighlight>
Dove:
* Linea 1: definisce una funzione<ref>''i.e. "a chiamante, metodo, classe, o una istanza con una <code>__call__</code> method"'' {{citazione necessaria}}</ref> chiamata <code>application</code>, che prende due parametri, <code>environ</code> and <code>start_response</code>. <code>environ</code> è un dizionario contenente [[Common Gateway Interface#Environment variables|le variabili d'ambiente in CGI]]. <code>start_response</code> è una funzione chiamante con due parametri <code>status</code> e <code>response_headers</code>.
* Linea 2: chiama <code>start_response</code>, specificando "200 OK" come status un "Content-Type" header.
* Linea 3: ritorna il corpo della risposta come una stringa di lettere.
== Note ==
<references/>
== Voci correlate ==
* [[Python]]
* [[Django (informatica)]]
* [[Flask (informatica)]]
== Collegamenti esterni ==
* {{cita web|http://wsgi.org/wsgi/|WSGI wiki}}
* {{cita web|https://docs.python.org/library/wsgiref.html|Specifiche sul modulo della libreria standard Python}}
* {{cita web|http://pythonpaste.org/|Python Paste}}
{{Interfacce web}}
▲[[Categoria:Python]]
▲[[Categoria:Standard]]
|