了解了HTTP协议和HTML文档,咱们其实就明白了一个Web应用的本质就是:浏览器
由于咱们不但愿接触到TCP链接、HTTP原始请求和响应格式,因此,须要一个统一的接口,让咱们专心用Python编写Web业务。服务器
这个接口就是WSGI:Web Server Gateway Interface。app
WSGI接口定义很是简单,它只要求Web开发者实现一个函数,就能够响应HTTP请求。框架
有了WSGI,咱们关心的就是如何从environ这个dict对象拿到HTTP请求信息,而后构造HTML,经过start_response()发送Header,最后返回Body。函数
不过,等等,这个application()函数怎么调用?若是咱们本身调用,两个参数environ和start_response咱们无法提供,返回的str也无法发给浏览器。测试
因此application()函数必须由WSGI服务器来调用。有不少符合WSGI规范的服务器,咱们能够挑选一个来用。可是如今,咱们只想尽快测试一下咱们编写的application()函数真的能够把HTML输出到浏览器,因此,要赶忙找一个最简单的WSGI服务器,把咱们的Web应用程序跑起来。对象
好消息是Python内置了一个WSGI服务器,这个模块叫 wsgiref ,它是用纯Python编写的WSGI服务器的参考实现。所谓“参考实现”是指该实现彻底符合WSGI标准,可是不考虑任何运行效率,仅供开发和测试使用。接口
不管多么复杂的Web应用程序,入口都是一个WSGI处理函数。HTTP请求的全部输入信息均可以经过environ得到,HTTP响应的输出均可以经过start_response()加上函数返回值做为Body。开发
复杂的Web应用程序,光靠一个WSGI函数来处理仍是太底层了,咱们须要在WSGI之上再抽象出Web框架,进一步简化Web开发。文档
其实一个Web App,就是写一个WSGI的处理函数,针对每一个HTTP请求进行响应。
固然了,由于开发Python的Web框架也不是什么难事,咱们后面也会本身开发一个Web框架。