#凌乱了# python web中web框架、web服务器、http服务器、应用服务器、WSGI容器傻傻分不清楚!

yorickshan
  • 113

我原先的理解:

web框架

指Django,Flask,Tornado等

web服务器和应用服务器

严格意义上Web服务器只负责处理HTTP协议,用于处理静态页面的内容。而动态内容需要通过WSGI接口交给应用服务器去处理。

Web服务器包括Nginx,Apache,IIS等。

应用服务器包括Gunicorn,uWSGI等WSGI容器。

注: 一般应用服务器都集成了web服务器,主要是为了调试方便,出于性能和稳定性考虑,并不能在生产环境中使用。

web服务器又被称作http服务器

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTP服务器的原因。

But

当我看到这篇文章6个最佳的开源Python应用服务器里把Django也叫作应用服务器的时候我又凌乱了。
所以,Django到底是属于应用服务器还是web框架?


以上就是我的全部理解(可能有误)和困惑,烦劳有大神能现身解惑~

回复
阅读 7.9k
2 个回答
✓ 已被采纳

建议你看下这篇blog 我当时也很疑惑
http://www.cnblogs.com/piperc...

我在这里大致解释一下:

web框架 你理解的没错Django,Flask,Tornado 都是web框架。同时tornado也是一个异步的应用服务器。

Nginx,Apache,IIS一般被作为转发服务器使用,包括静态资源存储用。在python中其实最终在为应用服务的最后是wsgi服务器。所以一般python里面被叫做应用服务器的是wsgi服务器。

至于wsgi服务器 如何衔接应用与请求之间的关系 我建议看一下PEP3333
https://www.python.org/dev/pe...
仔细了解一下什么是wsgi。

最后一个问题你说的django。django是web框架,不是应用服务器。

django是python web框架,是一套python代码。不是服务器,更谈不上web服务器

宣传栏