WSGI学习总结

1. 背景

进行web开发时一般是使用各种web框架。很久之前我去探寻web开发原理时随手做的一些笔记,现在抽空整理出来,希望可以对一些人理解wsgi时能够有所帮助。

2. Web编程

做web编程之前先了解两个名词"HTML"、"HTTP"

HTML

HTML全称为HyperText Markup Language,超文本标记语言,也就是常说的网页。如果连这个东西都没有听说过,点击这里了解后再做web编程。

HTTP

HTTP的全称为HyperText Transfer Protocol,超文本传输协议,是一种使用较为广泛的网络协议。从字面意思基本能够看出,HTTP是用来传输超文本。如果对HTTP协议不了解点击这里

实际上,在web应用中,服务器把网页内容(HTML)传输给浏览器,让浏览器来展示,而浏览器和服务器之间的协议就是使用的HTTP。

所以我把整个web应用的流程大体分为四步:

1. 浏览器发送一个http请求
2. 服务器收到请求,生成一个html文档
3. 服务器把html文档作为http响应的body发送给浏览器
4. 浏览器收到http响应,从http body中取出html文档并显示

3. WSGI

早期的web开发,都是事先将静态的html保存好,用现成的http服务器软件,接受用户请求从文件中读取html返回到浏览器。Nginx、Apache、lighttpd这些常见的静态服务器就是干这件事情的。
而现在的web开发,由早已将静态编写HTML改为动态生成HTML,那么我们就需要对HTTP的请求加以解析,并HTTP协议响应,如果我们自己来写这些底层代码,需要花个把月去读HTTP规范。
作为web开发者,我们希望的是不对底层的HTTP协议自己来做解析,而是只专注于做web的开发。
所以正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。需要一个统一的接口,让我们专心用Python编写Web业务。
这个接口就是WSGI:Web Server Gateway Interface。(Web服务网关接口)


WSGI总体分为三大部分

  • 应用程序
  • 服务器程序
  • 中间件

应用程序

接收请求消息,并根据请求消息做出相应的逻辑,动态生成响应信息。

服务器程序

接收应用程序的响应信息,并将响应信息返回给代理服务器。

中间件

服务器程序与应用程序的桥,并非必须,类似于一个路由,根据服务器收到的浏览器请求,映射到不同的应用程序。


这里只是把我对WSGI的理解做了一些整理,对于具体的细节实现有很多人都已经写的非常完美了,如果大家有兴趣的话,可以拉到最后,到参考资料中的几个我认为写的比较好的网址去看一看,可以加深了解。

4. 参考资料

参考资料【1】:http://blog.kenshinx.me/blog/wsgi-research/

参考资料【2】:http://blog.csdn.net/on_1y/article/details/18803563#0-qzone-1-46824-d020d2d2a4e8d1a374a433f596ad1440


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值