CGI
1、通用网关接口(Common Gateway Interface/CGI),CGI描述了服务器(nginx,apache)和请求处理程序(django,flask,springboot web框架)之间传输数据的一种标准.
2.所有bs架构软件都是遵循CGI协议的
3.一句话总结: 一个标准,定义了客户端服务器之间如何传数据
FastCGI
1、快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本
2、FastCGI致力于减少网页服务器与CGI程序之间互动的开销,从而使服务器可以同时处理更多的网页请求。
3、常见的fastcgi服务器:Apache,Nginx,Microsoft IIS
一句话总结:CGI的升级版
WSGI
1、Python Web Server Gateway Interface,缩写为WSGI,Python定义的Web服务器和Web应用程序或框架之间的一种通用的接口
一句话总结: 为Python定义的web服务器和web框架之间的接口标准
uwsgi
1.它是uWSGI服务器实现的独有的协议,定义传输信息的类型,是用于前端服务器与 uwsgi 的通信规范。
2.一句话总结:
uWSGI服务器自有的一个协议
uWSGI:web服务器,等同于wsgiref
uWSGI
1、符合uwsgi协议的web服务器,用c写的,性能比较高,咱们通常用来部署django,flask 。
一句话总结:一个Web Server(web服务器),即一个实现了WSGI协议的服务器,处理发来的请求及返回响应。
web服务器到底是什么?服务器中间件
客户端(浏览器,app)跟服务器(web框架)之间的东西,服务器中间件
# nginx apache 是一类东西,就是做请求转发,符合fastcgi服务器
# uWSGI,gunicorn 只针对于python的web框架
# tomcat,jboss,weblogic 只针对java的web框架
# php-fpm 针对于php的框架
流程:
输入IP地址端口8080,nginx监听8080端口,nginx转发到符合uwsgi的web服务器(也就是uWGI服务器),uWGI服务器在发到符合wsgi的web框架
注意:使用django框架一般都是用uwsgi服务器做转发,因为它是python独有的,性能高,也可以使用其他的服务器,
其他的语言也都会有自己独有的web服务器