WSGI

一个Web应用的本质就是:

  1. 浏览器发送一个HTTP请求;

  2. 服务器收到请求,生成一个HTML文档;

  3. 服务器把HTML文档作为HTTP响应的Body发送给浏览器;

  4. 浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示。

如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,首先得花个把月去读HTTP规范。

正确的做法是底层代码由专门的服务器软件实现,我们专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心编写Web业务。

这个接口就是WSGI:Web Server Gateway Interface。

接口对应的实现函数应包括两个参数:

  • environ:一个包含所有HTTP请求信息的dict对象;

  • start_response:一个发送HTTP响应的函数。

例子:

其中 start_response发送两个参数:1、字符串:http状态码;2、列表:由HTTP Header组成的元组列表

最后返回为body正文内容。

用python内置的wsgi服务器运行:

Werkzeug

参考  http://werkzeug.pocoo.org/docs/0.14/tutorial/#step-3-the-environment

其url和视图被flask框架进行封装,将在flask框架中进行学习。

最新文章

  1. EntityFramework Reverse POCO Code First 生成器
  2. spring 另开线程时的注入问题
  3. Nexus3.0.0+Maven的使用(二)
  4. Ubuntu之root权限的获取
  5. C#生成验证码
  6. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
  7. tomcat异常: Cannot get a connection, pool exhausted
  8. 解决JVM最大内存设置问题
  9. 在UWSGI和NGINX配合的情况下,配置个别目录上传及超时
  10. 11235 - Frequent values
  11. Java实现字符串反转
  12. C++ Primer 读书笔记 第2章 变量和基本类型
  13. 对discuz的代码分析学习(三)mysql驱动
  14. Ownership qualifiers of Objective-C: In Details
  15. hdu2203 KMP水的问题
  16. jfianl返回自定义的404页面
  17. 进程——wait与waitpid、僵尸进程与孤儿进程
  18. 【Spark2.0源码学习】-2.一切从脚本说起
  19. Hadoop集群的hbase介绍、搭建、环境、安装
  20. Could not find result map XXX 解决办法

热门文章

  1. windows防火墙安全设置指定ip访问指定端口
  2. win10无法删除文件夹(其中的文件或者文件夹已在另一个程序中打开)怎么办?
  3. JavaScript 中的匿名函数((function() {})();)与变量的作用域
  4. account
  5. 通过css3,实现加载转动贝塞尔曲线动画
  6. Jedis关于Set的API Demo
  7. kubernetes statefulset kafka 部署后, 外部访问超时问题解决
  8. jQuery 自定义函数写法分享
  9. linux安装jenkins和编译发布gitlib项目
  10. qt 程序中执行额外程序和脚本