zoukankan      html  css  js  c++  java
  • WSGI协议解析

    WSGI协议中包含两个角色:服务器方和应用程序:

    • 服务器方:其调用应用程序,给应用程序提供(环境信息)和(回调函数), 这个回调函数是用来将应用程序设置的http header和status等信息传递给服务器方。

    • 应用程序:请求的统一入口,所有的请求都进入到这个app中来处理,这个app说白了就是一个函数(类中的call是一样的道理)。用来生成返回的header,body和status,以便返回给服务器方。

    一个符合WSGI的“Hello World”应用程序如下所示:

    def Application(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/plain')])
        yield "Hello world!
    "
    

    定义了一个名为Application的应用程序,environ和startresponse,environ是一个字典包含了CGI中的环境变量,startresponse也是一个callable,接受两个必须的参数,status(HTTP状态)和responseheaders(响应消息的头)。 第二行调用了startresponse,状态指定为“200 OK”,消息头指定为内容类型是“text/plain” 第三行将响应消息的消息体返回。

    基于这种协议,实现服务器方和应用程序就可以开发一个web框架。目前比较常用的web框架:Django、Flask、Tornado都是实现了基于WSGI协议进一步封装的,把收、发请求响应的过程实现了,对于开发者来说只需要关注自己的业务实现即可。

  • 相关阅读:
    【构建工具】《Maven实战》读书笔记
    【网络安全】Dos攻击科普文
    谈谈集合.CopyOnWriteArrayList
    谈谈集合.List
    小程序开发--移动端分辨率与rpx
    跟面向对象卯上了,看看ES6的“类”
    捋一捋js面向对象的继承问题
    Canvas的drawImage方法使用
    浏览器内核趣对话
    “茴”字有四种写法,this也是一样
  • 原文地址:https://www.cnblogs.com/tianboblog/p/9680123.html
Copyright © 2011-2022 走看看