Python的Web开发中,如果使用Django框架,那么较为成熟稳定的服务器架构一般是Nginx+uWSGI+Django。而为什么一定要三个结合在一起呢?直接使用Django的runserver来启动服务器进程,或者uWSGI+Django可不可以呢?为什么?概念说明:
APP(应用程序),就是开发者写的应用程序,例如django,bottle这些。记录怎么处理客户端发来的请求的逻辑部分。
WSGI,是一个协议,Python用于Web开发的协议
uWSGI,是一个程序,充当Web服务器或中间件。
如果架构是Nginx+uWSGI+APP,uWSGI是一个中间件
如果架构是uWSGI+APP,uWSGI是一个服务器
uwsgi,是uWSGI程序实现的一个自有的协议。
Web协议出现顺序:CGI-FCGI-WSGI-uwsgi
CGI,最早的协议
FCGI,比CGI快
WSGI,Python专用的协议
uwsgi,比FCGI和WSGI都快,是uWSGI项目自有的协议,主要特征是采用二进制来存储数据,之前的协议都是使用字符串,所以在存储空间和解析速度上,都优于字符串型协议.官方介绍
一、WSGI协议浏览器请求一个页面的流程:
浏览器发送请求给服务器,包含请求头和请求体
服务器解析请求头和请求体
服务器根据请求信息来处理请求,生成返回内容
服务器生成响应头和响应体
服务器返回响应给浏览器,浏览器显示给用户
一个网站,一般有很多个不同的请求,在这些请求中,基本1,,4,5部都是固定的,变的只有第三步,所以把这四步抽象出来,让开发者只中科与白癜风患者同在引发白癜风原因有哪些