web开发
最近在学习web开发,使用的是python这门胶水语言,运用的是flask这个框架,但是在一些基础知识上遇到了障碍,特此记录
首先来说一下web开发的基本架构是这样的:
client --> web服务器 --> web应用服务器
client: 也就是我们一般所说的客户端软件,用来向服务器发出请求
web服务器: 接受http请求,返回响应, 此类服务器有: nginx,Apache,tomcat,uWSGI之类的
web应用服务器: 用来处理服务器传来的form表单传来的数据,用来生成动态的html页面(这也是跟一般静态页面有所区别的地方), python中常见的有flask,django之类的框架
web服务器和web应用服务器的关系
在web服务器和web应用服务器之间存在这WSGI协议,这种协议是python所特有的借口规范,只要web服务器和web应用服务器之间都能满足这种接口规范,
那么它们就能通信。
middleware
也可以称为WSGI中间件,这是介于服务器和application之间的一种应用,对于服务器它扮演者app的角色,对于app,它扮演着服务器的角色
作用
它在可以处理两者之间的所有的request和reponse,想做什么就做什么,所以检测request是否合法等事情。
CGI WSGI
CGI全称为common gateway interface(通用网管接口), 它是web服务器和请求程序之间的一种传输数据标准,现代基本已经看不到它的身影,类似它的增强版有fastcgi
有了它,服务器知道该怎么处理来请求程序的数据,用来生成相应的html数据,与传统的静态页面相比较,html页面是不能存储任何数据的,有了CGI就可以将数据写入到
文件中,还可以操作数据库之类的操作
而WSGI则是python专有的传输数据标准,全称为web server gateway interface, 除了CGI和WSGI还有很多接口,不同的借口是为了统一标准,提高程序的可移植性