Il Web Server Gateway Interface (WSGI) รจ un protocollo di trasmissione che stabilisce e descrive comunicazioni ed interazioni tra server ed applicazioni web scritte nel linguaggio Python.[1] รˆ quindi l'interfaccia standard del web service per la programmazione in Python.[2]

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.[3][4]

Storia e sviluppo

modifica

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 CGI, FastCGI, mod python od anche per interfacce API specifiche di web-server.

WSGI รจ stato creato come un'interfaccia di basso livello tra i server web e le applicazioni web finalizzata a fornire uno standard base per le reciproche interazioni.[3]

Caratteristiche

modifica

Esempio

modifica

Un โ€œHello worldโ€ compatibile con WSGI scritta in Python:

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    yield 'Hello World\n'

Dove:

  • Linea 1: definisce una funzione[5] chiamata application, che prende due parametri, environ and start_response. environ รจ un dizionario contenente le variabili d'ambiente in CGI. start_response รจ una funzione chiamante con due parametri status e response_headers.
  • Linea 2: chiama start_response, specificando "200 OK" come status un "Content-Type" header.
  • Linea 3: ritorna il corpo della risposta come una stringa di lettere.

Note

modifica
  1. ^ Il WSGI, su python.org.
  2. ^ Info, su redomino.com.
  3. ^ a b Info sulle caratteristiche, su docs.python.org.
  4. ^ Info sulle caratteristiche - 2, su docs.python.org.
  5. ^ i.e. "a chiamante, metodo, classe, o una istanza con una __call__ method" [senzaย fonte]

Voci correlate

modifica

Collegamenti esterni

modifica
ย  Portale Internet: accedi alle voci di Wikipedia che trattano di internet

๐Ÿ“š Artikel Terkait di Wikipedia

Server web

Scalabilitร  del server, su wiki.iphoster.net. Server farm Centro elaborazione dati Common Gateway Interface Altri progetti Wikimedia Commons Wikimedia Commons

Common Gateway Interface

Gateway Interface (sigla CGI, in italiano "interfaccia comune", nel senso di standard, "per gateway") รจ una tecnologia standard usata dai web server per

World Wide Web

di questo tipo furono le CGI (Common Gateway Interface). Attraverso una CGI รจ possibile richiedere ad un web server di invocare un'applicazione esterna

Pagina web dinamica

Una pagina web dinamica รจ una pagina web il cui contenuto, in tutto o in parte, รจ generato sul momento dal server, potendo dunque essere diversa ogni volta

Web 2.0

ottobre 2021. Sito web Pagina web dinamica Web 1.0 Programmazione Web Active Server Pages (ASP) Common Gateway Interface (CGI) JavaServer Pages (JSP) PHP

Representational state transfer

definizione di un'architettura REST. Uniform interface. Un'interfaccia di comunicazione omogenea tra client e server permette di semplificare e disaccoppiare

FastCGI

interfacciare programmi interattivi CGI con un server web. FastCGI รจ una variazione della prima Common Gateway Interface (CGI); lo scopo principale di FastCGI

World Wide Web Consortium

CSS (Cascading Style Sheets, Fogli di stile a cascata); CGI (Common Gateway Interface); DOM (Document Object Model); EXI (Efficient XML Interchange); GRDDL