# messy # python web in the web framework, web server, http server, application server, WSGI container silly not clear!

  python

My original understanding was:

Web framework

Django, Flask (web framework), Tornado, etc

Web server and application server

Strictly speaking, the Web server is only responsible for handling HTTP protocol, which is used to handle the content of static pages. The dynamic content needs to be handed over to the application server for processing through WSGI interface.

Web servers include Nginx, Apache, IIS, etc.

Application servers include WSGI containers such as Gunicorn and uWSGI.

Note: General application servers are integrated with web servers, mainly for debugging convenience, and cannot be used in production environment due to performance and stability considerations.

Web servers are also called http servers.

A Web server refers to a program that resides on some type of computer on the Internet. When a Web browser (client) connects to the server and requests a file, the server will process the request and send the file to the browser, and the accompanying information will tell the browser how to view the file (i.e. file type).Servers use HTTP (Hypertext Transfer Protocol) to exchange information, which is why people often call them HTTP servers.

But

When I read this article6 Best Open Source Python Application ServersWhen inside called Django an application server, I was messy again.
So, is Django really an application server or a web framework?


The above is all my understanding (possibly wrong) and confusion. I would like a great god to appear to relieve my doubts ~

I suggest that you read this blog. I was also very confused at that time.
http://www.cnblogs.com/piperc …

Let me explain briefly here:

Web framework you understand right Django, Flask (web framework) and Tornado are all web frameworks. At the same time, tornado is also an asynchronous application server.

Nginx,Apache,IISIt is generally used as a forwarding server, including static resource storage. In python, it is actually the wsgi server that ultimately serves the application. So what is commonly called an application server in python is the wsgi server.

As for how the wsgi server links applications and requests, I suggest looking at PEP3333.
https://www.python.org/dev/pe …
Take a closer look at what wsgi is.

Last question, django. Django is a web framework, not an application server.