2018-06-08WSGI用法分析

2018-06-08  本文已影响14人  菩灵
  1. 我们动态web服务器搭建的目的:是让web服务器运行py脚本,传回值
  2. 获取了用户请求之后,要先判断是否是以.py结尾的,如果是,就去执行这个py文件
  3. ctime.py 和 web 服务器之间,要有一个约定,怎么写就怎么调
  4. web服务器端导入被调用的模块,要用import,但是要用到切片
    导入被调用py文件
  5. application函数,不管执行了什么代码,返回值是“响应体”,可以返回字符串(可以被当做响应体的内容,返回一个函数无效)


    返回“响应体”
  6. WSGI协议规定,在application中决定了响应的状态,是因为每次请求是有可能出错的,所以状态码在application中决定。
  7. 在服务器传回给浏览器的文件中,有字符串类型的普通文本,也有二进制格式的图片,这就需要application函数中告知返回的文件类型,所有要有Content-Type
  8. 在application执行的时候,是有可能用到用户的请求数据的,所以关于用户请求的所有数据都放到了env之中,env是一个字典。


    env含义
  9. env是server调用的时候一个传入参数(本次请求的一些信息),其中包含的一个信息就是PATH_INFO。


    env含义
  10. 剩下的两个变量:状态码status和响应头headers,需要返回给server;所以用到了第二个参数start_response,用来接收状态码和响应头,把这两个变量传给这个函数。


    start_response函数
  11. start_response函数的作用就是把协议类型和application中的状态码和headers遍历,做一个拼接,形成一个完整的响应头


    start_response作用
  12. 再在if判断的时候,形成一个完整的报文;在发送的时候返回给客户端,最后关闭客户端套接字,形成一个完整的过程。
    ** 整个流程: **


    整个流程

    考虑到万一文件有问题,web 的 server 是无法判断识别和解决的,所以状态码放在application中去判断:


    status
上一篇下一篇

猜你喜欢

热点阅读