美文网首页
2018-06-08WSGI用法分析

2018-06-08WSGI用法分析

作者: 菩灵 | 来源:发表于2018-06-08 21:21 被阅读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

    相关文章

      网友评论

          本文标题:2018-06-08WSGI用法分析

          本文链接:https://www.haomeiwen.com/subject/lzxzsftx.html