Web Server Gateway Interface: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
+{{Interfacce web}}
 
(29 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>
{{cancellazione|arg=informatica}}
{{A|Voce molto misera: la spiegazione del funzionamento del protocollo in questione è tra il tautologico e l'incomprensibile.|informatica|aprile 2011|firma='''''[[Utente:Cotton|<span style="color:#000000;">Cotton</span>]] <sup>[[Discussioni utente:Cotton|<span style="color:#708090;">Segnali di fumo</span>]]</sup>''''' 21:50, 13 apr 2011 (CEST)}}
 
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>
Il '''Web Server Gateway Interface''' ('''WSGI''') connette i [[server]] alle [[Applicazione|applicazioni]].
 
== Storia e sviluppo ==
Non è un [[framework]] ma un [[Protocollo (informatica)|protocollo]] che specifica come [[web server]] e [[application server]] debbano interagire con delle [[applicazione web|applicazioni web]]. È uno [[standard]] [[Python]].
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 />
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.
 
== 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 ==
[[cs:Web Server Gateway Interface]]
<references/>
[[de:Web Server Gateway Interface]]
 
[[en:Web Server Gateway Interface]]
== Voci correlate ==
[[fr:Web Server Gateway Interface]]
* [[Python]]
[[ja:Web Server Gateway Interface]]
* [[Django (informatica)]]
[[nl:Web Server Gateway Interface]]
* [[Flask (informatica)]]
[[pt:Web Server Gateway Interface]]
 
[[ru:WSGI]]
== Collegamenti esterni ==
[[uk:WSGI]]
* {{cita web|http://wsgi.org/wsgi/|WSGI wiki}}
[[zh:Web服务器网关接口]]
* {{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|informaticainternet}}
 
[[Categoria:Python]]
[[Categoria:Standard]]