2016-05-03 35 views
8

Dal official doc detto:Che cosa è esattamente Werkzeug?

Werkzeug è una libreria di utilità WSGI per Python.

Tuttavia, quando faccio funzionare la mia applicazione Flask web, ho notato che nell'intestazione della risposta dal server, non ha mostrato

HTTP/1.0 200 OK 
Content-Type: text/html; charset=utf-8 
Content-Length: 13 
Server: Werkzeug/0.11.9 Python/2.7.10 
Date: Tue, 03 May 2016 12:50:08 GMT 

Sulla linea avanti si dice che server è Werkzeug.

Perché non significa che Werkzeug è un server Web come Apache?.

risposta

1

No, non è un SERVER WEB come Apache. È una libreria CGI. Poiché APACHE (o la tua applicazione FLASK) probabilmente sta utilizzando la libreria per eseguire il server di alcune richieste HTTP, probabilmente aggiunge quell'intestazione alla risposta.

+0

Esiste un metodo per controllare il server esatto l'applicazione Web sta usando? Ho pensato che l'intestazione della richiesta mostrasse il server in 'Server:' line. –

+0

Di solito ciò che è sull'intestazione "Server" è accurato. Ma tieni a mente che se qualcuno vuole nascondere quell'informazione, potrebbe facilmente cambiare quell'intestazione in qualunque cosa desideri (se è quella che esegue il server web) –

+0

In questo caso le informazioni dell'intestazione sono probabilmente corrette. Poiché 'werkzeug' viene fornito con un piccolo server web di sviluppo, che probabilmente è quello che ha prodotto la risposta di cui sopra. Lo sapremo per certo se l'OP spiega la sua configurazione in modo un po 'più dettagliato ... – sebastian

9

Perché non lo è.

Nella tua configurazione probabilmente usi il "server di sviluppo" (la funzione run_simple) per il test. Quindi è in questo caso d'uso come un (molto) povero uomo Apache, ma solo nel senso che è in grado di rispondere correttamente alle richieste HTTP.

Se si controlla i documenti http://werkzeug.pocoo.org/docs/serving/ , vedrete la seguente nota:

Il server di sviluppo non è destinato ad essere utilizzato su sistemi di produzione. È stato progettato appositamente per scopi di sviluppo e funziona male con carichi elevati. Per le configurazioni di distribuzione, consulta le pagine di distribuzione dell'applicazione.

5

No, non è

Werkzeug (biblioteca WSGI) è come una comunicatore tra il codice Python e http server di nginx/apache

Qui è il caso d'uso completa di Werkzeug WSGI:

WSGI ha due lati: il lato "server" o "gateway" (spesso un web se rver come Apache o Nginx) e il lato "application" o "framework" (lo stesso script Python). Per elaborare una richiesta WSGI, il lato server esegue l'applicazione e fornisce le informazioni sull'ambiente e una funzione di callback sul lato dell'applicazione. L'applicazione elabora la richiesta , restituendo la risposta al lato server utilizzando la funzione di richiamata fornita.

Tra il server e l'applicazione , potrebbe esserci un middleware WSGI che implementa entrambi i lati dell'API su . Il server riceve una richiesta da un client e lo inoltra al middleware. Dopo l'elaborazione, invia una richiesta a dell'applicazione. La risposta dell'applicazione viene inoltrata dal middleware al server e infine al client.Ci possono essere middleware multipli che formano una pila di applicazioni compatibili con WSGI.

Speranza che aiuta

Problemi correlati