Micobe开发日志--web服务器软件架构一些理解

来源:互联网 发布:全球化 知乎 编辑:程序博客网 时间:2024/05/18 00:11

在网上开了很多服务器软件的架构,包括Tomcat,Nginx,webpy等,下面对webpy服务器软件的架构做了一个小小的总结,因为觉得这个逻辑很清晰:

1.webpy服务器软件可以分层来理解,可以理解为应用层,中间层(中间件),网络层。

2.在应用层,用户使用的层,主要是为web网站编写着提供一些公用的接口,包括对读写配置文件(utils.py),读写数据库(db.py),操作模板(template.py),操作续写session等,那么通过这些支持,我们可以自己构建一个网站,前台,contoiller,model等。都是在这些的支持下。

3.中间层,也就是我们说的中间件,这一层开始我很不理解,为什么要多出这一层,直接网络层到应用层不是更直接,后来明白了中间层的重要,中间层指定了访问模式,也就是我们常说的CGI,那么对于CGI的理解也疑惑了很久.

现在我的理解是:CGI是公共网关接口,也就是我们对服务器发送请求,在这里要指向去哪里做处理,CGI不是一套程序,而是一套规范。举个例子,CGI相当于我们用的插座,我们给电脑充电,手机充电,电视机用电,不用去关心我们用的什么电,只需要关心插座上的接口合适就可以,我们也不用关心接口里面的电是什么样的,那么这个接口就是规范。回到服务器上,也就是我们不用关心服务器是用什么写的,可能是c,java,我们只要按照这套CGI规范,服务器就可以把接受到的请求,发送给处理程序,处理程序可以是java,python都无所谓。并可以接受到处理后结果,返回给浏览器。

4.网络层,这一层主要是服务器要做的事,包括一些接受请求的监听程序,绑定端口,请求队列,返回请求结果等,服务器的压力性能很多大一部分和这里的算法和中间件部分有关,这一层也实现了CGI结构运行的具体模式。

那么以上基本上一个web服务器软件都会有这些。

加一张运行图 

ps:不会前台好痛苦,界面丑哭了,要抓时间玩JQ了。

0 0