Web Server Gateway Interface: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ArthurBot (discussione | contributi)
+{{Interfacce web}}
 
(41 versioni intermedie di 29 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>
{{S|informatica}}
{{W|informatica|giugno 2008}}
'''Web Server Gateway Interface''' ('''WSGI''') connette i server alle applicazioni.
Non è un framework ma un protocollo che specifica come web server e application server debbano interagire con delle applicazioni web.
È uno standard Python [http://www.python.org/dev/peps/pep-0333/ PEP 333].
Funziona con la seguente modalità: i server si fanno carico delle richieste provenienti dai browsers/clients e inoltrano le informazioni richieste alle applicazioni.
Quindi rispondono alle richieste usando le informazioni fornite dalle applicazioni.
 
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>
[[cs:Web Server Gateway Interface]]
 
[[de:Web Server Gateway Interface]]
== Storia e sviluppo ==
[[en:Web Server Gateway Interface]]
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.
[[ja:Web Server Gateway Interface]]
 
[[nl:Web Server Gateway Interface]]
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 />
[[ru:WSGI]]
 
[[uk:WSGI]]
== Caratteristiche ==
[[zh:WSGI]]
{{...|internet}}
 
== Esempio ==
Un “[[Hello world]]” compatibile con WSGI scritta in [[Python]]:
<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)]]
{{S|* [[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}}
{{portale|internet}}
 
[[Categoria:Python]]
[[Categoria:Standard]]